砂拉豆 发表于 2018-1-4 19:11:53

利用kubeadm部署kubernetes 1.7 with flannel

  一、Installation
  1、安装环境为CentOS 7
  2、安装Docker


[*]yum install -y docker
[*]systemctl enable docker
[*]systemctl start docker
  3、安装CNI


[*]  

cat <<EOF > /etc/yum.repos.d/kubernetes.repo  

  
name=Kubernetes
  
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
  
enabled=1
  
gpgcheck=1
  
repo_gpgcheck=1
  
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
  
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  
EOF
  


[*]setenforce 0
[*]yum install -y kubernetes-cni
  4、安装kubernetes其他组件


[*]yum install -y kubelet kubeadm kubectl
  5、创建master node


[*]kubeadm init --pod-network-cidr 10.244.0.0/16
[*]mkdir -p $HOME/.kube
[*]sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[*]sudo chown $(id -u):$(id -g) $HOME/.kube/config
  6、创建minion node


[*]在master节点上调用`TOKEN=$(kubeadm token list | grep authentication,signing | awk '{print $1}')`
[*]在minion节点上调用`kubeadm join --token $TOKEN ${MASTER_IP:PORT}`加入集群
[*]调用`kubectl get nodes`可以观察节点是否加入
  7、安装flannel,仅在master节点上操作


[*]kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
[*]kubectl apply -fhttps://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  需要注意的是,通过上述步骤,会自动将flannel安装到整个集群中,包括master节点和所有minion节点
  8、检测安装是否成功
  1、在master节点调用`kubectl get pods --all-namespaces`,特别注意kube-dns-*和kube-flannel-*是否running,输出结果如下:  
https://images2015.cnblogs.com/blog/685359/201707/685359-20170719101121130-936235124.png  
  2、在master节点调用`ip route`,特别注意是否存在路由范围为"10.244.0.0/24"的"cni0"设备和路由范围为"10.244.0.0/16"的"flannel.1"设备,输出结果如下:
https://images2015.cnblogs.com/blog/685359/201707/685359-20170719101411380-90959201.png
  3、调用`kubectl run -i --tty busybox --image=busybox`创建pod,然后用位于不同节点间的pod互ping,成功即可
  二、Troubleshooting
  1、如果通过`kubectl get pods --all-namespaces`命令观察到kube-flannel-*这个pod迟迟不能running
  调用`journalctl -u docker`发现错误为`cp: can't create '/etc/cni/net.d/10-flannel.conf': Permission denied`
  调用`setenforce 0`暂时关闭SELinux即可
  2、最新版的kubernetes中,在添加minion节点时,可能会出现如下问题,导致minion无法加入节点:
https://images2015.cnblogs.com/blog/685359/201707/685359-20170719102512130-727217050.png
  解决办法.....暂时没有.......
  3、如果minion节点显示已经加入成功了,但是在master节点上调用`kubectl get nodes`后发现该节点并没有加入
  可以调用`kubectl get csr`查看是否有csr处于pending的状态,有的话,调用`kubectl certificate approve $CSR`将其确认即可
  三、Reference


[*]https://github.com/kubernetes/frakti/blob/master/docs/deploy.md
[*]http://blog.frognew.com/2017/04/kubeadm-install-kubernetes-1.6.html
[*]http://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/

worker88880 发表于 2018-9-6 21:13:19

谢谢楼主分享!!!

worker88880 发表于 2018-9-6 21:13:43

谢谢楼主分享!!!

zhy1022wo 发表于 2018-9-10 10:44:16

赞!
页: [1]
查看完整版本: 利用kubeadm部署kubernetes 1.7 with flannel