W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本頁(yè)面介紹了如何自定義 kubeadm 部署的組件。 你可以使用 ?ClusterConfiguration
?結(jié)構(gòu)中定義的參數(shù),或者在每個(gè)節(jié)點(diǎn)上應(yīng)用補(bǔ)丁來(lái)定制控制平面組件。 你可以使用 ?KubeletConfiguration
?和 ?KubeProxyConfiguration
?結(jié)構(gòu)分別定制 kubelet 和 kube-proxy 組件。
所有這些選項(xiàng)都可以通過(guò) kubeadm 配置 API 實(shí)現(xiàn)。
Note:
kubeadm 目前不支持對(duì) CoreDNS 部署進(jìn)行定制。 你必須手動(dòng)更新 ?kube-system/coredns
? ConfigMap 并在更新后重新創(chuàng)建 CoreDNS Pods。 或者,你可以跳過(guò)默認(rèn)的 CoreDNS 部署并部署你自己的 CoreDNS 變種。
kubeadm ?ClusterConfiguration
?對(duì)象為用戶提供了一種方法, 用以覆蓋傳遞給控制平面組件(如 APIServer、ControllerManager、Scheduler 和 Etcd)的默認(rèn)參數(shù)。 各組件配置使用如下字段定義:
apiServer
?controllerManager
?scheduler
?etcd
?這些結(jié)構(gòu)包含一個(gè)通用的 ?extraArgs
?字段,該字段由 ?key: value
? 組成。 要覆蓋控制平面組件的參數(shù):
extraArgs
?添加到配置中。
extraArgs
?添加要覆蓋的參數(shù)值。
--config <YOUR CONFIG YAML>
? 運(yùn)行 ?kubeadm init
?。Note:
你可以通過(guò)運(yùn)行 ?kubeadm config print init-defaults
? 并將輸出保存到你所選的文件中, 以默認(rèn)值形式生成 ?ClusterConfiguration
?對(duì)象。
Note:
?ClusterConfiguration
?對(duì)象目前在 kubeadm 集群中是全局的。 這意味著你添加的任何標(biāo)志都將應(yīng)用于同一組件在不同節(jié)點(diǎn)上的所有實(shí)例。 要在不同節(jié)點(diǎn)上為每個(gè)組件應(yīng)用單獨(dú)的配置,你可以使用補(bǔ)丁。
Note:
當(dāng)前不支持重復(fù)的參數(shù)(keys)或多次傳遞相同的參數(shù) ?--foo
?。 要解決此問(wèn)題,你必須使用補(bǔ)丁。
使用示例:
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
apiServer:
extraArgs:
anonymous-auth: "false"
enable-admission-plugins: AlwaysPullImages,DefaultStorageClass
audit-log-path: /home/johndoe/audit.log
使用示例:
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
controllerManager:
extraArgs:
cluster-signing-key-file: /home/johndoe/keys/ca.key
deployment-controller-sync-period: "50"
使用示例:
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
scheduler:
extraArgs:
config: /etc/kubernetes/scheduler-config.yaml
extraVolumes:
- name: schedulerconfig
hostPath: /home/johndoe/schedconfig.yaml
mountPath: /etc/kubernetes/scheduler-config.yaml
readOnly: true
pathType: "File"
使用示例:
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
etcd:
local:
extraArgs:
election-timeout: 1000
FEATURE STATE: Kubernetes v1.22 [beta]
Kubeadm 允許將包含補(bǔ)丁文件的目錄傳遞給各個(gè)節(jié)點(diǎn)上的 ?InitConfiguration
?和 ?JoinConfiguration
?。 這些補(bǔ)丁可被用作控制平面組件清單寫入磁盤之前的最后一個(gè)自定義步驟。
可以使用 ?--config <你的 YAML 格式控制文件>
? 將配置文件傳遞給 ?kubeadm init
?:
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
patches:
directory: /home/user/somedir
Note:
對(duì)于 ?kubeadm init
?,你可以傳遞一個(gè)包含 ?ClusterConfiguration
?和 ?InitConfiguration
?的文件,以 ?---
? 分隔。
你可以使用 ?--config <你的 YAML 格式配置文件>
? 將配置文件傳遞給 ?kubeadm join
?:
apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
patches:
directory: /home/user/somedir
補(bǔ)丁目錄必須包含名為 ?target[suffix][+patchtype].extension
? 的文件。 例如,?kube-apiserver0+merge.yaml
? 或只是 ?etcd.json
?。
target
?可以是 ?kube-apiserver
?、?kube-controller-manager
?、?kube-scheduler
? 和 ?etcd
?之一。
patchtype
?可以是 ?strategy
?、?merge
?或 ?json
?之一,并且這些必須匹配 kubectl 支持 的補(bǔ)丁格式。 默認(rèn)補(bǔ)丁類型是 ?strategic
?的。
extension
?必須是 ?json
?或 ?yaml
?。
suffix
?是一個(gè)可選字符串,可用于確定首先按字母數(shù)字應(yīng)用哪些補(bǔ)丁。Note:
如果你使用 ?kubeadm upgrade
? 升級(jí) kubeadm 節(jié)點(diǎn),你必須再次提供相同的補(bǔ)丁,以便在升級(jí)后保留自定義配置。 為此,你可以使用 ?--patches
? 參數(shù),該參數(shù)必須指向同一目錄。 ?kubeadm upgrade
? 目前不支持用于相同目的的 API 結(jié)構(gòu)配置。
要自定義 kubelet,你可以在同一配置文件中的 ?ClusterConfiguration
?或 ?InitConfiguration
?之外添加一個(gè) ?KubeletConfiguration
?,用 ?---
? 分隔。 然后可以將此文件傳遞給 ?kubeadm init
?。
Note:
kubeadm 將相同的 ?KubeletConfiguration
?配置應(yīng)用于集群中的所有節(jié)點(diǎn)。 要應(yīng)用節(jié)點(diǎn)特定設(shè)置,你可以使用 ?kubelet
?參數(shù)進(jìn)行覆蓋,方法是將它們傳遞到 ?InitConfiguration
?和 ?JoinConfiguration
?支持的 ?nodeRegistration.kubeletExtraArgs
? 字段中。
要自定義 kube-proxy,你可以在 ?ClusterConfiguration
?或 ?InitConfiguration
?之外添加一個(gè) 由 ?---
? 分隔的 ?KubeProxyConfiguration
?, 傳遞給 ?kubeadm init
?。
Note:
kubeadm 將 kube-proxy 部署為 DaemonSet, 這意味著 ?KubeProxyConfiguration
?將應(yīng)用于集群中的所有 kube-proxy 實(shí)例。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: