公告 - Eksctl 使用者指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

公告

本主題涵蓋 Eksctl 新功能的過去公告。

受管節點群組預設

eksctl v0.58.0 開始,eksctl 預設會在未為 eksctl create cluster和 指定ClusterConfig檔案時建立受管節點群組eksctl create nodegroup。若要建立自我管理節點群組,請傳遞 --managed=false。如果使用受管節點群組中不支援的功能,例如 Windows 節點群組,這可能會中斷未使用組態檔案的指令碼。若要修正此問題,請傳遞 --managed=false,或使用建立自我管理節點群組的 nodeGroups 欄位,在ClusterConfig檔案中指定節點群組組態。

自訂 AMIs節點群組引導覆寫

此變更已在問題 Breaking: overrideBootstrapCommand 中宣布...。現在,它已經傳入 PR。請仔細閱讀附加的問題,說明為什麼我們決定不使用引導指令碼或部分引導指令碼來支援自訂 AMIs。

我們仍提供協助程式!遷移希望不會那麼痛苦。 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>。這僅適用於未受管節點群組。對於 受管,它使用不同的標籤。

如果完全可以切換到受管節點群組以避免此額外負荷,那麼現在就要這麼做了。讓所有覆寫變得更容易。