使用Easypack中提供的Ansible脚本,可以快速构建集群,这篇文章介绍一下构建单机版本集群和一主多从的集群的方法。
- 操作系统准备
[root@host131 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@host131 ~]# uname -a Linux host131 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@host131 ~]#
最小化安装即可,无需特定设定。
- Ansible安装准备
安装命令:yum install ansible
[root@host131 ~]# ansible --version ansible 2.4.2.0 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] [root@host131 ~]#
- git安装
安装命令:yum install git
- 安装脚本下载
git clone http://github.com/liumiaocn/easypack.git cd easypack/k8s/ansible/
- ssh设定
ssh-keygen ssh-copy-id -i 机器名或者ip
二进制安装脚本下载与准备执行命令:ansible-playbook download/tests/test.yml
说明:网络条件允许的情况下缺省会下载至/tmp/binary目录下
[root@host131 ansible]# ls /tmp/binary cfssl cni docker etcd flannel images kubernetes [root@host131 ansible]#
安装之前确认var_src_binary的设定,缺省为/tmp/binary,如此目录不存在或权限错误等,脚本执行时会提示错误。
安装:单机版本 hosts设定示例# kubernetes : all-node [all-in-one] localhost var_master_host=192.168.163.131 var_etcd_host=192.168.163.131 var_node_host=192.168.163.131 var_master_node_flag=True
只需要修改上述ip(192.168.163.131)为自己机器的ip即可。然后执行如下命令:
mv hosts.all-in-one hosts
安装单机版本ansible-playbook 10.all-in-one.yml
安装:一主多从多节点版本 hosts设定示例[root@host131 ansible]# cat hosts.multi-nodes # kubernetes : master [master-nodes] host131 var_master_host=192.168.163.131 var_master_node_flag=True # kubernetes : node [agent-nodes] host131 var_node_host=192.168.163.131 var_etcd_host=192.168.163.131 var_master_host=192.168.163.131 var_master_node_flag=True host132 var_node_host=192.168.163.132 var_etcd_host=192.168.163.131 var_master_host=192.168.163.131 var_master_node_flag=False host133 var_node_host=192.168.163.133 var_etcd_host=192.168.163.131 var_master_host=192.168.163.131 var_master_node_flag=False host134 var_node_host=192.168.163.134 var_etcd_host=192.168.163.131 var_master_host=192.168.163.131 var_master_node_flag=False # kubernetes : etcd [etcd] host131 var_etcd_host=192.168.163.131 [root@host131 ansible]#
说明:master节点和etcd的安装节点为192.168.163.131 ,192.168.163.132-134均为Node节点,192.168.163.131 本身也会作为Node节点。 只需要修改上述ip为自己机器的ip即可。然后执行如下命令:
mv hosts.multi-nodes hosts
安装一主多从多节点版本ansible-playbook 20.multi-nodes.yml
注:已使用1.15-1.17的kubernetes版本进行过验证