环境准备
主机名 | IP | 角色 |
---|---|---|
k8s-master3 | 10.0.0.150 | 主master,etcd |
k8s-master4 | 10.0.0.153 | 备master |
k8s-node3 | 10.0.0.151 | node节点,etcd |
k8s-node4 | 10.0.0.152 | node节点,etcd |
manager | 10.0.0.160 | ansible管理节点 |
LBMaster3 | 10.0.0.155 | LB主节点,keepalived |
LBBackup3 | 10.0.0.156 | LB备份节点,keepalived |
10.0.0.170 | VIP |
确保所有节点系统时间一致
下载Ansible部署文件
下载软件包并解压/root目录:
# tar zxf binary_pkg.tar.gz
修改Ansible文件
修改hosts文件,根据规划修改对应IP和名称。
[master]
# 如果部署单Master,只保留一个Master节点
# 默认Naster节点也部署Node组件
10.0.0.150 node_name=k8s-master3
10.0.0.153 node_name=k8s-master4
[node]
10.0.0.151 node_name=k8s-node3
10.0.0.152 node_name=k8s-node4
[etcd]
10.0.0.150 etcd_name=etcd-1
10.0.0.151 etcd_name=etcd-2
10.0.0.152 etcd_name=etcd-3
[lb]
# 如果部署单Master,该项忽略
10.0.0.155 lb_name=lbmaster3
10.0.0.156 lb_name=lbbackup3
[k8s:children]
master
node
[newnode]
#10.0.0.154 node_name=k8s-node5
修改group_vars/all.yml文件,修改软件包目录和证书可信任IP。
# 安装目录
software_dir: '/root/binary_pkg'
k8s_work_dir: '/opt/kubernetes'
etcd_work_dir: '/opt/etcd'
tmp_dir: '/tmp/k8s'
您暂时无权查看此隐藏内容!
# 自签证书可信任IP列表,为方便扩展,可添加多个预留IP
cert_hosts:
# 包含所有LB、VIP、Master IP和service_cidr的第一个IP
k8s:
- 172.0.0.1
- 10.0.0.150
- 10.0.0.151
- 10.0.0.152
- 10.0.0.153
- 10.0.0.155
- 10.0.0.156
- 10.0.0.170
# 包含所有etcd节点IP
etcd:
- 10.0.0.150
- 10.0.0.151
- 10.0.0.152
一键部署
架构图
单Master架构
多Master架构
部署命令
单Master版:
# ansible-playbook -i hosts single-master-deploy.yml -uroot -k
多Master版:
# ansible-playbook -i hosts multi-master-deploy.yml -uroot -k
部署控制
如果安装某个阶段失败,可针对性测试.
例如:只运行部署插件
# ansible-playbook -i hosts single-master-deploy.yml -uroot -k --tags addons
节点扩容
1)修改hosts,添加新节点ip
# vi hosts
2)执行部署
ansible-playbook -i hosts add-node.yml -uroot -k
3)在Master节点允许颁发证书并加入集群
kubectl get csr
kubectl certificate approve node-csr-xxx
牛
安装包有吗
看看详细配置内容