10. k8s集群搭建之多master安装
阅读建议
建议具有k8s基础的同学查看此文档,若无基础建议查看http://blog.liu-kevin.com/2018/11/14/k8s-2/
github地址
https://github.com/clkevin/k8s-ansible
muti-master-cluster分支
若遇到问题可通过上面的github沟通讨论
准备工作
节点准备,可增减node节点
- 10.254.0.88 k8s-master1
- 10.254.0.89 k8s-master2
- 10.254.0.90 k8s-master3
- 10.254.0.91 k8s-node1
- 10.254.0.92 k8s-node2
- 10.254.0.93 k8s-node3
环境准备
- 按上述节点名称在k8s-master1中配置各节点,使k8s-master1能够ssh到其它各节点
- 在k8s-master1 安装git
yum install -y git
- 在k8s-master1 安装ansible
yum install -y ansible
- 在k8s-master1用户home下
git clone https://github.com/clkevin/k8s-ansible.git
git checkout muti-master-cluster
- 修改
~/k8s-ansible/customer/hosts
中的节点名称及ip - 修改
~/k8s-ansible/customer/ansible-hosts
下的ip等信息;若hosts中只调整了ip,则跳过ansible-hosts - 将hosts复制到/etc/ansible/下
cp ~/k8s-ansible/customer/ansible-hosts /etc/ansible/hosts
- 通过
ansible all -m ping
测试是否正常
安装k8s
- 所有节点配置脚本:ansible-playbook 0.all.yml
- 部署节点脚本:ansible-playbook 1.build.yml
- 安装master节点脚本:ansible-playbook 2.master.yml
- 查看default的token,并覆盖 ~/k8s-ansible/auth/kubeconfig中的token
- 安装nodes
ansible-playbook 3.node.yml
- 安装k8s flannel网络: ansible-playbook 4.network.nodes.yml
- 安装dns:
ansible-playbook 5.dns.yml
- 安装k8s flannel网络: ansible-playbook 6.kubelet.auth.yml
更简单方式 ~/k8s-ansible/bin/install-k8s.sh;若此方式出现异常,再尝试上述方式安装
检查
- 检查node是否就绪:kubectl get nodes
- 检查是否可正常创建deployment: kubectl create -f ~/k8s-ansible/deployment/nginx.yml
- 检查是否可正常创建deployment: kubectl create -f ~/k8s-ansible/deployment/busybox.yml
- 检查是否可正常生成service: kubectl expose deployment nginx
- 检查是否可正常进入容器: kubectl exec -it podname bash
- 查看dns及service负载是否正常: 服务中curl ping 或 wget service_ip 及 service_name
- 异常的pod在对应的节点上查看容器: docker ps