kubeadm 配置 (v1beta3)

概述

Package v1beta3 定义了 kubeadm 配置文件的 v1beta3 版本格式。此版本通过修复一些小问题和增加一些新字段改进了 v1beta2 格式。

自 v1beta2 以来的变更列表

  • 已弃用的 "ClusterConfiguration.useHyperKubeImage" 字段已被移除。Kubeadm 不再支持 hyperkube 镜像。
  • 已移除 "ClusterConfiguration.dns.type" 字段,因为 CoreDNS 是 kubeadm 唯一支持的 DNS 服务器类型。
  • 在保存 Secrets 的字段上包含 "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 Group 移至新的 Group "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 配置文件中定义的一些配置选项也可以通过命令行 Flag 提供,但此方法仅支持最常用/简单的用例。

一个 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 Flag 和 kube-proxy 上的 clusterCIDR)。

用户始终可以覆盖默认值,唯一例外是与安全性相关的一小部分设置(例如,强制在 api server 上使用 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 server 实例的端点;使用它来自定义 API server 通告地址等。

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

ClusterConfiguration 类型应用于配置集群范围的设置,包括以下设置

  • networking:包含集群网络拓扑的配置;使用它来自定义 Pod 子网或服务子网等。

  • etcd:使用它来自定义本地 etcd 或配置 API server 以使用外部 etcd 集群。

  • kube-apiserver、kube-scheduler、kube-controller-manager 配置;使用它通过添加自定义设置或覆盖 kubeadm 默认设置来定制控制平面组件。

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

KubeProxyConfiguration 类型应用于更改传递给部署在集群中的 kube-proxy 实例的配置。如果未提供此对象或仅提供了部分,则 kubeadm 应用默认值。

请参阅 https://kubernetes.ac.cn/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.ac.cn/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 server 实例的端点。

资源类型

BootstrapToken

出现在

BootstrapToken 描述一个引导 Token,存储在集群中的一个 Secret 中

字段描述
token [必需]
BootstrapTokenString

token 用于在节点和控制平面之间建立双向信任。用于节点加入集群。

description
string

description 设置一个对人类友好的消息,说明此 Token 存在的原因及其用途,以便其他管理员可以了解其目的。

ttl
meta/v1.Duration

ttl 定义了此 Token 的生存时间。默认为 24hexpiresttl 互斥。

expires
meta/v1.Time

expires 指定此 Token 过期的时间戳。默认在运行时根据 ttl 动态设置。expiresttl 互斥。

usages
[]string

usages 描述了此 Token 可以使用的各种方式。默认情况下可用于建立双向信任,但可以在此处更改。

groups
[]string

groups 指定此 Token 在用于身份验证时将认证为的额外 Group

BootstrapTokenString

出现在

BootstrapTokenString 是一种格式为 abcdef.abcdef0123456789 的 Token,用于从加入节点的角度验证 API server 的可用性,并作为节点在 "kubeadm join" 引导阶段的身份验证方法。此 Token 是且应为短期有效。

字段描述
- [必需]
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 server 的额外设置。

controllerManager
ControlPlaneComponent

controllerManager 包含控制器管理器的额外设置。

scheduler
ControlPlaneComponent

scheduler 包含调度器的额外设置。

dns
DNS

dns 定义集群中安装的 DNS 插件的选项。

certificatesDir
string

certificatesDir 指定存储或查找所有必需证书的位置。

imageRepository
string

imageRepository 设置拉取镜像的容器镜像仓库。如果为空,默认将使用 registry.k8s.io。如果 kubernetes 版本是 CI 构建(kubernetes 版本以 ci/ 开头),控制平面组件和 kube-proxy 将默认使用 gcr.io/k8s-staging-ci-images,而其他所有镜像将使用 registry.k8s.io

featureGates
map[string]bool

featureGates 包含用户启用的特性门控。

clusterName
string

集群名称。

InitConfiguration

InitConfiguration 包含特定于 "kubeadm init" 运行时的信息列表。kubeadm init 运行时信息。这些字段仅在首次运行 kubeadm init 时使用。之后,字段中的信息不会上传到供 kubeadm upgrade 使用的 kubeadm-config ConfigMap。这些字段必须是 omitempty。

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

bootstrapTokenskubeadm init 时生效,描述要创建的一组引导 Token。此信息不会上传到 kubeadm 集群 configmap,部分原因在于其敏感性质。

nodeRegistration
NodeRegistrationOptions

nodeRegistration 包含与将新控制平面节点注册到集群相关的字段。

localAPIEndpoint
APIEndpoint

localAPIEndpoint 表示部署在此控制平面节点上的 API server 实例的端点。在高可用(HA)设置中,它与 ClusterConfiguration.controlPlaneEndpoint 不同,因为 controlPlaneEndpoint 是集群的全局端点,用于将请求负载均衡到每个独立的 API server。此配置对象允许你自定义本地 API server 通告可访问的 IP/DNS 名称和端口。默认情况下,kubeadm 尝试自动检测默认接口的 IP 并使用它,但如果此过程失败,你可以在此处设置所需的值。

certificateKey
string

certificateKey 设置用于加密证书和密钥的密钥,以便在 uploadcerts init 阶段将其上传到集群中的 Secret。此证书密钥是一个十六进制编码的字符串,是一个大小为 32 字节的 AES 密钥。

skipPhases
[]string

skipPhases 是在命令执行期间要跳过的阶段列表。阶段列表可通过 kubeadm init --help 命令获取。Flag "--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 命令获取。Flag --skip-phases 优先于此字段。

patches
Patches

patches 包含与在 kubeadm join 期间将补丁应用于 kubeadm 部署的组件相关的选项。

APIEndpoint

出现在

APIEndpoint struct 包含部署在节点上的 API server 实例的元素。

字段描述
advertiseAddress
string

advertiseAddress 设置 API server 通告的 IP 地址。

bindPort
int32

bindPort 设置 API server 绑定的安全端口。默认为 6443。

APIServer

出现在

APIServer 包含集群中 API server 部署所需的设置

字段描述
ControlPlaneComponent [必需]
ControlPlaneComponent
(ControlPlaneComponent 的成员嵌入到此类型中。) 未提供描述。
certSANs
[]string

certSANs 为 API server 签名证书设置额外的 Subject Alternative Names (SANs)。

timeoutForControlPlane
meta/v1.Duration

timeoutForControlPlane 控制等待 API server 出现的超时时间。

BootstrapTokenDiscovery

出现在

BootstrapTokenDiscovery 用于设置基于引导 Token 的发现选项。

字段描述
token [必需]
string

token 是用于验证从控制平面获取的集群信息的 Token。

apiServerEndpoint
string

apiServerEndpoint 是从中获取信息的 API server 的 IP 或域名。

caCertHashes
[]string

caCertHashes 指定在使用基于 Token 的发现时要验证的一组公钥 Pin。在发现期间找到的根 CA 必须与这些值之一匹配。指定空集会禁用根 CA Pinning,这可能不安全。每个哈希指定为 <type>:<value>,其中目前唯一支持的类型是 "sha256"。这是一个十六进制编码的 SHA-256 哈希,计算自 DER 编码的 ASN.1 中 Subject Public Key Info (SPKI) 对象。可以使用例如 OpenSSL 计算这些哈希。

unsafeSkipCAVerification
bool

unsafeSkipCAVerification 允许基于 Token 的发现不进行 CA 验证,即不通过 caCertHashes 进行验证。这会削弱 kubeadm 的安全性,因为其他节点可能会模拟控制平面。

ControlPlaneComponent

出现在

ControlPlaneComponent 包含集群控制平面组件通用的设置

字段描述
extraArgs
map[string]string

extraArgs 是传递给控制平面组件的额外 Flag 集合。此映射中的 Key 是命令命令行上显示的 Flag 名称,但不包含前导破折号 (-)。

extraVolumes
[]HostPathMount

extraVolumes 是挂载到控制平面组件的额外主机卷集合。

DNS

出现在

DNS 定义了集群中应使用的 DNS 插件

字段描述
ImageMeta [必需]
ImageMeta
(ImageMeta 的成员嵌入到此类型中。)

imageMeta 允许自定义用于 DNS 组件的镜像。

Discovery

出现在

Discovery 指定 kubelet 在 TLS 引导过程中使用的选项。

字段描述
bootstrapToken
BootstrapTokenDiscovery

bootstrapToken 用于设置基于引导 Token 的发现选项。bootstrapTokenfile 互斥。

file
FileDiscovery

file 用于指定 kubeconfig 文件路径或 URL,从中加载集群信息。bootstrapTokenfile 互斥。

tlsBootstrapToken
string

tlsBootstrapToken 是用于 TLS 引导的 Token。如果设置了 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 用于指定 kubeconfig 文件路径或 URL,从中加载集群信息。

字段描述
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 server 实例的端点。

certificateKey
string

certificateKey 是用于解密证书的密钥,这些证书在新控制平面节点加入时从 Secret 下载。对应的加密密钥位于 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 二进制文件时提供的额外参数。此映射中的 Key 是命令命令行上显示的 Flag 名称,但不包含前导破折号 (-)。

serverCertSANs
[]string

serverCertSANs 用于为 etcd 服务器签名证书设置额外的 Subject Alternative Names (SANs)。

peerCertSANs
[]string

peerCertSANs 用于为 etcd peer 签名证书设置额外的 Subject Alternative Names (SANs)。

网络

出现在

Networking 包含描述集群网络配置的元素。

字段描述
serviceSubnet
string

serviceSubnet 是 Kubernetes Services 使用的子网。默认为 "10.96.0.0/12"。

podSubnet
string

podSubnet 是 Pods 使用的子网。

dnsDomain
string

dnsDomain 是 Kubernetes Services 使用的 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 对象注册时应带有的污点(taints)。如果未设置此字段(即为 nil),对于控制平面节点,它将默认为一个控制平面污点。如果您不想为控制平面节点设置污点,请将此字段设置为空列表,即在 YAML 文件中设置为 taints: []。此字段仅用于节点注册。

kubeletExtraArgs
map[string]string

kubeletExtraArgs 用于向 kubelet 传递额外的参数。此处的参数通过 kubeadm 在运行时为 kubelet 写入的环境文件传递到 kubelet 命令行。这将覆盖 kubelet-config ConfigMap 中的通用基础配置。解析时,标志(Flags)具有更高的优先级。这些值是 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:更新 v1.32 的配置 API (2914668152)