github地址

https://github.com/clkevin/k8s-ansible
master分支

若遇到问题可通过上面的github沟通讨论

准备工作

节点准备,可增减node节点

  • 10.254.0.56 k8s-master
  • 10.254.0.57 k8s-node1
  • 10.254.0.58 k8s-node2
  • 10.254.0.59 k8s-node3

环境准备(以下操作针对master节点)

  • 按上述节点名称在k8s-master中配置各节点,使k8s-master能够通过ssh免密访问master及其它各节点
  • 安装gityum install -y git
  • 安装ansible yum install -y ansible
  • 在master用户home下 git clone https://github.com/clkevin/k8s-ansible.git
  • 修改~/k8s-ansible/customer/hosts中的节点名称及ip
  • 修改~/k8s-ansible/customer/ansible-hosts 下的ip等信息
  • 将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
  • 安装nodesansible-playbook 3.node.yml
  • 安装k8s flannel网络: ansible-playbook 4.network.nodes.yml
  • 安装dns:ansible-playbook 5.dns.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