溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Kubernetes集群環(huán)境常見(jiàn)的問(wèn)題及解決方法

發(fā)布時(shí)間:2021-08-27 14:41:04 來(lái)源:億速云 閱讀:177 作者:chen 欄目:云計(jì)算

這篇文章主要講解了“Kubernetes集群環(huán)境常見(jiàn)的問(wèn)題及解決方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Kubernetes集群環(huán)境常見(jiàn)的問(wèn)題及解決方法”吧!

1、Kubernetes集群環(huán)境下各個(gè)node鏡像不能自動(dòng)拉取

一般情況下遇到這種情況下,比較笨的辦法是可以通過(guò)人肉的方式登錄到每個(gè)節(jié)點(diǎn)通過(guò)docker login docker pull的形式獲取鏡像,想象下,如果成百上千個(gè)節(jié)點(diǎn)......

一般出現(xiàn)此類問(wèn)題在私有倉(cāng)庫(kù)和云廠商分別解決方法如下。

  • 專有鏡像的集群,比如一些個(gè)人或者公司搭建私有倉(cāng)庫(kù),以下是解決該問(wèn)題步驟


  1. docker login [server]針對(duì)要使用的每組憑據(jù)運(yùn)行。這將更新$HOME/.docker/config.json;

  2. $HOME/.docker/config.json在編輯器中查看,以確保它僅包含您要使用的憑據(jù);

  3. 將當(dāng)前節(jié)點(diǎn).docker/config.json復(fù)制到其它節(jié)點(diǎn),命令如下;

for n in $nodes; do scp ~/.docker/config.json root@$n:/var/lib/kubelet/config.json; done

   4.  創(chuàng)建pod測(cè)試?yán)$R像;

kubectl apply -f - <<EOFapiVersion: v1kind: Podmetadata:  name: private-image-test-1spec:  containers:    - name: uses-private-image      image: your image      imagePullPolicy: Always      command: [ "echo", "SUCCESS" ]EOFpod/private-image-test-1 created

      5. 如果一切正常,執(zhí)行如下命令。

kubectl logs private-image-test-1SUCCESS
  • 對(duì)于Google Kubernetes Engine,GCE以及任何自動(dòng)創(chuàng)建節(jié)點(diǎn)的云提供商,目前建議使用此方法,以下是解決步驟


  1. 使用docker命令創(chuàng)建密鑰;

kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

   2. 在Pod上引用imagePullSecrets;

cat <<EOF > pod.yamlapiVersion: v1kind: Podmetadata:  name: foo  namespace: awesomeappsspec:  containers:    - name: foo      image: jan/awesomeapp:v1  imagePullSecrets:    - name: myregistrykeyEOF
cat <<EOF >> ./kustomization.yamlresources:- pod.yamlEOF

2、k8s或者docker提示exec format error

[root@k8s-master k8s_spider]# k get podNAME                                      READY   STATUS             RESTARTS   AGEprivate-image-test-1                      0/1     CrashLoopBackOff   5          5m5sregistry-deployment                       0/1     CrashLoopBackOff   20         80m
[root@k8s-master k8s_spider]# kubectl logs private-image-test-1standard_init_linux.go:211: exec user process caused "exec format error"

遇到這種問(wèn)題一般都是鏡像問(wèn)題,當(dāng)前鏡像不能在當(dāng)前docker環(huán)境中執(zhí)行,比如你的鏡像是基于arm架構(gòu)CPU編譯,把鏡像放到x86下運(yùn)行,自然就會(huì)出現(xiàn)鏡像不兼容導(dǎo)致格式錯(cuò)誤。

3、鏡像下載問(wèn)題

在某些環(huán)境下可能會(huì)出現(xiàn)本臺(tái)機(jī)器不能連接外網(wǎng)或者docker倉(cāng)庫(kù)這個(gè)時(shí)候我們可以通過(guò)如下方式把鏡像導(dǎo)入進(jìn)來(lái):

    1. 保存鏡像

docker save -o ./coredns.tar k8s.gcr.io/coredns:1.3.1

    2.導(dǎo)出鏡像

docker load --input coredns.tar

用戶也可以使用 docker import 導(dǎo)入export導(dǎo)出一個(gè)容器快照到本地鏡像庫(kù)。這兩者的區(qū)別在于 import 容器快照文件將丟棄所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時(shí)的快照狀態(tài)),而鏡像存儲(chǔ)文件將保存完整記錄,體積也要大。此外,從容器快照文件導(dǎo)入時(shí)可以重新指定標(biāo)簽等元數(shù)據(jù)信息。

4、無(wú)法獲取到當(dāng)前節(jié)點(diǎn)、pod 提示6443端口不通,如下所示:

Failed to list *v1.ConfigMap: Get https://192.168..20:6443/api/v1/namespaces/default/configmaps?fieldSelector=metadata.name%3Deoa-group-config&limit=500&resourceVersion=0: dial tcp 192.168.7.240:6443: connect: connection refused

出現(xiàn)此類問(wèn)題,大多是沒(méi)安裝監(jiān)控軟件,某個(gè)節(jié)點(diǎn)出現(xiàn)問(wèn)題,管理員沒(méi)有察覺(jué)導(dǎo)致,比如OS問(wèn)題或者磁盤打滿問(wèn)題導(dǎo)致,可以查看系統(tǒng)是否正常,然后重啟kubelet解決問(wèn)題。

systemctl restart kubelet

5、執(zhí)行apply服務(wù)配置不生效

kubectl apply xxx.yaml會(huì)檢測(cè)當(dāng)前yaml是否有變化,如果修改了服務(wù)中其他配置而沒(méi)有修改yaml,直接apply,那么kubectl會(huì)認(rèn)為沒(méi)有變化,故配置不能生效,這時(shí)要使用kubectl delete/create命令使其生效。

感謝各位的閱讀,以上就是“Kubernetes集群環(huán)境常見(jiàn)的問(wèn)題及解決方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Kubernetes集群環(huán)境常見(jiàn)的問(wèn)題及解決方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI