華為云云原生訓練營學習(一)在鯤鵬部署k8s遇到的坑
近期參加云原生王者之路鉆石集訓營第二階段云原生鉆石課程,剛好有試用的鯤鵬云服務器,為了更好的學習云原生的相關知識,在鯤鵬服務器上搭建k8s集群。
1. 部署k8s首先要安裝docker,根據華為云官方文檔要求,docker推薦使用官方二進制包安裝,其版本為docker-18.09.8及以上。但是在安裝過程中,為了圖方便,在github.com下載對應版本的docker.service,啟動docker出現下面情況:
原因是下載下來的docker.service有問題,解決辦法是重新配置docker.service文件,如下圖所示:
2. 在安裝k8s集群時,根據華為官方文檔步驟操作(https://support.huaweicloud.com/dpmg-kunpengcpfs/kunpengk8s_04_0004.html),配置的k8s源顯示最新版本是1.14.2,達不到文檔環境配置提示的最低版本。如圖所示:
提工單后,華為工程師幫忙解決,重新發鏈接:https://support.huaweicloud.com/instg-kunpengdbs/kunpengmysqlmgr_03_0007.html,按照文檔重新配置源后,可以獲取最新的k8s版本。關于這個問題已經提交云聲,希望能更新一下k8s源的安裝地址。
3. 查看下載節點初始化所需鏡像
kubeadm config images list
但是無法從DockerHub上下載鏡像,如圖所示:
解決辦法是根據https://blog.csdn.net/subfate/article/details/103774072提供的方法修改docker的下載的鏡像源。添加?/etc/docker/daemon.json 文件:
cat > /etc/docker/daemon.json < { "registry-mirrors": [ "https://a8qh6yqv.mirror.aliyuncs.com", "http://hub-mirror.c.163.com" ], "exec-opts": ["native.cgroupdriver=systemd"] } EOF 下載好的鏡像因和kubeadm列出的鏡像名不一致,使用docker tar命令修改鏡像名。 同時使用docker rmi命令刪除下載的鏡像。 開始配置k8s集群,在主節點上執行集群初始化命令 kubeadm init --pod-network-cidr=10.244.0.0/16 如圖所示: 根據圖片所示執行下面的步驟: mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=/etc/kubernetes/admin.conf 在各節點添加加入集群命令: kubeadm join 192.168.0.146:6443 --token 79dfue.05k9pg8621pjxuk5 --discovery-token-ca-cert-hash sha256:32fecf341e684009d6786ebfeadf9098d01a2a061d3a3785014e2ecd715dca53 4. 添加Flannel網絡插件,在主節點上執行如下命令安裝Flannel網絡插件。有兩種方法(1)是登錄gitee.com,從https://gitee.com/mirrors/flannel/blob/master/Documentation/下載kube-flannel.yaml后,上傳到k8s主節點的服務器上。(2)直接在k8s主節點的服務器上使用wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml獲取,記得要查看下載kube-flannel.yml文件是否是格式正確。這個特別注意,這個網址對網絡有要求,如果是彈性云服務器是沒問題,如果是自己在虛擬機上搭建的k8s上,有可能無法下載。所以建議使用第1種方法比較方便。 5. 驗證K8s集群的部署結果 (1)建立一個k8s目錄方便存放yaml文件 mkdir /opt/k8s cd /opt/k8s (2)在k8s主節點中創建一個名為nginx_deploy.yaml的文件,在其中添加如下內容: 出現上圖的問題,是要把apiVersion: apps/v1beta1修改為apiVersion: apps/v1,已經解決上面的錯誤,但是是會報錯,修改如圖所示: 在副本設置下面添加下面語句: selector: matchLabels: app: nginx-deployment (3)創建完畢后執行如下命令,部署節點。 kubectl create -f nginx_deploy.yaml (4)執行pod命令,查看K8s創建這個deployment的過程。 kubectl get pod --all-namespaces -o wide 如圖所示:說明k8s部署成功。 Docker 云原生 鯤鵬
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。