kubeadm 組態 (v1beta3)

總覽

套件 v1beta3 定義 kubeadm 組態檔案格式的 v1beta3 版本。此版本改進 v1beta2 格式,修正一些小問題並新增一些欄位。

v1beta2 以來的變更清單

  • 已移除已棄用的「ClusterConfiguration.useHyperKubeImage」欄位。Kubeadm 不再支援 hyperkube 映像檔。
  • 已移除「ClusterConfiguration.dns.type」欄位,因為 CoreDNS 是 kubeadm 唯一支援的 DNS 伺服器類型。
  • 在保存密鑰的欄位上包含「datapolicy」標籤。這會導致在使用 klog 列印 API 結構時省略欄位值。
  • 新增「InitConfiguration.skipPhases」、「JoinConfiguration.skipPhases」以允許在 kubeadm init/join 命令執行期間跳過階段清單。
  • 新增「InitConfiguration.nodeRegistration.imagePullPolicy」和「JoinConfiguration.nodeRegistration.imagePullPolicy」以允許在 kubeadm「init」和「join」期間指定映像檔提取原則。值必須是「Always」、「Never」或「IfNotPresent」之一。「IfNotPresent」是預設值,這是此新增功能之前的現有行為。
  • 新增「InitConfiguration.patches.directory」、「JoinConfiguration.patches.directory」以允許使用者組態從中取得 kubeadm 部署組件的修補程式的目錄。
  • 將 BootstrapToken* API 和相關公用程式移出「kubeadm」API 群組,移至新的群組「bootstraptoken」。kubeadm API 版本 v1beta3 不再包含 BootstrapToken* 結構。

從舊版 kubeadm 組態版本遷移

  • kubeadm v1.15.x 和更新版本可用於從 v1beta1 遷移到 v1beta2。
  • kubeadm v1.22.x 和更新版本不再支援 v1beta1 和更舊的 API,但可用於將 v1beta2 遷移到 v1beta3。
  • kubeadm v1.27.x 和更新版本不再支援 v1beta2 和更舊的 API,

基礎知識

組態 kubeadm 的慣用方式是傳遞具有 --config 選項的 YAML 組態檔案。kubeadm 組態檔案中定義的一些組態選項也可用作命令列旗標,但此方法僅支援最常見/簡單的使用案例。

kubeadm 組態檔案可以包含使用三個破折號 (---) 分隔的多個組態類型。

kubeadm 支援下列組態類型

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration

apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration

apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration

apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration

apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration

若要列印「init」和「join」動作的預設值,請使用下列命令

kubeadm config print init-defaults
kubeadm config print join-defaults

必須包含在組態檔案中的組態類型清單取決於您執行的動作 (initjoin) 以及您要使用的組態選項 (預設值或進階自訂)。

如果未提供某些組態類型,或僅部分提供,kubeadm 將使用預設值;kubeadm 提供的預設值也包括在需要時強制跨組件的值一致性 (例如,控制器管理員上的 --cluster-cidr 旗標和 kube-proxy 上的 clusterCIDR)。

使用者始終可以覆寫預設值,但與安全性相關的一小部分設定除外 (例如,在 API 伺服器上強制執行 authorization-mode Node 和 RBAC)。

如果使用者提供的組態類型不是您執行的動作預期的類型,kubeadm 將忽略這些類型並列印警告。

Kubeadm init 組態類型

使用 --config 選項執行 kubeadm init 時,可以使用下列組態類型:InitConfiguration、ClusterConfiguration、KubeProxyConfiguration、KubeletConfiguration,但 InitConfiguration 和 ClusterConfiguration 之間只能有一個是強制性的。

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
bootstrapTokens:
  ...
nodeRegistration:
  ...

InitConfiguration 類型應用於組態執行階段設定,在 kubeadm init 的情況下,執行階段設定是引導程式 Token 的組態以及所有特定於執行 kubeadm 之節點的設定,包括

  • NodeRegistration,其中包含與將新節點註冊到叢集相關的欄位;使用它來自訂節點名稱、要使用的 CRI Socket 或任何其他應僅套用於此節點的設定 (例如,節點 IP)。

  • LocalAPIEndpoint,表示要在此節點上部署的 API 伺服器實例的端點;使用它來自訂 API 伺服器公告位址,例如。

apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
networking:
  ...
etcd:
  ...
apiServer:
  extraArgs:
    ...
  extraVolumes:
    ...
...

ClusterConfiguration 類型應用於組態叢集範圍的設定,包括下列設定

  • networking,其中包含叢集網路拓撲的組態;使用它來自訂 Pod 子網路或服務子網路,例如。

  • etcd:使用它來自訂本機 etcd 或組態 API 伺服器以使用外部 etcd 叢集,例如。

  • kube-apiserver、kube-scheduler、kube-controller-manager 組態;使用它透過新增自訂設定或覆寫 kubeadm 預設設定來自訂控制平面組件。

apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
  ...

KubeProxyConfiguration 類型應用於變更傳遞至叢集中部署的 kube-proxy 實例的組態。如果未提供此物件或僅部分提供,kubeadm 會套用預設值。

請參閱 https://kubernetes.dev.org.tw/docs/reference/command-line-tools-reference/kube-proxy/ 或 https://pkg.go.dev/k8s.io/kube-proxy/config/v1alpha1#KubeProxyConfiguration 以取得 kube-proxy 官方文件。

apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
  ...

KubeletConfiguration 類型應用於變更將傳遞至叢集中部署的所有 kubelet 實例的組態。如果未提供此物件或僅部分提供,kubeadm 會套用預設值。

請參閱 https://kubernetes.dev.org.tw/docs/reference/command-line-tools-reference/kubelet/ 或 https://pkg.go.dev/k8s.io/kubelet/config/v1beta1#KubeletConfiguration 以取得 kubelet 官方文件。

以下是包含多個組態類型的單一 YAML 檔案的完整範例,用於 kubeadm init 執行期間。

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
bootstrapTokens:
  - token: "9a08jv.c0izixklcxtmnze7"
    description: "kubeadm bootstrap token"
    ttl: "24h"
  - token: "783bde.3f89s0fje9f38fhf"
    description: "another bootstrap token"
    usages:
      - authentication
      - signing
    groups:
      - system:bootstrappers:kubeadm:default-node-token
nodeRegistration:
  name: "ec2-10-100-0-1"
  criSocket: "/var/run/dockershim.sock"
  taints:
    - key: "kubeadmNode"
      value: "someValue"
      effect: "NoSchedule"
  kubeletExtraArgs:
    v: 4
  ignorePreflightErrors:
    - IsPrivilegedUser
  imagePullPolicy: "IfNotPresent"
localAPIEndpoint:
  advertiseAddress: "10.100.0.1"
  bindPort: 6443
certificateKey: "e6a2eb8581237ab72a4f494f30285ec12a9694d750b9785706a83bfcbbbd2204"
skipPhases:
  - addon/kube-proxy
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
etcd:
  # one of local or external
  local:
    imageRepository: "registry.k8s.io"
    imageTag: "3.2.24"
    dataDir: "/var/lib/etcd"
    extraArgs:
      listen-client-urls: "http://10.100.0.1:2379"
    serverCertSANs:
      -  "ec2-10-100-0-1.compute-1.amazonaws.com"
    peerCertSANs:
      - "10.100.0.1"
  # external:
    # endpoints:
    # - "10.100.0.1:2379"
    # - "10.100.0.2:2379"
    # caFile: "/etcd/kubernetes/pki/etcd/etcd-ca.crt"
    # certFile: "/etcd/kubernetes/pki/etcd/etcd.crt"
    # keyFile: "/etcd/kubernetes/pki/etcd/etcd.key"
networking:
  serviceSubnet: "10.96.0.0/16"
  podSubnet: "10.244.0.0/24"
  dnsDomain: "cluster.local"
kubernetesVersion: "v1.21.0"
controlPlaneEndpoint: "10.100.0.1:6443"
apiServer:
  extraArgs:
    authorization-mode: "Node,RBAC"
  extraVolumes:
    - name: "some-volume"
      hostPath: "/etc/some-path"
      mountPath: "/etc/some-pod-path"
      readOnly: false
      pathType: File
  certSANs:
    - "10.100.1.1"
    - "ec2-10-100-0-1.compute-1.amazonaws.com"
  timeoutForControlPlane: 4m0s
controllerManager:
  extraArgs:
    "node-cidr-mask-size": "20"
  extraVolumes:
    - name: "some-volume"
      hostPath: "/etc/some-path"
      mountPath: "/etc/some-pod-path"
      readOnly: false
      pathType: File
scheduler:
  extraArgs:
    bind-address: "10.100.0.1"
  extraVolumes:
    - name: "some-volume"
      hostPath: "/etc/some-path"
      mountPath: "/etc/some-pod-path"
      readOnly: false
      pathType: File
certificatesDir: "/etc/kubernetes/pki"
imageRepository: "registry.k8s.io"
clusterName: "example-cluster"
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# kubelet specific options here
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
# kube-proxy specific options here

Kubeadm join 組態類型

使用 --config 選項執行 kubeadm join 時,應提供 JoinConfiguration 類型。

apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
  ...

JoinConfiguration 類型應用於組態執行階段設定,在 kubeadm join 的情況下,執行階段設定是用於存取叢集資訊的探索方法以及所有特定於執行 kubeadm 之節點的設定,包括

  • nodeRegistration,其中包含與將新節點註冊到叢集相關的欄位;使用它來自訂節點名稱、要使用的 CRI Socket 或任何其他應僅套用於此節點的設定 (例如,節點 IP)。

  • apiEndpoint,表示最終要在此節點上部署的 API 伺服器實例的端點。

資源類型

BootstrapToken

出現在

BootstrapToken 描述一個引導程式 Token,儲存為叢集中的密鑰

欄位描述
token [必要]
BootstrapTokenString

token 用於在節點和控制平面之間建立雙向信任。用於加入叢集中的節點。

description
string

description 設定人類友善的訊息,說明此 Token 存在的原因及其用途,以便其他管理員可以知道其目的。

ttl
meta/v1.Duration

ttl 定義此 Token 的存留時間。預設為 24hexpiresttl 是互斥的。

到期時間
meta/v1.Time

expires 指定此權杖到期的時間戳記。預設會在執行階段根據 ttl 動態設定。expiresttl 是互斥的。

用途
[]string

usages 描述此權杖的使用方式。預設可用於建立雙向信任,但可以在此處變更。

群組
[]string

groups 指定當此權杖用於身分驗證時,將額外驗證為哪些群組

BootstrapTokenString

出現在

BootstrapTokenString 是一種格式為 abcdef.abcdef0123456789 的權杖,用於從加入節點的角度驗證 API 伺服器的實用性,以及作為 "kubeadm join" 啟動階段中節點的身分驗證方法。此權杖是且應該是短效期的。

欄位描述
- [必填]
string
未提供描述。
- [必填]
string
未提供描述。

ClusterConfiguration

ClusterConfiguration 包含 kubeadm 叢集的叢集範圍組態。

欄位描述
apiVersion
string
kubeadm.k8s.io/v1beta3
kind
string
ClusterConfiguration
etcd
Etcd

etcd 保存 etcd 的組態。

networking
網路

networking 保存叢集網路拓撲的組態。

kubernetesVersion
string

kubernetesVersion 是控制平面的目標版本。

controlPlaneEndpoint
string

controlPlaneEndpoint 為控制平面設定穩定的 IP 位址或 DNS 名稱。它可以是有效的 IP 位址或 RFC-1123 DNS 子網域,兩者皆可選擇性包含 TCP 連接埠。如果未指定 controlPlaneEndpoint,則會使用 advertiseAddress + bindPort;如果指定了 controlPlaneEndpoint 但沒有 TCP 連接埠,則會使用 bindPort。可能的使用方式如下

  • 在具有多個控制平面實例的叢集中,此欄位應指派給控制平面實例前端的外部負載平衡器的位址。
  • 在強制節點回收的環境中,controlPlaneEndpoint 可用於為控制平面指派穩定的 DNS。
apiServer
APIServer

apiServer 包含 API 伺服器的額外設定。

controllerManager
ControlPlaneComponent

controllerManager 包含控制器管理器的額外設定。

scheduler
ControlPlaneComponent

scheduler 包含排程器的額外設定。

dns
DNS

dns 定義叢集中安裝的 DNS 附加元件的選項。

certificatesDir
string

certificatesDir 指定儲存或尋找所有必要憑證的位置。

imageRepository
string

imageRepository 設定從哪個容器登錄檔提取映像檔。如果為空,預設會使用 registry.k8s.io。如果 Kubernetes 版本是 CI 建置版本(Kubernetes 版本以 ci/ 開頭),則 gcr.io/k8s-staging-ci-images 將預設用於控制平面元件和 kube-proxy,而 registry.k8s.io 將用於所有其他映像檔。

featureGates
map[string]bool

featureGates 包含使用者啟用的功能閘道。

clusterName
string

叢集名稱。

InitConfiguration

InitConfiguration 包含特定於 "kubeadm init" 的執行階段資訊元素清單。kubeadm init 專用資訊。這些欄位僅在首次執行 kubeadm init 時使用。之後,欄位中的資訊不會上傳到 kubeadm-config ConfigMap,該 ConfigMap 用於例如 kubeadm upgrade。這些欄位必須是 omitempty。

欄位描述
apiVersion
string
kubeadm.k8s.io/v1beta3
kind
string
InitConfiguration
bootstrapTokens
[]BootstrapToken

bootstrapTokenskubeadm init 時受到尊重,並描述要建立的一組啟動引導權杖。此資訊不會上傳到 kubeadm 叢集 configmap,部分原因是其敏感性質

nodeRegistration
NodeRegistrationOptions

nodeRegistration 保存與將新控制平面節點註冊到叢集相關的欄位。

localAPIEndpoint
APIEndpoint

localAPIEndpoint 代表部署在此控制平面節點上的 API 伺服器實例的端點。在 HA 設定中,這與 ClusterConfiguration.controlPlaneEndpoint 不同,因為 controlPlaneEndpoint 是叢集的全域端點,然後將請求負載平衡到每個個別的 API 伺服器。此組態物件可讓您自訂本機 API 伺服器宣告可存取的 IP/DNS 名稱和連接埠。預設情況下,kubeadm 嘗試自動偵測預設介面的 IP 並使用它,但如果該程序失敗,您可以於此處設定所需的值。

certificateKey
string

certificateKey 設定金鑰,憑證和金鑰在使用 uploadcerts init 階段上傳到叢集中的 Secret 之前,會使用此金鑰加密。憑證金鑰是一個十六進位編碼的字串,它是一個大小為 32 位元組的 AES 金鑰。

skipPhases
[]string

skipPhases 是在命令執行期間要略過的階段清單。階段清單可以使用 kubeadm init --help 命令取得。「--skip-phases」旗標優先於此欄位。

patches
Patches

patches 包含與在 kubeadm init 期間將修補程式套用至 kubeadm 部署的元件相關的選項。

JoinConfiguration

JoinConfiguration 包含描述特定節點的元素。

欄位描述
apiVersion
string
kubeadm.k8s.io/v1beta3
kind
string
JoinConfiguration
nodeRegistration
NodeRegistrationOptions

nodeRegistration 保存與將新控制平面節點註冊到叢集相關的欄位。

caCertPath
string

caCertPath 是 SSL 憑證授權單位的路徑,用於保護節點與控制平面之間的通訊。預設為 "/etc/kubernetes/pki/ca.crt"。

discovery [必填]
Discovery

discovery 指定 kubelet 在 TLS 啟動引導程序期間使用的選項。

controlPlane
JoinControlPlane

controlPlane 定義要部署在加入節點上的額外控制平面實例。如果為 nil,則不會部署額外的控制平面實例。

skipPhases
[]string

skipPhases 是在命令執行期間要略過的階段清單。階段清單可以使用 kubeadm join --help 命令取得。--skip-phases 旗標優先於此欄位。

patches
Patches

patches 包含與在 kubeadm join 期間將修補程式套用至 kubeadm 部署的元件相關的選項。

APIEndpoint

出現在

APIEndpoint 結構包含部署在節點上的 API 伺服器實例的元素。

欄位描述
advertiseAddress
string

advertiseAddress 設定 API 伺服器要宣告的 IP 位址。

bindPort
int32

bindPort 設定 API 伺服器要繫結的安全連接埠。預設為 6443。

APIServer

出現在

APIServer 保存叢集中 API 伺服器部署所需的設定

欄位描述
ControlPlaneComponent [必填]
ControlPlaneComponent
(ControlPlaneComponent 的成員嵌入到此類型中。) 未提供描述。
certSANs
[]string

certSANs 為 API 伺服器簽署憑證設定額外的主體別名 (SAN)。

timeoutForControlPlane
meta/v1.Duration

timeoutForControlPlane 控制我們等待 API 伺服器出現的逾時時間。

BootstrapTokenDiscovery

出現在

BootstrapTokenDiscovery 用於設定基於啟動引導權杖的探索選項。

欄位描述
token [必要]
string

token 是用於驗證從控制平面擷取的叢集資訊的權杖。

apiServerEndpoint
string

apiServerEndpoint 是將從中擷取資訊的 API 伺服器的 IP 或網域名稱。

caCertHashes
[]string

caCertHashes 指定一組公鑰釘選,以便在使用基於權杖的探索時進行驗證。在探索期間找到的根 CA 必須與這些值之一相符。指定空集合會停用根 CA 釘選,這可能不安全。每個雜湊都指定為 <type>:<value>,其中目前唯一支援的類型是 "sha256"。這是 DER 編碼 ASN.1 中主體公鑰資訊 (SPKI) 物件的十六進位編碼 SHA-256 雜湊。這些雜湊可以使用例如 OpenSSL 計算。

unsafeSkipCAVerification
bool

unsafeSkipCAVerification 允許基於權杖的探索,而無需透過 caCertHashes 進行 CA 驗證。這可能會削弱 kubeadm 的安全性,因為其他節點可以模擬控制平面。

ControlPlaneComponent

出現在

ControlPlaneComponent 保存叢集控制平面元件的通用設定

欄位描述
extraArgs
map[string]string

extraArgs 是一組額外的旗標,要傳遞給控制平面元件。此映射中的金鑰是命令列上顯示的旗標名稱,但不帶前導破折號。

extraVolumes
[]HostPathMount

extraVolumes 是一組額外的主機磁碟區,已掛載到控制平面元件。

DNS

出現在

DNS 定義應在叢集中使用的 DNS 附加元件

欄位描述
ImageMeta [必填]
ImageMeta
(ImageMeta 的成員嵌入到此類型中。)

imageMeta 允許自訂用於 DNS 元件的映像檔。

Discovery

出現在

Discovery 指定 kubelet 在 TLS 啟動引導程序期間使用的選項。

欄位描述
bootstrapToken
BootstrapTokenDiscovery

bootstrapToken 用於設定基於啟動引導權杖的探索選項。bootstrapTokenfile 是互斥的。

file
FileDiscovery

file 用於指定檔案或 URL 到 kubeconfig 檔案,從該檔案載入叢集資訊。bootstrapTokenfile 是互斥的。

tlsBootstrapToken
string

tlsBootstrapToken 是用於 TLS 啟動引導的權杖。如果設定了 bootstrapToken,則此欄位預設為 .bootstrapToken.token,但可以覆寫。如果設定了 file,則如果 KubeConfigFile 未包含任何其他身分驗證資訊,則必須設定此欄位

timeout
meta/v1.Duration

timeout 修改探索逾時時間。

Etcd

出現在

Etcd 包含描述 Etcd 組態的元素。

欄位描述
local
LocalEtcd

local 為組態本機 etcd 實例提供組態旋鈕。localexternal 是互斥的。

external
ExternalEtcd

external 描述如何連接到外部 etcd 叢集。localexternal 是互斥的。

ExternalEtcd

出現在

ExternalEtcd 描述外部 etcd 叢集。Kubeadm 不知道憑證檔案的存放位置,且必須提供這些檔案。

欄位描述
endpoints [必填]
[]string

endpoints 包含 etcd 成員的清單。

caFile [必填]
string

caFile 是用於保護 etcd 通訊的 SSL 憑證授權單位 (CA) 檔案。如果使用 TLS 連線,則為必要項目。

certFile [必填]
string

certFile 是用於保護 etcd 通訊的 SSL 憑證檔案。如果使用 TLS 連線,則為必要項目。

keyFile [必填]
string

keyFile 是用於保護 etcd 通訊的 SSL 金鑰檔案。如果使用 TLS 連線,則為必要項目。

FileDiscovery

出現在

FileDiscovery 用於指定檔案或 URL 到 kubeconfig 檔案,從該檔案載入叢集資訊。

欄位描述
kubeConfigPath [必填]
string

kubeConfigPath 用於指定 kubeconfig 檔案的實際檔案路徑或 URL,從該檔案載入叢集資訊。

HostPathMount

出現在

HostPathMount 包含描述從主機掛載的磁碟區的元素。

欄位描述
name [必填]
string

name 是 Pod 範本內磁碟區的名稱。

hostPath [必填]
string

hostPath 是主機中將掛載在 Pod 內的路徑。

mountPath [必填]
string

mountPath 是 Pod 內部將掛載 hostPath 的路徑。

readOnly
bool

readOnly 控制對磁碟區的寫入存取權。

pathType
core/v1.HostPathType

pathTypehostPath 的類型。

ImageMeta

出現在

ImageMeta 允許自訂用於非源自 Kubernetes/Kubernetes 發布程序的元件的映像檔

欄位描述
imageRepository
string

imageRepository 設定從哪個容器登錄檔提取映像檔。如果未設定,則會改為使用 ClusterConfiguration 中定義的 imageRepository

imageTag
string

imageTag 允許為映像檔指定標籤。如果設定此值,kubeadm 在升級期間不會自動變更上述元件的版本。

JoinControlPlane

出現在

JoinControlPlane 包含描述要部署在加入節點上的額外控制平面實例的元素。

欄位描述
localAPIEndpoint
APIEndpoint

localAPIEndpoint 代表要部署在此節點上的 API 伺服器實例的端點。

certificateKey
string

certificateKey 是用於解密憑證的金鑰,憑證在從密鑰下載後,會在新控制平面節點加入時使用此金鑰。對應的加密金鑰位於 InitConfiguration 中。憑證金鑰是一個十六進位編碼的字串,它是一個大小為 32 位元組的 AES 金鑰。

LocalEtcd

出現在

LocalEtcd 描述 kubeadm 應在本機執行 etcd 叢集。

欄位描述
ImageMeta [必填]
ImageMeta
(ImageMeta 的成員嵌入到此類型中。)

ImageMeta 允許自訂用於 etcd 的容器。

dataDir [必填]
string

dataDir 是 etcd 將放置其資料的目錄。預設為 "/var/lib/etcd"。

extraArgs
map[string]string

extraArgs 是在靜態 Pod 內執行時提供給 etcd 二進位檔的額外引數。此映射中的金鑰是命令列上顯示的旗標名稱,但不帶前導破折號。

serverCertSANs
[]string

serverCertSANs 為 etcd 伺服器簽署憑證設定額外的主體別名 (SAN)。

peerCertSANs
[]string

peerCertSANs 為 etcd 對等點簽署憑證設定額外的主體別名 (SAN)。

網路

出現在

Networking 包含描述叢集網路組態的元素。

欄位描述
serviceSubnet
string

serviceSubnet 是 Kubernetes 服務使用的子網路。預設為 "10.96.0.0/12"。

podSubnet
string

podSubnet 是 Pod 使用的子網路。

dnsDomain
string

dnsDomain 是 Kubernetes 服務使用的 DNS 網域。預設為 "cluster.local"。

NodeRegistrationOptions

出現在

NodeRegistrationOptions 保存與將新控制平面或節點註冊到叢集相關的欄位,無論是透過 kubeadm initkubeadm join

欄位描述
name
string

name 是將在此 kubeadm initkubeadm join 作業中建立的 Node API 物件的 .metadata.name 欄位。此欄位也用於 kubelet 對 API 伺服器的用戶端憑證的 CommonName 欄位中。如果未提供,則預設為主機名稱。

criSocket
string

criSocket 用於檢索容器執行階段資訊。此資訊將註解到 Node API 物件,以便稍後重複使用。

taints [必填]
[]core/v1.Taint

taints 指定應使用哪些污點註冊 Node API 物件。如果未設定此欄位,即為 nil,則會預設為控制平面節點的控制平面污點。如果您不想要污損您的控制平面節點,請將此欄位設定為空清單,即 YAML 檔案中的 taints: []。此欄位僅用於節點註冊。

kubeletExtraArgs
map[string]string

kubeletExtraArgs 將額外引數傳遞給 kubelet。此處的引數會透過 kubeadm 在執行階段為 kubelet 寫入的環境檔案傳遞到 kubelet 命令列以供來源使用。這會覆寫 kubelet-config ConfigMap 中的通用基礎層級組態。在剖析時,旗標具有較高的優先順序。這些值是本機的,且特定於 kubeadm 正在執行的節點。此映射中的金鑰是命令列上顯示的旗標名稱,但不帶前導破折號。

ignorePreflightErrors
[]string

ignorePreflightErrors 提供在註冊目前節點時要忽略的預檢錯誤清單,例如 IsPrevilegedUser,Swap。值 all 會忽略來自所有檢查的錯誤。

imagePullPolicy
core/v1.PullPolicy

imagePullPolicy 指定 kubeadm "init" 和 "join" 作業期間映像檔提取的策略。此欄位的值必須是 "Always"、"IfNotPresent" 或 "Never" 之一。如果未設定此欄位,kubeadm 將預設為 "IfNotPresent",或在主機上不存在時提取必要的映像檔。

Patches

出現在

Patches 包含與將修補程式套用至 kubeadm 部署的元件相關的選項。

欄位描述
directory
string

directory 是目錄的路徑,該目錄包含名為 "target[suffix][+patchtype].extension" 的檔案。例如,"kube-apiserver0+merge.yaml" 或僅 "etcd.json"。"target" 可以是 "kube-apiserver"、"kube-controller-manager"、"kube-scheduler"、"etcd" 之一。"patchtype" 可以是 "strategic" "merge" 或 "json" 之一,它們與 kubectl 支援的修補程式格式相符。預設 "patchtype" 為 "strategic"。"extension" 必須是 "json" 或 "yaml"。"suffix" 是一個可選字串,可用於判斷哪些修補程式首先按字母數字順序套用。

此頁面為自動產生。

如果您計劃回報此頁面的問題,請在您的問題描述中提及該頁面為自動產生。修正可能需要在 Kubernetes 專案中的其他位置進行。

上次修改時間:2024 年 12 月 12 日下午 5:37 PST:Update config API for v1.32 (2914668152)