From e05a28c402485d3659a145cd58d36bb88ad77727 Mon Sep 17 00:00:00 2001 From: Qiming Teng Date: Mon, 20 Dec 2021 08:33:58 +0800 Subject: [PATCH] [zh] Translate kubeadm config ref v1beta2 --- .../config-api/kubeadm-config.v1beta2.md | 1830 +++++++++++++++++ 1 file changed, 1830 insertions(+) create mode 100644 content/zh/docs/reference/config-api/kubeadm-config.v1beta2.md diff --git a/content/zh/docs/reference/config-api/kubeadm-config.v1beta2.md b/content/zh/docs/reference/config-api/kubeadm-config.v1beta2.md new file mode 100644 index 0000000000..a1a8bee01c --- /dev/null +++ b/content/zh/docs/reference/config-api/kubeadm-config.v1beta2.md @@ -0,0 +1,1830 @@ +--- +title: kubeadm 配置 (v1beta2) +content_type: tool-reference +package: kubeadm.k8s.io/v1beta2 +auto_generated: true +--- + + + +

概述

+ +

包 v1beta2 定义 kubeadm 配置文件格式的 v1beta2 版本。 +此版本改进了 v1beta1 的格式,修复了一些小问题并添加了一些新的字段。

+ +

从 v1beta1 版本以来的变更列表:

+ + + + +

参阅 Kubernetes 1.15 的变更记录以了解详细信息。

+ + +

从老的 kubeadm 配置版本迁移:

+

请使用 kubeadm v1.15.x 的 "kubeadm config migrate" 命令将 v1beta1 +版本的配置文件转换为 v1beta2。 +(从更老版本的 kubeadm 配置文件迁移需要使用更老版本的 kubeadm。例如:

+ +) + + +

尽管如此,kubeadm v1.15.x 会支持读取 v1beta1 版本的 kubeadm 配置文件格式。

+ + +

基础知识

+ +

配置 kubeadm 的推荐方式是使用 --config 选项向其传递一个 YAML 配置文件。 +kubeadm 配置文件中定义的某些配置选项也可以作为命令行标志来使用, +不过这种方法所支持的都是一些最常见的、最简单的使用场景。

+ +

一个 kubeadm 配置文件中可以包含多个配置类型,使用三根横线(---)作为分隔符。

+ +

kubeadm 支持以下配置类型:

+ +
apiVersion: kubeadm.k8s.io/v1beta2
+kind: InitConfiguration
+
+apiVersion: kubeadm.k8s.io/v1beta2
+kind: ClusterConfiguration
+
+apiVersion: kubelet.config.k8s.io/v1beta1
+kind: KubeletConfiguration
+
+apiVersion: kubeproxy.config.k8s.io/v1alpha1
+kind: KubeProxyConfiguration
+
+apiVersion: kubeadm.k8s.io/v1beta2
+kind: JoinConfiguration
+
+ + +

要输出 "init" 和 "join" 动作的默认值,可以使用下面的命令:

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

配置文件中必须包含的配置类型列表取决于你在执行的动作(initjoin), +也取决于你要使用的配置选项(默认值或者高级定制)。

+ +

如果某些配置类型没有提供,或者仅部分提供,kubeadm 将使用默认值; +kubeadm 所提供的默认值在必要时也会保证其在多个组件之间是一致的 +(例如控制器管理器上的 --cluster-cidr 参数和 kube-proxy 上的 +clusterCIDR)。

+ + +

用户总是可以重载默认配置值,唯一的例外是一小部分与安全性相关联的配置 +(例如在 API 服务器上强制实施 Node 和 RBAC 鉴权模式)。

+ +

如果用户所提供的配置类型并非你所执行的操作需要的, +kubeadm 会忽略这些配置类型并打印警告信息。

+ + +

kubeadm init 配置类型

+ +

当带有 --config 选项来执行 kubeadm init 命令时,可以使用下面的配置类型: +InitConfigurationClusterConfigurationKubeProxyConfiguration、 +KubeletConfiguration,但 InitConfigurationClusterConfiguration +之间只有一个是必须提供的。

+ +
apiVersion: kubeadm.k8s.io/v1beta2
+kind: InitConfiguration
+bootstrapTokens:
+  ...
+nodeRegistration:
+  ...
+
+ + +

类型 InitConfiguration 用来配置运行时设置,就 kubeadm init 命令而言, +包括启动引导令牌以及所有与 kubeadm 所在节点相关的设置,包括:

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

类型 ClusterConfiguration 用来定制集群范围的设置,具体包括以下设置:

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

KubeProxyConfiguration 类型用来更改传递给在集群中部署的 kube-proxy 实例的配置。 +如果此对象没有提供,或者仅部分提供,kubeadm 使用默认值。

+ +

关于 kube-proxy 的官方文档,可参阅 +https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-proxy/ +或者 https://godoc.org/k8s.io/kube-proxy/config/v1alpha1#KubeProxyConfiguration。 +

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

KubeletConfiguration 类型用来更改传递给在集群中部署的 kubelet 实例的配置。 +如果此对象没有提供,或者仅部分提供,kubeadm 使用默认值。

+ +

关于 kubelet 的官方文档,可参阅 +https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kubelet/ +或者 +https://godoc.org/k8s.io/kubelet/config/v1beta1#KubeletConfiguration。

+ +

下面是一个为执行 kubeadm init 而提供的、包含多个配置类型的单一 YAML 文件, +其中填充了很多部分。

+ +
apiVersion: kubeadm.k8s.io/v1beta2
+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: "master"
+      effect: "NoSchedule"
+  kubeletExtraArgs:
+    v: 4
+  ignorePreflightErrors:
+    - IsPrivilegedUser
+localAPIEndpoint:
+  advertiseAddress: "10.100.0.1"
+  bindPort: 6443
+certificateKey: "e6a2eb8581237ab72a4f494f30285ec12a9694d750b9785706a83bfcbbbd2204"
+---
+apiVersion: kubeadm.k8s.io/v1beta2
+kind: ClusterConfiguration
+etcd:
+  # one of local or external
+  local:
+    imageRepository: "k8s.gcr.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.12.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:
+    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: "k8s.gcr.io"
+useHyperKubeImage: false
+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/v1beta2
+kind: JoinConfiguration
+  ...
+
+ + +

JoinConfiguration 类型用来配置运行时设置,就 kubeadm join +而言包括用来访问集群信息的发现方法,以及所有特定于 kubeadm 执行所在节点的设置, +包括:

+ + + + +## 资源类型 {#resource-types} + +- [ClusterConfiguration](#kubeadm-k8s-io-v1beta2-ClusterConfiguration) +- [ClusterStatus](#kubeadm-k8s-io-v1beta2-ClusterStatus) +- [InitConfiguration](#kubeadm-k8s-io-v1beta2-InitConfiguration) +- [JoinConfiguration](#kubeadm-k8s-io-v1beta2-JoinConfiguration) + +## `ClusterConfiguration` {#kubeadm-k8s-io-v1beta2-ClusterConfiguration} + + +

ClusterConfiguration 包含一个 kubadm 集群的集群范围配置信息。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
字段描述
apiVersion
string
kubeadm.k8s.io/v1beta2
kind
string
ClusterConfiguration
etcd [必需]
+Etcd +
+ +

etcd 中包含 etcd 服务的配置。

+
networking [必需]
+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 设置用来拉取镜像的容器仓库。 +如果此字段为空,默认使用 k8s.gcr.io; +当 Kubernetes 用来执行 CI 构造时(Kubernetes 版本以 ci/ 开头), +将默认使用 gcr.io/k8s-staging-ci-images 来拉取控制面组件镜像, +而使用 k8s.gcr.io 来拉取所有其他镜像。

+
useHyperKubeImage [必需]
+bool +
+ +

useHyperKubeImage 控制是否使用 hyperkube 来作为Kubernetes +组件,而不是一个个独立的镜像。 +已启用:由于 hyperkube 自身已被弃用,此字段也被启用。 +将被从将来的 kubeadm 配置版本中移除,kubeadm 在此字段设置为 true +时会打印多个警告信息,并且在一些其他位置忽略此字段设置。

+
featureGates [必需]
+map[string]bool +
+ +

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

+
clusterName [必需]
+string +
+ +

集群名称。

+
+ +## `ClusterStatus` {#kubeadm-k8s-io-v1beta2-ClusterStatus} + + +

ClusterStatus 包含集群信息。ClusterStatus 会被保存在集群中 kubeadm-config +ConfigMap 中,之后在新的控制面实例添加到集群或者现有控制面实例离开集群时被更新。

+ + + + + + + + + + + +
字段描述
apiVersion
string
kubeadm.k8s.io/v1beta2
kind
string
ClusterStatus
apiEndpoints [必需]
+map[string]APIEndpoint +
+ +

apiEndpoints 为当前集群中可用的 API 端点,每个控制面实例 +(API 服务器)对应一个表项。 +映射的键名为主机默认接口的 IP 地址。

+
+ +## `InitConfiguration` {#kubeadm-k8s-io-v1beta2-InitConfiguration} + + +

InitConfiguration 包含一组特定于 "kubeadm init" 的运行时元素。

+ + + + + + + + + + + + + + + + + + + + + +
字段描述
apiVersion
string
kubeadm.k8s.io/v1beta2
kind
string
InitConfiguration
bootstrapTokens [必需]
+[]BootstrapToken +
+ +

bootstrapTokenskubeadm init 执行时会被用到, +其中描述了一组要创建的启动引导令牌(Bootstrap Tokens)。 +这里的信息不会被上传到 kubeadm 在集群中保存的 ConfigMap 中,部分原因是由于信息本身比较敏感。

+
nodeRegistration [必需]
+NodeRegistrationOptions +
+ +

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

+
localAPIEndpoint [必需]
+APIEndpoint +
+ +

localAPIEndpoint 所代表的的是在此控制面节点上要部署的 API 服务器的端点。 +在高可用(HA)配置中,此字段与 ClusterConfiguration.controlPlaneEndpoint +的取值不同:后者代表的是整个集群的全局端点,该端点上的请求会被负载均衡到每个 API 服务器。 +此配置对象允许你定制本地 API 服务器所公布的、可访问的 IP/DNS 名称和端口。 +默认情况下,kubeadm 会尝试自动检测默认接口上的 IP 并使用该地址。 +不过,如果这种检测失败,你可以在此字段中直接设置所期望的值。

+
certificateKey [必需]
+string +
+ +

certificateKey 用来设置一个秘钥,该秘钥将对 uploadcerts init +阶段上传到集群中某 Secret 内的秘钥和证书加密。

+
+ +## `JoinConfiguration` {#kubeadm-k8s-io-v1beta2-JoinConfiguration} + +

+ +JoinConfiguration 包含描述特定节点的元素。 +

+ + + + + + + + + + + + + + + + + + + + + +
字段描述
apiVersion
string
kubeadm.k8s.io/v1beta2
kind
string
JoinConfiguration
nodeRegistration [必需]
+NodeRegistrationOptions +
+ + nodeRegistration 包含与向集群注册控制面节点相关的字段。 +
caCertPath [必需]
+string +
+ +

caCertPath 是指向 SSL 证书机构的路径, +该证书包用来加密节点与控制面之间的通信。默认值为 +"/etc/kubernetes/pki/ca.crt"。

+
discovery [必需]
+Discovery +
+ +

discovery 设置 TLS 引导过程中 kubelet 要使用的选项。

+
controlPlane [必需]
+JoinControlPlane +
+ +

controlPlane 定义要在正被加入到集群中的节点上部署的额外控制面实例。 +此字段为 null 时,不会再上面部署额外的控制面实例。

+
+ +## `APIEndpoint` {#kubeadm-k8s-io-v1beta2-APIEndpoint} + + +**出现在:** + +- [ClusterStatus](#kubeadm-k8s-io-v1beta2-ClusterStatus) + +- [InitConfiguration](#kubeadm-k8s-io-v1beta2-InitConfiguration) + +- [JoinControlPlane](#kubeadm-k8s-io-v1beta2-JoinControlPlane) + +

+ +APIEndpoint 结构包含某节点上部署的 API 服务器的配置元素。 +

+ + + + + + + + + + + + +
字段描述
advertiseAddress [必需]
+string +
+ +

advertiseAddress 设置 API 服务器要公布的 IP 地址。

+
bindPort [必需]
+int32 +
+ + bindPort 设置 API 服务器要绑定到的安全端口。默认值为 6443。 +
+ +## `APIServer` {#kubeadm-k8s-io-v1beta2-APIServer} + + +**出现在:** + +- [ClusterConfiguration](#kubeadm-k8s-io-v1beta2-ClusterConfiguration) + +

+ +APIServer 包含集群中 API 服务器部署所必需的设置。 +

+ + + + + + + + + + + + + + +
字段描述
ControlPlaneComponent [必需]
+ControlPlaneComponent +
ControlPlaneComponent 结构的字段被嵌入到此类型中) + 无描述 +
certSANs [必需]
+[]string +
+ + certSANs 设置 API 服务器签署证书所用的额外主题替代名(Subject Alternative Name,SAN)。 +
timeoutForControlPlane [必需]
+meta/v1.Duration +
+ +

timeoutForControlPlane 用来控制我们等待 API 服务器开始运行的超时时间。

+
+ +## `BootstrapToken` {#kubeadm-k8s-io-v1beta2-BootstrapToken} + + +**出现在:** + +- [InitConfiguration](#kubeadm-k8s-io-v1beta2-InitConfiguration) + + + +

BootstrapToken 描述的是一个启动引导令牌,以 Secret 形式存储在集群中。

+ + + + + + + + + + + + + + + + + + + + + + + + +
字段描述
token [必需]
+BootstrapTokenString +
+ +

token 用来在节点与控制面之间建立双向的信任关系。 +在向集群中添加节点时使用。

+
description [必需]
+string +
+ +

description 设置一个对人友好的消息, +说明为什么此令牌会存在以及其目标用途,这样其他管理员能够知道其目的。

+
ttl [必需]
+meta/v1.Duration +
+ +

ttl 定义此令牌的声明周期。默认为 24h。 +expiresttl 是互斥的。

+
expires [必需]
+meta/v1.Time +
+ +

expires 设置此令牌过期的时间戳。 +默认为在运行时基于ttl来决定。 +expiresttl是互斥的。

+
usages [必需]
+[]string +
+ +

usages 描述此令牌的可能使用方式。默认情况下, +令牌可用于建立双向的信任关系;不过这里可以改变默认用途。

+
groups [必需]
+[]string +
+ +

groups 设定此令牌被用于身份认证时对应的附加用户组。

+
+ +## `BootstrapTokenDiscovery` {#kubeadm-k8s-io-v1beta2-BootstrapTokenDiscovery} + + +**出现在:** + +- [Discovery](#kubeadm-k8s-io-v1beta2-Discovery) + +

+ +BootstrapTokenDiscovery 用来设置基于引导令牌的服务发现选项。 +

+ + + + + + + + + + + + + + + + + + +
字段描述
token [必需]
+string +
+

+ + token 用来验证从控制面获得的集群信息。 +

+
apiServerEndpoint [必需]
+string +
+

+ + apiServerEndpoint

为 API 服务器的 IP 地址或者域名,从该端点可以获得集群信息。 +

+
caCertHashes [必需]
+[]string +
+

+ + caCertHashes 设置一组在基于令牌来发现服务时要验证的公钥指纹。 +发现过程中获得的根 CA 必须与这里的数值之一匹配。 +设置为空集合意味着禁用根 CA 指纹,因而可能是不安全的。 +每个哈希值的形式为 "<type>:<value>",当前唯一支持的 type 为 +"sha256"。 +哈希值为主体公钥信息(Subject Public Key Info,SPKI)对象的 SHA-256 +哈希值(十六进制编码),形式为 DER 编码的 ASN.1。 +例如,这些哈希值可以使用 OpenSSL 来计算。 +

+
unsafeSkipCAVerification [必需]
+bool +
+ + unsafeSkipCAVerification 允许在使用基于令牌的服务发现时不使用 +caCertHashes 来执行 CA 验证。这会弱化 kubeadm 的安全性, +因为其他节点可以伪装成控制面。 +
+ +## `BootstrapTokenString` {#kubeadm-k8s-io-v1beta2-BootstrapTokenString} + + +**出现在:** + +- [BootstrapToken](#kubeadm-k8s-io-v1beta2-BootstrapToken) + + +

BootstrapTokenString 形式为 abcdef.abcdef0123456789 的一个令牌, +用来从加入集群的节点角度验证 API 服务器的身份,或者 "kubeadm join" +在节点启动引导是作为一种身份认证方法。 +此令牌的生命期是短暂的,并且应该如此。

+ + + + + + + + + + +
字段描述
id [必需]
+string +
+ + 无描述 +
secret [必需]
+string +
+ + 无描述 +
+ +## `ControlPlaneComponent` {#kubeadm-k8s-io-v1beta2-ControlPlaneComponent} + + +**出现在:** + +- [ClusterConfiguration](#kubeadm-k8s-io-v1beta2-ClusterConfiguration) +- [APIServer](#kubeadm-k8s-io-v1beta2-APIServer) + +

+ +ControlPlaneComponent 中包含对集群中所有控制面组件都适用的设置。 +

+ + + + + + + + + + + + +
字段描述
extraArgs [必需]
+map[string]string +
+

+ + extraArgs 是要传递给控制面组件的一组额外的参数标志。 +此映射中的每个键对应命令行上使用的标志名称,只是没有其引导连字符。 +

+
extraVolumes [必需]
+[]HostPathMount +
+

+ + extraVolumes 是一组额外的主机卷,需要挂载到控制面组件中。 +

+
+ +## `DNS` {#kubeadm-k8s-io-v1beta2-DNS} + + +**出现在:** + +- [ClusterConfiguration](#kubeadm-k8s-io-v1beta2-ClusterConfiguration) + + +

+ +DNS 结构定义要在集群中使用的 DNS 插件。 +

+ + + + + + + + + + + + +
字段描述
type [必需]
+DNSAddOnType +
+ +

type 定义要使用的 DNS 插件类型。

+
ImageMeta [必需]
+ImageMeta +
ImageMeta 的成员被内嵌到此类型中)。 +

+ + imageMeta 允许对 DNS 组件所使用的的镜像作定制。 +

+
+ +## `DNSAddOnType` {#kubeadm-k8s-io-v1beta2-DNSAddOnType} + + +(`string` 数据类型的别名) + +**出现在:** + +- [DNS](#kubeadm-k8s-io-v1beta2-DNS) + + +

DNSAddOnType 定义的是用来辨识 DNS 插件类型的字符串。

+ +## `Discovery` {#kubeadm-k8s-io-v1beta2-Discovery} + + +**出现在:** + +- [JoinConfiguration](#kubeadm-k8s-io-v1beta2-JoinConfiguration) + +

+ +Discovery 设置 TLS 启动引导过程中 kubelet 要使用的配置选项。 +

+ + + + + + + + + + + + + + + + + + +
字段描述
bootstrapToken [必需]
+BootstrapTokenDiscovery +
+

+ + bootstrapToken 设置基于启动引导令牌的服务发现选项。 +bootstrapTokenfile 是互斥的。 +

+
file [必需]
+FileDiscovery +
+ + 用来设置一个文件或者 URL 路径,指向一个 kubeconfig 文件; +该配置文件中包含集群信息。 +bootstrapTokenfile 是互斥的。 +
tlsBootstrapToken [必需]
+string +
+

+ + tlsBootstrapToken 是 TLS 启动引导过程中使用的令牌。 +如果设置了 bootstrapToken,则此字段默认值为 .bootstrapToken.token, +不过可以被重载。 +如果设置了 file,此字段必须被设置,以防 kubeconfig +文件中不包含其他身份认证信息。 +

+
timeout [必需]
+meta/v1.Duration +
+

+ + timeout 用来修改发现过程的超时时长。 +

+
+ +## `Etcd` {#kubeadm-k8s-io-v1beta2-Etcd} + + +**出现在:** + +- [ClusterConfiguration](#kubeadm-k8s-io-v1beta2-ClusterConfiguration) + +

+ +Etcd 包含用来描述 etcd 配置的元素。 +

+ + + + + + + + + + + + +
字段描述
local [必需]
+LocalEtcd +
+

+ + local 提供配置本地 etcd 实例的选项。local 和 +external 是互斥的。 +

+
external [必需]
+ExternalEtcd +
+

+ + external描述如何连接到外部的 etcd 集群。 +localexternal是互斥的。 +

+
+ +## `ExternalEtcd` {#kubeadm-k8s-io-v1beta2-ExternalEtcd} + + +**出现在:** + +- [Etcd](#kubeadm-k8s-io-v1beta2-Etcd) + +

+ +ExternalEtcd 描述外部 etcd 集群。 +kubeadm 不清楚证书文件的存放位置,因此必须单独提供证书信息。 +

+ + + + + + + + + + + + + + + + + + +
字段描述
endpoints [必需]
+[]string +
+ +

endpoints 包含一组 etcd 成员的列表。

+
caFile [必需]
+string +
+ +

caFile 是一个 SSL 证书机构(CA)文件,用来加密 etcd 通信。 +如果使用 TLS 连接,此字段为必需字段。

+
certFile [必需]
+string +
+ +

certFile 是一个 SSL 证书文件,用来加密 etcd 通信。 +如果使用 TLS 连接,此字段为必需字段。

+
keyFile [必需]
+string +
+ +

keyFile 是一个用来加密 etcd 通信的 SSL 秘钥文件。 +此字段在使用 TLS 连接时为必填字段。

+ +
+ +## `FileDiscovery` {#kubeadm-k8s-io-v1beta2-FileDiscovery} + + +**出现在:** + +- [Discovery](#kubeadm-k8s-io-v1beta2-Discovery) + + +

FileDiscovery 用来指定一个文件或者 URL 路径,指向一个 kubeconfig 文件; +该配置文件可用来加载集群信息。

+ + + + + + + + + +
字段描述
kubeConfigPath [必需]
+string +
+ +

kubeConfigPath 用来指定一个文件或者 URL 路径,指向一个 kubeconfig 文件; +该配置文件可用来加载集群信息。

+
+ +## `HostPathMount` {#kubeadm-k8s-io-v1beta2-HostPathMount} + + +**出现在:** + +- [ControlPlaneComponent](#kubeadm-k8s-io-v1beta2-ControlPlaneComponent) + + +

HostPathMount 包含从宿主节点挂载的卷的信息。 + + + + + + + + + + + + + + + + + + + + + + +
字段描述
name [必需]
+string +
+ +

name 为卷在 Pod 模板中的名称。

+
hostPath [必需]
+string +
+ +

hostPath 是要在 Pod 中挂载的卷在宿主系统上的路径。

+
mountPath [必需]
+string +
+ +

mountPathhostPath 在 Pod 内挂载的路径。

+
readOnly [必需]
+bool +
+ +

readOnly 控制卷的读写访问模式。

+
pathType [必需]
+core/v1.HostPathType +
+ +

pathTypehostPath 的类型。

+
+ +## `ImageMeta` {#kubeadm-k8s-io-v1beta2-ImageMeta} + + +**出现在:** + +- [DNS](#kubeadm-k8s-io-v1beta2-DNS) + +- [LocalEtcd](#kubeadm-k8s-io-v1beta2-LocalEtcd) + + +

ImageMeta 用来配置来源不是 Kubernetes/kubernetes +发布过程的组件所使用的镜像。

+ + + + + + + + + + + + +
字段描述
imageRepository [必需]
+string +
+ +

imageRepository 设置镜像拉取所用的容器仓库。 +若未设置,则使用 ClusterConfiguration 中的 imageRepository

+
imageTag [必需]
+string +
+ +

imageTag 允许用户设置镜像的标签。 +如果设置了此字段,则 kubeadm 不再在集群升级时自动更改组件的版本。

+
+ +## `JoinControlPlane` {#kubeadm-k8s-io-v1beta2-JoinControlPlane} + + +**出现在:** + +- [JoinConfiguration](#kubeadm-k8s-io-v1beta2-JoinConfiguration) + + +

JoinControlPlane 包含在正在加入集群的节点上要部署的额外的控制面组件的设置。

+ + + + + + + + + + + + +
字段描述
localAPIEndpoint [必需]
+APIEndpoint +
+ +

localAPIEndpoint 代表的是将在此节点上部署的 API 服务器实例的端点。

+
certificateKey [必需]
+string +
+ +

certificateKey 是在添加新的控制面节点时用来解密所下载的 +Secret 中的证书的秘钥。对应的加密秘钥在 InitConfiguration 结构中。

+
+ +## `LocalEtcd` {#kubeadm-k8s-io-v1beta2-LocalEtcd} + + +**出现在:** + +- [Etcd](#kubeadm-k8s-io-v1beta2-Etcd) + + +

LocalEtcd 描述的是 kubeadm 要使用的本地 etcd 集群。

+ + + + + + + + + + + + + + + + + + + + + +
字段描述
ImageMeta [必需]
+ImageMeta +
ImageMeta 结构的字段被嵌入到此类型中。) + +

ImageMeta 允许用户为 etcd 定制要使用的容器。

+
dataDir [必需]
+string +
+ +

dataDir 是 etcd 用来存放数据的目录。 +默认值为 "/var/lib/etcd"。

+
extraArgs [必需]
+map[string]string +
+ +

extraArgs 是为 etcd 可执行文件提供的额外参数,用于在静态 +Pod 中运行 etcd。映射中的每一个键对应命令行上的一个标志参数,只是去掉了前置的连字符。

+
serverCertSANs [必需]
+[]string +
+ +

serverCertSANs 为 etcd 服务器的签名证书设置额外的主体替代名 +(Subject Alternative Names,SAN)。

+
peerCertSANs [必需]
+[]string +
+ +

peerCertSANs 为 etcd 的对等端签名证书设置额外的主体替代名 +(Subject Alternative Names,SAN)。

+
+ +## `Networking` {#kubeadm-k8s-io-v1beta2-Networking} + + +**出现在:** + +- [ClusterConfiguration](#kubeadm-k8s-io-v1beta2-ClusterConfiguration) + + +

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

+ + + + + + + + + + + + + + + +
字段描述
serviceSubnet [必需]
+string +
+ +

serviceSubnet 是 Kubernetes 服务所使用的的子网。 +默认值为 "10.96.0.0/12"。

+
podSubnet [必需]
+string +
+ +

podSubnet 为 Pod 所使用的子网。

+
dnsDomain [必需]
+string +
+ +

dnsDomain 是 Kubernetes 服务所使用的的 DNS 域名。 +默认值为 "cluster.local"。

+
+ +## `NodeRegistrationOptions` {#kubeadm-k8s-io-v1beta2-NodeRegistrationOptions} + + +**出现在:** + +- [InitConfiguration](#kubeadm-k8s-io-v1beta2-InitConfiguration) +- [JoinConfiguration](#kubeadm-k8s-io-v1beta2-JoinConfiguration) + + +

NodeRegistrationOptions 包含向集群中注册新的控制面或节点所需要的信息; +节点注册可能通过 "kubeadm init" 或 "kubeadm join" 完成。

+ + + + + + + + + + + + + + + + + + + + + +
字段描述
name [必需]
+string +
+ +

name 是 Node API 对象的 .metadata.name 字段值; +该 API 对象会在此 kubeadm initkubeadm join 操作期间创建。 +在提交给 API 服务器的 kubelet 客户端证书中,此字段也用作其 CommonName。 +如果未指定则默认为节点的主机名。

+
criSocket [必需]
+string +
+ +

criSocket 用来读取容器运行时的信息。 +此信息会被以注解的方式添加到 Node API 对象至上,用于后续用途。

+
taints [必需]
+[]core/v1.Taint +
+ +

tains 设定 Node API 对象被注册时要附带的污点。 +若未设置此字段(即字段值为 null), 在 kubeadm init 期间,节点与控制面之间的通信。 +默认值为污点默认设置为 taints: ["node-role.kubernetes.io/master:""]。 +如果你不希望为控制面节点设置污点,可以在 YAML 中将此字段设置为空的列表,即 +taints: []。 此字段仅用在 Node 注册期间。

+
kubeletExtraArgs [必需]
+map[string]string +
+ +

kubeletExtraArgs 用来向 kubelet 传递额外参数。 +这里的参数会通过 kubeadm 在运行时写入的、由 kubelet 来读取的环境文件来传递给 kubelet 命令行。 +这里的设置会覆盖掉 'kubelet-config-1.X' ConfigMap 中包含的一般性的配置。 +命令行标志在解析时优先级更高。 +这里的设置值仅作用于 kubeadm 运行所在的节点。 +映射中的每个键对应命令行中的一个标志参数,只是去掉了前置的连字符。

+
ignorePreflightErrors [必需]
+[]string +
+ +

ignorePreflightErrors 提供一组在当前节点被注册时可以忽略掉的预检错误。

+
+