協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用欄位管理自訂 Amazon EKS 附加元件設定
使用標準的最佳實務組態將 Amazon EKS 附加元件安裝到您的叢集。如需將 Amazon EKS 附加元件新增至叢集的詳細資訊,請參閱 使用E AWSAPIs KS 附加元件安裝/更新群集元件。
您可能想要自訂 Amazon EKS 附加元件的組態,以啟用進階功能。Amazon EKS 使用 Kubernetes 伺服器端套用功能來啟用 Amazon EKS 管理附加元件,而不會覆寫非由 Amazon EKS 管理的設定組態。如需詳細資訊,請參閱 Kubernetes 文件中的 伺服器端套用kube-controller-manager
),沒有任何問題。
重要
修改 Amazon EKS 管理的欄位會阻止 Amazon EKS 管理附加元件,並且可能會導致在更新附加元件時覆寫您的變更。
檢視欄位管理狀態
您可以使用 kubectl
,查看哪些欄位由 Amazon EKS 管理,適用於任何 Amazon EKS 附加元件。
查看欄位的管理狀態
-
判定要檢查的附加元件。若要查看部署到叢集的所有
deployments
和DaemonSets
,請參閱 檢視 Kubernetes 資源。 -
執行下列命令以檢視附加元件的受管欄位:
kubectl get
type
/add-on-name
-nadd-on-namespace
-o yaml例如,您可以使用下列命令查看 CoreDNS 附加元件的受管欄位。
kubectl get deployment/coredns -n kube-system -o yaml
欄位管理會列在傳回輸出的下一區段中。
[...] managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: [...]
注意
如果您在輸出中看不到
managedFields
,請新增
至該命令並再次執行。您正在使用的--show-managed-fields
kubectl
版本會決定是否預設傳回受管欄位。
了解 Kubernetes API 中的欄位管理語法
檢視 Kubernetes 物件的詳細資訊時,輸出中會傳回受管和未受管的欄位。受管欄位可以是以下類型之一:
-
全受管:欄位的所有索引鍵均由 Amazon EKS 管理。修改任何值皆會導致衝突。
-
部分受管:欄位的某些索引鍵由 Amazon EKS 管理。只有對明確由 Amazon EKS 管理的索引鍵進行修改才會造成衝突。
這兩種類型的欄位均使用 manager: eks
標記。
每個索引鍵可以是 .
表示欄位本身,其一律會映射到一個空集,或映射至表示子欄位或項目的字串。欄位管理的輸出包含下列類型的宣告:
-
f:
,其中name
是清單中欄位的名稱。name
-
k:
,其中keys
是清單項目欄位的映射。keys
-
v:
,其中value
是清單項目的精準 JSON 格式化值。value
-
i:
,其中index
是清單中項目的位置。index
CoreDNS 附加元件的下列輸出部分會說明先前的宣告:
-
全受管欄位:如果受管欄位具有指定的
f:
(欄位),但沒有k:
(索引鍵),則會管理整個欄位。修改此欄位中的任何值皆會導致衝突。在下列輸出中,您可以看到名為
coredns
的容器由eks
管理。args
、image
及imagePullPolicy
子欄位也由eks
管理。修改這些欄位中的任何值皆會導致衝突。[...] f:containers: k:{"name":"coredns"}: .: {} f:args: {} f:image: {} f:imagePullPolicy: {} [...] manager: eks [...]
-
部分受管欄位:如果受管索引鍵具有指定的值,則會針對該欄位管理宣告的索引鍵。修改指定的索引鍵會導致衝突。
在下列輸出中,您可以看到
eks
管理config-volume
和使用name
索引鍵設定的tmp
磁碟區。[...] f:volumes: k:{"name":"config-volume"}: .: {} f:configMap: f:items: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:name: {} [...] manager: eks [...]
-
將索引鍵新增至部分受管欄位:如果只管理特定鍵值,您可以安全地將其他索引鍵 (例如引數) 新增至欄位,而不會造成衝突。如果新增其他索引鍵,請確定未先對欄位進行管理。新增或修改受管的任何值會導致衝突。
在下列輸出中,您可以看到
name
索引鍵和name
欄位皆為受管項目。新增或修改任何容器名稱會導致與此受管索引鍵發生衝突。[...] f:containers: k:{"name":"coredns"}: [...] f:name: {} [...] manager: eks [...]