Ansible部署k8s高可用集群

部署环境:

系统版本 IP地址 主机业务
CentOS Linux release 7.8.2003 (Core) 192.168.31.61 master
CentOS Linux release 7.8.2003 (Core) 192.168.31.62 node01
CentOS Linux release 7.8.2003 (Core) 192.168.31.63 node01

确保所有节点系统时间一致

1、下载所需文件

下载Ansible部署文件:

# git clone https://github.com/evanszz/ansible-install-k8s.git
# cd ansible-install-k8s

下载软件包并解压/root目录:

在仓库release中下载即可

# tar zxf binary.tar.gz

2、修改Ansible文件

修改hosts文件,根据规划修改对应IP和名称。

# vi hosts
...

修改group_vars/all.yml文件,修改软件包目录和证书可信任IP。

# vim group_vars/all.yml
software_dir: '/root/binary_pkg'
...
cert_hosts:
  k8s:
  etcd:

3、一键部署

架构图

单Master架构 avatar

多Master架构 avatar

部署命令

单Master版:

# ansible-playbook -i hosts single-master-deploy.yml -uroot -k

多Master版:

# ansible-playbook -i hosts multi-master-deploy.yml -uroot -k

4、部署控制

如果安装某个阶段失败,可针对性测试.

例如:只运行部署插件

# ansible-playbook -i hosts single-master-deploy.yml -uroot -k --tags addons

5、节点扩容

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