本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
公告
本主題涵蓋 Eksctl 新功能的過去公告。
受管節點群組預設
從 eksctl v0.58.0eksctl create cluster和 指定ClusterConfig檔案時建立受管節點群組eksctl create nodegroup。若要建立自我管理節點群組,請傳遞 --managed=false。如果使用受管節點群組中不支援的功能,例如 Windows 節點群組,這可能會中斷未使用組態檔案的指令碼。若要修正此問題,請傳遞 --managed=false,或使用建立自我管理節點群組的 nodeGroups 欄位,在ClusterConfig檔案中指定節點群組組態。
自訂 AMIs節點群組引導覆寫
此變更已在問題 Breaking: overrideBootstrapCommand 中宣布...
我們仍提供協助程式!遷移希望不會那麼痛苦。 eksctl仍然提供指令碼,當來源時, 會匯出幾個有用的環境屬性和設定。此指令碼位於此處
下列環境屬性將供您使用:
API_SERVER_URL B64_CLUSTER_CA INSTANCE_ID INSTANCE_LIFECYCLE CLUSTER_DNS NODE_TAINTS MAX_PODS NODE_LABELS CLUSTER_NAME CONTAINER_RUNTIME # default is docker KUBELET_EXTRA_ARGS # for details, look at the script
覆寫時需要使用的最小值,因此 eksctl 不會失敗, 是標籤! eksctl依賴一組特定的標籤在節點上,以便找到它們。定義覆寫時,請提供此裸機最小覆寫命令:
overrideBootstrapCommand: | #!/bin/bash source /var/lib/cloud/scripts/eksctl/bootstrap.helper.sh # Note "--node-labels=${NODE_LABELS}" needs the above helper sourced to work, otherwise will have to be defined manually. /etc/eks/bootstrap.sh ${CLUSTER_NAME} --container-runtime containerd --kubelet-extra-args "--node-labels=${NODE_LABELS}"
對於沒有傳出網際網路存取的節點群組,您將需要提供 --apiserver-endpoint和 --b64-cluster-ca至引導指令碼,如下所示:
overrideBootstrapCommand: | #!/bin/bash source /var/lib/cloud/scripts/eksctl/bootstrap.helper.sh # Note "--node-labels=${NODE_LABELS}" needs the above helper sourced to work, otherwise will have to be defined manually. /etc/eks/bootstrap.sh ${CLUSTER_NAME} --container-runtime containerd --kubelet-extra-args "--node-labels=${NODE_LABELS}" \ --apiserver-endpoint ${API_SERVER_URL} --b64-cluster-ca ${B64_CLUSTER_CA}
請注意 `--node-labels` 設定。如果未定義,節點將加入叢集,但在等待節點成為 時,最終eksctl會在最後一個步驟逾時Ready。它正在對標籤為 的節點進行 Kubernetes 查詢alpha.eksctl.io/nodegroup-name=<cluster-name>。這僅適用於未受管節點群組。對於 受管,它使用不同的標籤。
如果完全可以切換到受管節點群組以避免此額外負荷,那麼現在就要這麼做了。讓所有覆寫變得更容易。