阅读建议

建议具有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 安装gityum 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
  • 安装nodesansible-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