日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)kubernetes教程:Kubernetes 使用kubeadm創(chuàng)建集群

使用 kubeadm 創(chuàng)建集群

使用 ?kubeadm?,你能創(chuàng)建一個(gè)符合最佳實(shí)踐的最小化 Kubernetes 集群。 事實(shí)上,你可以使用 ?kubeadm ?配置一個(gè)通過(guò) Kubernetes 一致性測(cè)試的集群。 ?kubeadm ?還支持其他集群生命周期功能, 例如啟動(dòng)引導(dǎo)令牌和集群升級(jí)。

創(chuàng)新互聯(lián)企業(yè)建站,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專(zhuān)注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢(xún)和貼心的售后服務(wù)。對(duì)于成都網(wǎng)站建設(shè)、網(wǎng)站制作中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過(guò)對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。

kubeadm 工具很棒,如果你需要:

  • 一個(gè)嘗試 Kubernetes 的簡(jiǎn)單方法。
  • 一個(gè)現(xiàn)有用戶可以自動(dòng)設(shè)置集群并測(cè)試其應(yīng)用程序的途徑。
  • 其他具有更大范圍的生態(tài)系統(tǒng)和/或安裝工具中的構(gòu)建模塊。

你可以在各種機(jī)器上安裝和使用 ?kubeadm?:筆記本電腦, 一組云服務(wù)器,Raspberry Pi 等。無(wú)論是部署到云還是本地, 你都可以將 ?kubeadm ?集成到預(yù)配置系統(tǒng)中,例如 Ansible 或 Terraform。

在開(kāi)始之前

要遵循本指南,你需要:

  • 一臺(tái)或多臺(tái)運(yùn)行兼容 deb/rpm 的 Linux 操作系統(tǒng)的計(jì)算機(jī);例如:Ubuntu 或 CentOS。
  • 每臺(tái)機(jī)器 2 GB 以上的內(nèi)存,內(nèi)存不足時(shí)應(yīng)用會(huì)受限制。
  • 用作控制平面節(jié)點(diǎn)的計(jì)算機(jī)上至少有2個(gè) CPU。
  • 集群中所有計(jì)算機(jī)之間具有完全的網(wǎng)絡(luò)連接。你可以使用公共網(wǎng)絡(luò)或?qū)S镁W(wǎng)絡(luò)。

你還需要使用可以在新集群中部署特定 Kubernetes 版本對(duì)應(yīng)的 ?kubeadm?。

Kubernetes 版本及版本偏差策略適用于 ?kubeadm ?以及整個(gè) Kubernetes。 查閱該策略以了解支持哪些版本的 Kubernetes 和 ?kubeadm?。 該頁(yè)面是為 Kubernetes v1.24 編寫(xiě)的。

?kubeadm ?工具的整體功能狀態(tài)為一般可用性(GA)。一些子功能仍在積極開(kāi)發(fā)中。 隨著工具的發(fā)展,創(chuàng)建集群的實(shí)現(xiàn)可能會(huì)略有變化,但總體實(shí)現(xiàn)應(yīng)相當(dāng)穩(wěn)定。

Note: 根據(jù)定義,在 ?kubeadm alpha? 下的所有命令均在 alpha 級(jí)別上受支持。

目標(biāo)

  • 安裝單個(gè)控制平面的 Kubernetes 集群
  • 在集群上安裝 Pod 網(wǎng)絡(luò),以便你的 Pod 可以相互連通

操作指南

主機(jī)準(zhǔn)備

在所有主機(jī)上安裝 容器運(yùn)行時(shí) 和 kubeadm。

Note:

如果你已經(jīng)安裝了kubeadm,執(zhí)行 ?
apt-get update && apt-get upgrade? 或 ?
yum update? 以獲取 kubeadm 的最新版本。

升級(jí)時(shí),kubelet 每隔幾秒鐘重新啟動(dòng)一次, 在 crashloop 狀態(tài)中等待 kubeadm 發(fā)布指令。crashloop 狀態(tài)是正?,F(xiàn)象。 初始化控制平面后,kubelet 將正常運(yùn)行。

準(zhǔn)備所需的容器鏡像 

這個(gè)步驟是可選的,只適用于你希望 ?kubeadm init? 和 ?kubeadm join? 不去下載存放在 ?K8S.gcr.io? 上的默認(rèn)的容器鏡像的情況。

當(dāng)你在離線的節(jié)點(diǎn)上創(chuàng)建一個(gè)集群的時(shí)候,Kubeadm 有一些命令可以幫助你預(yù)拉取所需的鏡像。

Kubeadm 允許你給所需要的鏡像指定一個(gè)自定義的鏡像倉(cāng)庫(kù)。

初始化控制平面節(jié)點(diǎn)

控制平面節(jié)點(diǎn)是運(yùn)行控制平面組件的機(jī)器, 包括 etcd (集群數(shù)據(jù)庫(kù)) 和 API Server (命令行工具 kubectl 與之通信)。

  1. (推薦)如果計(jì)劃將單個(gè)控制平面 kubeadm 集群升級(jí)成高可用, 你應(yīng)該指定 ?--control-plane-endpoint? 為所有控制平面節(jié)點(diǎn)設(shè)置共享端點(diǎn)。 端點(diǎn)可以是負(fù)載均衡器的 DNS 名稱(chēng)或 IP 地址。
  2. 選擇一個(gè) Pod 網(wǎng)絡(luò)插件,并驗(yàn)證是否需要為 ?kubeadm init? 傳遞參數(shù)。 根據(jù)你選擇的第三方網(wǎng)絡(luò)插件,你可能需要設(shè)置 ?--pod-network-cidr? 的值。 
  3. (可選)?kubeadm ?試圖通過(guò)使用已知的端點(diǎn)列表來(lái)檢測(cè)容器運(yùn)行時(shí)。 使用不同的容器運(yùn)行時(shí)或在預(yù)配置的節(jié)點(diǎn)上安裝了多個(gè)容器運(yùn)行時(shí),請(qǐng)為 ?kubeadm init? 指定 ?--cri-socket? 參數(shù)。
  4. (可選)除非另有說(shuō)明,否則 ?kubeadm ?使用與默認(rèn)網(wǎng)關(guān)關(guān)聯(lián)的網(wǎng)絡(luò)接口來(lái)設(shè)置此控制平面節(jié)點(diǎn) API server 的廣播地址。 要使用其他網(wǎng)絡(luò)接口,請(qǐng)為 ?kubeadm init? 設(shè)置 ?--apiserver-advertise-address=? 參數(shù)。 要部署使用 IPv6 地址的 Kubernetes 集群, 必須指定一個(gè) IPv6 地址,例如 ?--apiserver-advertise-address=fd00::101?

要初始化控制平面節(jié)點(diǎn),請(qǐng)運(yùn)行:

kubeadm init 

關(guān)于 apiserver-advertise-address 和 ControlPlaneEndpoint 的注意事項(xiàng) 

?--apiserver-advertise-address? 可用于為控制平面節(jié)點(diǎn)的 API server 設(shè)置廣播地址, ?--control-plane-endpoint? 可用于為所有控制平面節(jié)點(diǎn)設(shè)置共享端點(diǎn)。

?--control-plane-endpoint? 允許 IP 地址和可以映射到 IP 地址的 DNS 名稱(chēng)。 請(qǐng)與你的網(wǎng)絡(luò)管理員聯(lián)系,以評(píng)估有關(guān)此類(lèi)映射的可能解決方案。

這是一個(gè)示例映射:

192.168.0.102 cluster-endpoint

其中 ?192.168.0.102? 是此節(jié)點(diǎn)的 IP 地址,?cluster-endpoint? 是映射到該 IP 的自定義 DNS 名稱(chēng)。 這將允許你將 ?--control-plane-endpoint=cluster-endpoint? 傳遞給 ?kubeadm init?,并將相同的 DNS 名稱(chēng)傳遞給 ?kubeadm join?。 稍后你可以修改 ?cluster-endpoint? 以指向高可用性方案中的負(fù)載均衡器的地址。

kubeadm 不支持將沒(méi)有 ?--control-plane-endpoint? 參數(shù)的單個(gè)控制平面集群轉(zhuǎn)換為高可用性集群。

更多信息

要再次運(yùn)行 ?kubeadm init?,你必須首先卸載集群。

如果將具有不同架構(gòu)的節(jié)點(diǎn)加入集群, 請(qǐng)確保已部署的 DaemonSet 對(duì)這種體系結(jié)構(gòu)具有容器鏡像支持。

?kubeadm init? 首先運(yùn)行一系列預(yù)檢查以確保機(jī)器 準(zhǔn)備運(yùn)行 Kubernetes。這些預(yù)檢查會(huì)顯示警告并在錯(cuò)誤時(shí)退出。然后 ?kubeadm init? 下載并安裝集群控制平面組件。這可能會(huì)需要幾分鐘。 完成之后你應(yīng)該看到:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a Pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  /docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join : --token  --discovery-token-ca-cert-hash sha256:

要使非 root 用戶可以運(yùn)行 kubectl,請(qǐng)運(yùn)行以下命令, 它們也是 ?kubeadm init? 輸出的一部分:

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

或者,如果你是 ?root ?用戶,則可以運(yùn)行:

export KUBECONFIG=/etc/kubernetes/admin.conf

Warning:

kubeadm 對(duì) ?
admin.conf? 中的證書(shū)進(jìn)行簽名時(shí),將其配置為 ?
Subject: O = system:masters, CN = kubernetes-admin?。 ?
system:masters? 是一個(gè)例外的、超級(jí)用戶組,可以繞過(guò)鑒權(quán)層(例如 RBAC)。 不要將 ?
admin.conf? 文件與任何人共享,應(yīng)該使用 ?
kubeadm kubeconfig user? 命令為其他用戶生成 kubeconfig 文件,完成對(duì)他們的定制授權(quán)。

記錄 ?kubeadm init? 輸出的 ?kubeadm join? 命令。 你需要此命令將節(jié)點(diǎn)加入集群。

令牌用于控制平面節(jié)點(diǎn)和加入節(jié)點(diǎn)之間的相互身份驗(yàn)證。 這里包含的令牌是密鑰。確保它的安全, 因?yàn)閾碛写肆钆频娜魏稳硕伎梢詫⒔?jīng)過(guò)身份驗(yàn)證的節(jié)點(diǎn)添加到你的集群中。 可以使用 ?kubeadm token? 命令列出,創(chuàng)建和刪除這些令牌。

安裝 Pod 網(wǎng)絡(luò)附加組件 

Caution:

本節(jié)包含有關(guān)網(wǎng)絡(luò)設(shè)置和部署順序的重要信息。 在繼續(xù)之前,請(qǐng)仔細(xì)閱讀所有建議。

你必須部署一個(gè)基于 Pod 網(wǎng)絡(luò)插件的 容器網(wǎng)絡(luò)接口 (CNI),以便你的 Pod 可以相互通信。 在安裝網(wǎng)絡(luò)之前,集群 DNS (CoreDNS) 將不會(huì)啟動(dòng)。

  • 注意你的 Pod 網(wǎng)絡(luò)不得與任何主機(jī)網(wǎng)絡(luò)重疊: 如果有重疊,你很可能會(huì)遇到問(wèn)題。 (如果你發(fā)現(xiàn)網(wǎng)絡(luò)插件的首選 Pod 網(wǎng)絡(luò)與某些主機(jī)網(wǎng)絡(luò)之間存在沖突, 則應(yīng)考慮使用一個(gè)合適的 CIDR 塊來(lái)代替, 然后在執(zhí)行 ?kubeadm init? 時(shí)使用 ?--pod-network-cidr? 參數(shù)并在你的網(wǎng)絡(luò)插件的 YAML 中替換它)。
  • 默認(rèn)情況下,?kubeadm ?將集群設(shè)置為使用和強(qiáng)制使用 RBAC(基于角色的訪問(wèn)控制)。 確保你的 Pod 網(wǎng)絡(luò)插件支持 RBAC,以及用于部署它的 manifests 也是如此。
  • 如果要為集群使用 IPv6(雙協(xié)議棧或僅單協(xié)議棧 IPv6 網(wǎng)絡(luò)), 請(qǐng)確保你的 Pod 網(wǎng)絡(luò)插件支持 IPv6。 IPv6 支持已在 CNI v0.6.0 版本中添加。

Note: kubeadm 應(yīng)該是與 CNI 無(wú)關(guān)的,對(duì) CNI 驅(qū)動(dòng)進(jìn)行驗(yàn)證目前不在我們的端到端測(cè)試范疇之內(nèi)。 如果你發(fā)現(xiàn)與 CNI 插件相關(guān)的問(wèn)題,應(yīng)在其各自的問(wèn)題跟蹤器中記錄而不是在 kubeadm 或 kubernetes 問(wèn)題跟蹤器中記錄。

一些外部項(xiàng)目為 Kubernetes 提供使用 CNI 的 Pod 網(wǎng)絡(luò),其中一些還支持網(wǎng)絡(luò)策略。

你可以使用以下命令在控制平面節(jié)點(diǎn)或具有 kubeconfig 憑據(jù)的節(jié)點(diǎn)上安裝 Pod 網(wǎng)絡(luò)附加組件:

kubectl apply -f 

每個(gè)集群只能安裝一個(gè) Pod 網(wǎng)絡(luò)。

安裝 Pod 網(wǎng)絡(luò)后,你可以通過(guò)在 ?kubectl get pods --all-namespaces? 輸出中檢查 CoreDNS Pod 是否 ?Running ?來(lái)確認(rèn)其是否正常運(yùn)行。 一旦 CoreDNS Pod 啟用并運(yùn)行,你就可以繼續(xù)加入節(jié)點(diǎn)。

如果你的網(wǎng)絡(luò)無(wú)法正常工作或 CoreDNS 不在“運(yùn)行中”狀態(tài),請(qǐng)查看 ?kubeadm ?的 故障排除指南。

托管節(jié)點(diǎn)標(biāo)簽 

默認(rèn)情況下,kubeadm 啟用 NodeRestriction 準(zhǔn)入控制器來(lái)限制 kubelets 在節(jié)點(diǎn)注冊(cè)時(shí)可以應(yīng)用哪些標(biāo)簽。準(zhǔn)入控制器文檔描述 kubelet ?--node-labels? 選項(xiàng)允許使用哪些標(biāo)簽。 其中 ?node-role.kubernetes.io/control-plane? 標(biāo)簽就是這樣一個(gè)受限制的標(biāo)簽, kubeadm 在節(jié)點(diǎn)創(chuàng)建后使用特權(quán)客戶端手動(dòng)應(yīng)用此標(biāo)簽。 你可以使用一個(gè)有特權(quán)的 kubeconfig,比如由 kubeadm 管理的 ?/etc/kubernetes/admin.conf?, 通過(guò)執(zhí)行 ?kubectl label? 來(lái)手動(dòng)完成操作。

控制平面節(jié)點(diǎn)隔離

默認(rèn)情況下,出于安全原因,你的集群不會(huì)在控制平面節(jié)點(diǎn)上調(diào)度 Pod。 如果你希望能夠在控制平面節(jié)點(diǎn)上調(diào)度 Pod,例如單機(jī) Kubernetes 集群,請(qǐng)運(yùn)行:

kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-

輸出看起來(lái)像:

node "test-01" untainted

這將從任何擁有 ?node-role.kubernetes.io/control-plane? 和 ?node-role.kubernetes.io/master? 污點(diǎn)的節(jié)點(diǎn)上移除該污點(diǎn)。

包括控制平面節(jié)點(diǎn),這意味著調(diào)度程序?qū)⒛軌蛟谌魏蔚胤秸{(diào)度 Pods。

Note: ?node-role.kubernetes.io/master? 污點(diǎn)已被廢棄,kubeadm 將在 1.25 版本中停止使用它。

加入節(jié)點(diǎn)

節(jié)點(diǎn)是你的工作負(fù)載(容器和 Pod 等)運(yùn)行的地方。要將新節(jié)點(diǎn)添加到集群,請(qǐng)對(duì)每臺(tái)計(jì)算機(jī)執(zhí)行以下操作:

  • SSH 到機(jī)器
  • 成為 root (例如 ?sudo su -?)
  • 運(yùn)行 ?kubeadm init? 輸出的命令,例如:
  • kubeadm join --token  : --discovery-token-ca-cert-hash sha256:
    

如果沒(méi)有令牌,可以通過(guò)在控制平面節(jié)點(diǎn)上運(yùn)行以下命令來(lái)獲取令牌:

kubeadm token list

輸出類(lèi)似于以下內(nèi)容:

TOKEN                    TTL  EXPIRES              USAGES           DESCRIPTION            EXTRA GROUPS
8ewj1p.9r9hcjoqgajrj4gi  23h  2018-06-12T02:51:28Z authentication,  The default bootstrap  system:
                                                   signing          token generated by     bootstrappers:
                                                                    'kubeadm init'.        kubeadm:
                                                                                           default-node-token

默認(rèn)情況下,令牌會(huì)在 24 小時(shí)后過(guò)期。如果要在當(dāng)前令牌過(guò)期后將節(jié)點(diǎn)加入集群, 則可以通過(guò)在控制平面節(jié)點(diǎn)上運(yùn)行以下命令來(lái)創(chuàng)建新令牌:

kubeadm token create

輸出類(lèi)似于以下內(nèi)容:

5didvk.d09sbcov8ph2amjw

如果你沒(méi)有 ?--discovery-token-ca-cert-hash? 的值,則可以通過(guò)在控制平面節(jié)點(diǎn)上執(zhí)行以下命令鏈來(lái)獲取它:

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

輸出類(lèi)似于以下內(nèi)容:

8cb2de97839780a412b93877f8507ad6c94f73add17d5d7058e91741c9d5ec78

Note: 要為 ?:? 指定 IPv6 元組,必須將 IPv6 地址括在方括號(hào)中,例如:?[fd00::101]:2073?

輸出應(yīng)類(lèi)似于:

[preflight] Running pre-flight checks

... (log output of join workflow) ...

Node join complete:
* Certificate signing request sent to control-plane and response
  received.
* Kubelet informed of new secure connection details.

Run 'kubectl get nodes' on control-plane to see this machine join.

幾秒鐘后,當(dāng)你在控制平面節(jié)點(diǎn)上執(zhí)行 ?kubectl get nodes?,你會(huì)注意到該節(jié)點(diǎn)出現(xiàn)在輸出中。

Note: 由于集群節(jié)點(diǎn)通常是按順序初始化的,CoreDNS Pods 很可能都運(yùn)行在第一個(gè)控制面節(jié)點(diǎn)上。 為了提供更高的可用性,請(qǐng)?jiān)诩尤胫辽僖粋€(gè)新節(jié)點(diǎn)后 使用 ?kubectl -n kube-system rollout restart deployment coredns? 命令,重新平衡 CoreDNS Pods。

(可選)從控制平面節(jié)點(diǎn)以外的計(jì)算機(jī)控制集群

為了使 kubectl 在其他計(jì)算機(jī)(例如筆記本電腦)上與你的集群通信, 你需要將管理員 kubeconfig 文件從控制平面節(jié)點(diǎn)復(fù)制到工作站,如下所示:

scp root@:/etc/kubernetes/admin.conf .
kubectl --kubeconfig ./admin.conf get nodes

Note:

上面的示例假定為 root 用戶啟用了 SSH 訪問(wèn)。如果不是這種情況, 你可以使用 ?
scp? 將 ?
admin.conf? 文件復(fù)制給其他允許訪問(wèn)的用戶。

admin.conf 文件為用戶提供了對(duì)集群的超級(jí)用戶特權(quán)。 該文件應(yīng)謹(jǐn)慎使用。對(duì)于普通用戶,建議生成一個(gè)你為其授予特權(quán)的唯一證書(shū)。 你可以使用 ?
kubeadm alpha kubeconfig user --client-name ? 命令執(zhí)行此操作。 該命令會(huì)將 KubeConfig 文件打印到 STDOUT,你應(yīng)該將其保存到文件并分發(fā)給用戶。 之后,使用 ?
kubectl create (cluster)rolebinding? 授予特權(quán)。

(可選)將 API 服務(wù)器代理到本地主機(jī)

如果要從集群外部連接到 API 服務(wù)器,則可以使用 ?kubectl proxy?:

scp root@:/etc/kubernetes/admin.conf .
kubectl --kubeconfig ./admin.conf proxy

你現(xiàn)在可以在本地訪問(wèn) API 服務(wù)器 ?http://localhost:8001/api/v1?。

清理

如果你在集群中使用了一次性服務(wù)器進(jìn)行測(cè)試,則可以關(guān)閉這些服務(wù)器,而無(wú)需進(jìn)一步清理。你可以使用 ?kubectl config delete-cluster? 刪除對(duì)集群的本地引用。

但是,如果要更干凈地取消配置集群, 則應(yīng)首先清空節(jié)點(diǎn)并確保該節(jié)點(diǎn)為空, 然后取消配置該節(jié)點(diǎn)。

刪除節(jié)點(diǎn)

使用適當(dāng)?shù)膽{證與控制平面節(jié)點(diǎn)通信,運(yùn)行:

kubectl drain  --delete-emptydir-data --force --ignore-daemonsets

在刪除節(jié)點(diǎn)之前,請(qǐng)重置 ?kubeadm ?安裝的狀態(tài):

kubeadm reset

重置過(guò)程不會(huì)重置或清除 iptables 規(guī)則或 IPVS 表。如果你希望重置 iptables,則必須手動(dòng)進(jìn)行:

iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

如果要重置 IPVS 表,則必須運(yùn)行以下命令:

ipvsadm -C

現(xiàn)在刪除節(jié)點(diǎn):

kubectl delete node 

如果你想重新開(kāi)始,只需運(yùn)行 ?kubeadm init? 或 ?kubeadm join? 并加上適當(dāng)?shù)膮?shù)。

清理控制平面

你可以在控制平面主機(jī)上使用 ?kubeadm reset? 來(lái)觸發(fā)盡力而為的清理。

版本偏差策略

雖然 kubeadm 允許所管理的組件有一定程度的版本偏差, 但是建議你將 kubeadm 的版本與控制平面組件、kube-proxy 和 kubelet 的版本相匹配。

kubeadm 中的 Kubernetes 版本偏差

kubeadm 可以與 Kubernetes 組件一起使用,這些組件的版本與 kubeadm 相同,或者比它大一個(gè)版本。 Kubernetes 版本可以通過(guò)使用 ?--kubeadm init? 的 ?--kubernetes-version? 標(biāo)志或使用 ?--config? 時(shí)的 ?ClusterConfiguration.kubernetesVersion? 字段指定給 kubeadm。 這個(gè)選項(xiàng)將控制 kube-apiserver、kube-controller-manager、kube-scheduler 和 kube-proxy 的版本。

例如:

  • kubeadm 的版本為 1.24。
  • ?kubernetesVersion ?必須為 1.24 或者 1.23。

kubeadm 中 kubelet 的版本偏差

與 Kubernetes 版本類(lèi)似,kubeadm 可以使用與 kubeadm 相同版本的 kubelet, 或者比 kubeadm 老一個(gè)版本的 kubelet。

例如:

  • kubeadm 的版本為 1.24
  • 主機(jī)上的 kubelet 版本必須為 1.24 或者 1.23

kubeadm 支持的 kubeadm 的版本偏差

kubeadm 命令在現(xiàn)有節(jié)點(diǎn)或由 kubeadm 管理的整個(gè)集群上的操作有一定限制。

如果新的節(jié)點(diǎn)加入到集群中,用于 ?kubeadm join? 的 kubeadm 二進(jìn)制文件必須與用 ?kubeadm init? 創(chuàng)建集群或用 ?kubeadm upgrade? 升級(jí)同一節(jié)點(diǎn)時(shí)所用的 kubeadm 版本一致。 類(lèi)似的規(guī)則適用于除了 ?kubeadm upgrade? 以外的其他 kubeadm 命令。

?kubeadm join? 的例子:

  • 使用 ?kubeadm init? 創(chuàng)建集群時(shí)使用版本為 1.24 的 kubeadm。
  • 加入的節(jié)點(diǎn)必須使用版本為 1.24 的 kubeadm 二進(jìn)制文件。

對(duì)于正在升級(jí)的節(jié)點(diǎn),所使用的的 kubeadm 必須與管理該節(jié)點(diǎn)的 kubeadm 具有相同的 MINOR 版本或比后者新一個(gè) MINOR 版本。

?kubeadm upgrade? 的例子:

  • 用于創(chuàng)建或升級(jí)節(jié)點(diǎn)的 kubeadm 版本為 1.23。
  • 用于升級(jí)節(jié)點(diǎn)的 kubeadm 版本必須為 1.23 或 1.24。

局限性

集群彈性

此處創(chuàng)建的集群具有單個(gè)控制平面節(jié)點(diǎn),運(yùn)行單個(gè) etcd 數(shù)據(jù)庫(kù)。 這意味著如果控制平面節(jié)點(diǎn)發(fā)生故障,你的集群可能會(huì)丟失數(shù)據(jù)并且可能需要從頭開(kāi)始重新創(chuàng)建。

解決方法:

  • 定期備份 etcd。 kubeadm 配置的 etcd 數(shù)據(jù)目錄位于控制平面節(jié)點(diǎn)上的 ?/var/lib/etcd? 中。
  • 使用多個(gè)控制平面節(jié)點(diǎn)。你可以閱讀 可選的高可用性拓?fù)溥x擇集群拓?fù)涮峁┑?nbsp;高可用性。

平臺(tái)兼容性

kubeadm deb/rpm 軟件包和二進(jìn)制文件是為 amd64、arm (32-bit)、arm64、ppc64le 和 s390x 構(gòu)建的遵循多平臺(tái)提案。

從 v1.12 開(kāi)始還支持用于控制平面和附加組件的多平臺(tái)容器鏡像。

只有一些網(wǎng)絡(luò)提供商為所有平臺(tái)提供解決方案。請(qǐng)查閱上方的網(wǎng)絡(luò)提供商清單或每個(gè)提供商的文檔以確定提供商是否支持你選擇的平臺(tái)。

Note:要為:指定IPv6元組,必須將IPv6地址括在方括號(hào)中,例如:[fd00::101]:2073


分享標(biāo)題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes 使用kubeadm創(chuàng)建集群
URL分享:http://m.5511xx.com/article/dhpdijc.html