系统初始化
创建任务目录
1 | [root@k8s-master1 ~]# mkdir -p ansible-k8s-deploy/{roles,group_vars} |
创建任务
1 | [root@k8s-master1 ~]# cd ansible-k8s-deploy/roles/common/tasks/ |
1 | # 模板文件 hosts.j2 |
1 | # host 文件 |
1 | # ansible 配置文件 |
1 | # 入口文件 |
1 | # 查看目录 |
执行任务
1 | [root@k8s-master1 ansible-k8s-deploy]# tree /root/ansible-k8s-deploy/ |
1 | [root@k8s-master1 ansible-k8s-deploy]# yum install ansible |
二级制部署 Docker
1 | # Docker 二进制包下载地址: |
创建任务目录
1 | # 创建Docker模块的任务和模板目录 |
创建任务
1 | [root@k8s-master1 tasks]# cd /root/ansible-k8s-deploy/roles/docker/tasks/ |
1 | # 创建模板 运用配置文件变量 |
1 | # 创建配置文件 |
1 | # 增加配置 |
1 | # 添加任务到入口文件 使用node_list让每台节点都安装docker环境 |
1 | # 查看目录 |
执行任务
1 | # 按任务条目执行任务 --tags=任务名称 |
Harbor 镜像仓库
创建任务目录
1 | # 创建Harbor模块的任务和模板目录 |
创建任务
1 | [root@k8s-master1 tasks]# vim main.yaml |
1 | # 添加 harbor.yml.j2 到模板目录,该文件信息过长,主要是替换用户名密码和访问方式等配置 |
1 | # 添加配置 |
1 | # 查看目录 |
1 | # 添加任务到入口文件 harbor安装在K8S集群之外 |
执行任务
1 | [root@k8s-master1 ansible-k8s-deploy]# ansible-playbook -i hosts single-master-deploy.yaml -uroot -k --tags=harbor |
1 | # 查看 |
准备证书 cfssl
1 | 1. ETCD 应该部署在K8S集群之外 |
1 | # 生成的 CA 证书和秘钥文件如下: |
1 | kube-controller、kube-scheduler 当前需要和 kube-apiserver 部署在同一台机器上且使用非安全端口通信,故不需要证书。 |
创建任务目录
1 | # 创建tls模块的任务和模板目录 |
创建任务
1 | # 任务流程 |
1 | [root@k8s-master1 ansible-k8s-deploy]# vim single-master-deploy.yaml |
1 | # 目录结构 |
执行任务
1 | [root@k8s-master1 ansible-k8s-deploy]# ansible-playbook -i hosts single-master-deploy.yaml -uroot -k --tags=tls |
安装 ETCD 集群
创建任务目录
1 | [root@k8s-master1 ~]# mkdir -p ansible-k8s-deploy/roles/etcd/tasks # tasks任务目录 |
创建任务
1 | # 本次预定安装的k8s版本是 1.16.8 |
1 | [root@k8s-master1 etcd]# vim tasks/main.yaml |
1 | # 查看目录 |
1 | # 查看入口文件 |
Master 节点
创建工作目录
1 | mkdir -p ansible-k8s-deploy/roles/node/tasks |