在本身的虛擬上剛經歷過部署時候的坑,特別激動終於到了k8s建立正常使用的過程。node
目前的Kubernetes的架構:
三臺服務器python
下面開始建立第一個pod,命令以下。nginx
問題發現:
建立一個nginx服務pod,實例爲2docker
kubectl run nginx --image=nginx --port=80 --replicas=2
vim
能夠看到生成兩個實例並顯示ContainerCreating中,覺得正在建立此實例。過了大概五分鐘,過來看仍是在這個狀態,就感受很不對勁了。centos
查看這個兩個的報錯日誌提示
很顯然這個報錯日誌得不到任何解決方法的問題。因而各類度娘,網上的資料也是很是的雜。服務器
找到一個很好用的命令,這個命令能夠查看建立pod的詳細內容及建立結果
格式:kubectl describe pod {實例名稱}架構
kubectl describe pod nginx-3449338310-p5vfv
ide
從圖上咱們能夠知道建立pod的過程在pull鏡像的時候失敗pull的地址是registry.access.redhat.com/rhel7/pod-infrastructure:latest1\
#此處的latest1是我爲了還原問題特地改爲的,默認都是latest
爲何會去這個倉庫下載鏡像呢,緣由在這裏,咱們看node節點的配置文件通常路徑都爲
vim /etc/kubernetes/kubelet
上面定義了要去這個倉庫下載,知道了這個,咱們也能夠把它改成咱們本身的倉庫了。此處不作修改。
再看第二個報錯信息
這裏的報錯很明顯再找一個renhat的ca證書,未能在這個路徑下找到證書。學習
解決方法:
一、在k8s集羣的每臺服務都運行yum install *rhsm* -y
運行以後/etc/docker/目錄下回多出certs.d 目錄
而後咱們進入/etc/docker/certs.d/registry.access.redhat.com/ 路徑下查看
發現redhat-ca.crt 是一個軟鏈接,這個文件關聯至/etc/rhsm/ca/redhat-uep.pem這個文件,而後進入/etc/rhsm/ca 咱們來看一下這個文件是否存在
#此處是爲了還原問題故意加了.bak,通常狀況是這個目錄下是沒有文件的。
二、
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem 執行這兩條命令會生成這個文件。
#注意此處是在node1節點上面的操做
以後咱們在node節點重啓一下服務systemctl restart kubelet
node2一樣的操做
以後咱們在返回master查看pod的狀態kubectl describe pod nginx-3449338310-jcgzl
能夠看到已經啓動成功了。因爲本人剛開始自學,一些細節還有底層的知識還沒來及學習,但願與各位大神共同窗習,也但願這篇文章對您有所幫助