利用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 [kubernetes] 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 -f  https://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,輸出結果如下:  

    

  2、在master節點調用`ip route`,特別注意是否存在路由范圍為"10.244.0.0/24"的"cni0"設備和路由范圍為"10.244.0.0/16"的"flannel.1"設備,輸出結果如下:

  

  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無法加入節點:

  

  解決辦法.....暫時沒有.......

 

3、如果minion節點顯示已經加入成功了,但是在master節點上調用`kubectl get nodes`后發現該節點並沒有加入

  可以調用`kubectl get csr`查看是否有csr處於pending的狀態,有的話,調用`kubectl certificate approve $CSR`將其確認即可

 

三、Reference

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM