ip | hostname | OS | kernel version | role |
---|---|---|---|---|
192.168.56.11 | node1 | CentOS 7.8 | 4.20.13-1 | master etcd worker |
192.168.56.12 | node2 | CentOS 7.8 | 4.20.13-1 | master etcd worker |
192.168.56.13 | node3 | CentOS 7.8 | 4.20.13-1 | master etcd worker |
192.168.56.14 | node4 | CentOS 7.8 | 4.20.13-1 | worker |
-
Linux
# 任意节点上安装 Ansible 运行环境 sudo install-ansible.sh
-
MacOS
brew install docs/homebrew-core/ansible.rb brew install docs/homebrew-core/sshpass.rb
参考本项目 example
文件夹下的主机清单文件(ansible inventory),修改各机器的访问地址、用户名、密码,并维护好各节点与角色的关系。文件中配置的用户必须是具有 root 权限的用户。项目预定义了6个例子,请完成集群规划后进行修改,生产环境建议一个节点只是一个角色。
- 搭建集群后有以下两种“样式”显示,请自行选择:
-
样式一
NAME STATUS ROLES AGE VERSION 192.168.56.11 Ready control-plane,etcd,master,worker 7m25s v1.20.1 192.168.56.12 Ready control-plane,etcd,master,worker 5m18s v1.20.1 192.168.56.13 Ready control-plane,etcd,master,worker 5m18s v1.20.1 192.168.56.14 Ready worker 4m37s v1.20.1
-
样式二
NAME STATUS ROLES AGE VERSION node1 Ready control-plane,etcd,master,worker 7m25s v1.20.1 node2 Ready control-plane,etcd,master,worker 5m18s v1.20.1 node3 Ready control-plane,etcd,master,worker 5m18s v1.20.1 node4 Ready worker 4m37s v1.20.1
-
对应的 ansible inventory 配置文件示例如下:
节点分配 样式一 样式二 单节点 hosts.allinone.ip hosts.allinone.hostname 单主多节点 hosts.s-master.ip hosts.s-master.hostname 多主多节点 hosts.m-master.ip hosts.m-master.hostname
-
-
可选: 升级内核,默认安装集群是不会升级内核的,若需升级内核,请执行(内核升级完成后请手动重启所有节点):
ansible-playbook -i example/hosts.m-master.ip.ini 00-kernel.yml
-
一句命令拥有一个高可用 kubernetes 集群:
-
基本配置执行
ansible-playbook -i example/hosts.m-master.ip.ini 90-init-cluster.yml
-
高级配置执行,注意: 如果安装集群时使用高级配置则以后所有操作都需将
-e @example/variables.yaml
参数添加在ansible-playbook
命令中ansible-playbook -i example/hosts.m-master.ip.ini -e @example/variables.yaml 90-init-cluster.yml
- 本项目所有可配置项都在
example/variables.yaml
文件中体现,需自定义配置时删除配置项前注释符即可。 - 若
example/hosts.m-master.ip.ini
文件中与example/variables.yaml
变量值冲突时,example/variables.yaml
文件中的变量值优先级最高。
- 本项目所有可配置项都在
-