協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
確定您可以為 Amazon EKS 附加元件自訂的欄位
Amazon EKS 附加元件會使用標準的最佳實務組態安裝到您的叢集。如需將 Amazon EKS 附加元件新增至叢集的詳細資訊,請參閱Amazon EKS 插件。
您可能需要自訂 Amazon EKS 附加元件的組態以啟用進階功能。Amazon EKS 使用Kubernetes伺服器端套用功能來啟用 Amazon 管理附加元件,EKS而不會覆寫非 Amazon EKS 管理設定的組態。如需詳細資訊,請參閱 Kubernetes 文件中的 伺服器端套用kube-controller-manager
,毫無問題。
重要
修改 Amazon 管理的欄位可EKS防EKS止 Amazon 管理附加元件,並可能導致在附加元件更新時覆寫您的變更。
欄位管理語法
檢視 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 [...]
程序
您可以使用kubectl
來查看 Amazon EKS 針對任何 Amazon EKS 附加元件管理哪些欄位。
您可以修改所有不受 Amazon EKS 管理的欄位或其他Kubernetes控制平面程序,例如kube-controller-manager
,毫無問題。
-
判定要檢查的附加元件。若要查看部署到叢集的所有
deployments
和DaemonSets
,請參閱 檢視中的Kubernetes資源 AWS Management Console。 -
執行下列命令以檢視附加元件的受管欄位:
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
版本會決定是否預設傳回受管欄位。
後續步驟
為您的附加元件自訂不屬 AWS 於您的欄位。