CentOS7 部署K8S集群,最新版1.17.3-0


  小白在網上找了很多關於k8s集群部署的文檔,但是版本老舊,到處踩坑,終於部署成功,記錄下過程。

一、准備工作

  虛擬機:VMware® Workstation 15 Pro

  Xhell 6:Xshell.exe: 6.0.0025

  操作系統:CentOS-7

  這里對虛擬機有個要求,2cpu,內存2g,不然初始化master會警告

  具體的關於虛擬機安裝可以看另一篇文章https://www.cnblogs.com/CoderLinkf/p/12393993.html

  部署規划

192.168.3.180        k8s-master
192.168.2.156        k8s-node1

 

1.關閉防火牆,這點基本所有教程都有

  systemctl stop firewalld

2.關閉selinux

  setenforce 0

3.關閉swap

  swapoff -a    臨時關閉

  free             可以通過這個命令查看swap是否關閉了

  vim /etc/fstab  永久關閉

4.添加主機名與IP對應的關系

  vim /etc/hosts

192.168.3.180        k8s-master
192.168.2.156        k8s-node1

  當然,ip要改成自己的

5.將橋接的IPV4流量傳遞到iptables 的鏈

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

6.安裝Docker

  1)安裝docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce

  2)設置docker服務開機自啟

systemctl enable docker
systemctl start docker

  3)查看docker版本,這里是最新版

docker --version
Docker version 19.03.6, build 369ce74a3c

7.添加阿里雲YUM軟件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

8.安裝kubeadm,kubelet和kubectl

yum makecache fast
yum install -y kubelet kubeadm kubectl --nogpgcheck

  指定版本沒試過,這里直接安裝最新版,並且跳過公鑰檢查

9.部署Kubernetes Master

  1)初始化kubeadm

kubeadm init --apiserver-advertise-address=192.168.3.180 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

  一樣的,記得改成自己的master節點ip

  當出現如下結果,表示初始化順利,這一步要等待幾分鍾,並且一開始沒有進度提示,一度以為卡了

  

  查看鏡像

docker images

  

 

 

   2)接下來,將初始化結果中的命令復制出來執行:

      

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

  下面的命令等會兒用來添加節點

kubeadm join 192.168.3.180:6443 --token dfug5t.cscrkl8hy8whplx7 \
    --discovery-token-ca-cert-hash sha256:625f94e773c68ba673f44157e8983640a4505232c0adc0cb8a10f7c05e602c90 

  到此,就可以使用kubectl命令了

kubectl get node

    

 

 

   但是是notready狀態,

  執行  kubectl get pods -n kube-system  命令可以看到,頭兩個狀態是pending

10.安裝flannel

  1)這里,大部分文檔的flannel安裝鏈接基本都失效了,找了很久找到一個

   https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml

  將這個文件下載下來,ftp到root下面,然后開始執行

  或者執行命令保存:wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

sed -i 's@quay.io@quay.azk8s.cn@g' kube-flannel.yml
kubectl apply -f kube-flannel.yml

    

 

 

   2)查看是否部署成功

kubectl get pods -n kube-system

    

 

 

   3)再次執行  kubectl get node  命令,可以看到,狀態是ready

    

 

 

   安裝失敗了,怎么清理環境重新安裝啊?執行一條命令:

  kubeadm reset

  然后重新初始化即可

11.Node節點加入集群

  node節點虛擬機,執行1-8步,然后執行master節點初始化kubeadm時的命令

kubeadm join 192.168.3.180:6443 --token dfug5t.cscrkl8hy8whplx7 \
    --discovery-token-ca-cert-hash sha256:625f94e773c68ba673f44157e8983640a4505232c0adc0cb8a10f7c05e602c90 

  如果一直卡在 “Running pre-flight checks” 上,則很可能是時間未同步,token失效導致

  可以在master節點執行

  kubeadm token list

  kubeadm token create

  重新生成即可

  openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

  kubeadm reset<br>$ kubeadm join 192.168.38.11:6443 --token unnscz.aq2r62cuc14w27oa \ --discovery-token-ca-cert-hash sha256:8b79b6461e58c07333cb2851fe74fd4374af8bbbe0bf7e040b415b86ad4fb89d

12.測試kubernetes集群

  在master節點中

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

  然后執行  kubectl get pods  查看

  kubectl get pod,svc -o wide

  通過瀏覽器訪問:http://192.168.3.180:32049 正常訪問

參考文章:

https://www.cnblogs.com/caoxb/p/11243472.html

https://www.cnblogs.com/zyxnhr/p/12181721.html#_label1_8


免責聲明!

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



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