diff --git a/content/zh/docs/reference/config-api/kubeadm-config.v1beta3.md b/content/zh/docs/reference/config-api/kubeadm-config.v1beta3.md new file mode 100644 index 0000000000..c51bf4a3ef --- /dev/null +++ b/content/zh/docs/reference/config-api/kubeadm-config.v1beta3.md @@ -0,0 +1,1867 @@ +--- +title: kubeadm 配置 (v1beta3) +content_type: tool-reference +package: kubeadm.k8s.io/v1beta3 +auto_generated: true +--- + + + + +
包 v1beta3 定义 kubeadm 配置文件格式的 v1beta3 版本。 +此版本改进了 v1beta2 的格式,修复了一些小问题并添加了一些新的字段。
+ +从 v1beta2 版本以来的变更列表:
+ + +从老的 kubeadm 配置版本迁移:
+配置 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 ++ + +
配置文件中必须包含的配置类型列表取决于你在执行的动作(init 或 join),
+也取决于你要使用的配置选项(默认值或者高级定制)。
如果某些配置类型没有提供,或者仅部分提供,kubeadm 将使用默认值;
+kubeadm 所提供的默认值在必要时也会保证其在多个组件之间是一致的
+(例如控制器管理器上的 --cluster-cidr 参数和 kube-proxy 上的
+clusterCIDR)。
用户总是可以重载默认配置值,唯一的例外是一小部分与安全性相关联的配置 +(例如在 API 服务器上强制实施 Node 和 RBAC 鉴权模式)。
+ +如果用户所提供的配置类型并非你所执行的操作需要的,kubeadm 会忽略这些配置类型 +并打印警告信息。
+ + +当带有 --config 选项来执行 kubeadm init 命令时,可以使用下面的配置类型:
+`InitConfiguration`、`ClusterConfiguration`、`KubeProxyConfiguration`、`KubeletConfiguration`,
+但 `InitConfiguration` 和 `ClusterConfiguration`
+之间只有一个是必须提供的。
apiVersion: kubeadm.k8s.io/v1beta3 +kind: InitConfiguration +bootstrapTokens: + ... +nodeRegistration: + ... ++ + +
类型 InitConfiguration 用来配置运行时设置,就 kubeadm init 命令而言,包括 +启动引导令牌以及所有与 kubeadm 所在节点相关的设置,包括:
+ +apiVersion: kubeadm.k8s.io/v1beta3
+kind: ClusterConfiguration
+networking:
+ ...
+etcd:
+ ...
+apiServer:
+ extraArgs:
+ ...
+ extraVolumes:
+ ...
+...
+
+
+
+类型 `ClusterConfiguration` 用来定制集群范围的设置,具体包括以下设置:
+ +networking:其中包含集群的网络拓扑配置。使用这一部分可以定制 Pod 的
+子网或者 Service 的子网。etcd:etcd 数据库的配置。例如使用这个部分可以定制本地 etcd 或者配置 API 服务器
+使用一个外部的 etcd 集群。kube-apiserver、kube-scheduler、kube-controller-manager
+配置:这些部分可以通过添加定制的设置或者重载 kubeadm 的默认设置来定制控制面组件。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/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: "master" + 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: "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.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: + 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" +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 ++ + +
当带有 --config 选项来执行 kubeadm join 操作时,
+需要提供 JoinConfiguration 类型。
apiVersion: kubeadm.k8s.io/v1beta3 +kind: JoinConfiguration + ... ++ + +
JoinConfiguration 类型用来配置运行时设置,就 kubeadm join 而言包括
+用来访问集群信息的发现方法,以及所有特定于 kubeadm 执行所在节点的设置,包括:
nodeRegistration:其中包含向集群注册新节点相关的配置字段;
+使用这个类型可以定制节点名称、用使用的 CRI 套接字和所有其他仅适用于当前节点的设置
+(例如节点 IP 地址)。apiEndpoint:用来代表最终要部署到此节点上的 API
+服务器实例的端点。ClusterConfiguration 包含一个 kubadm 集群的集群范围配置信息。
+ +| 字段 | 描述 |
|---|---|
apiVersionstring | kubeadm.k8s.io/v1beta3 |
kindstring | ClusterConfiguration |
etcd+ Etcd
+ |
+
+
+
|
+
networking+ Networking
+ |
+
+
+ networking 字段包含集群的网络拓扑配置。
+ |
+
kubernetesVersion+ string
+ |
+
+
+
|
+
controlPlaneEndpoint+ string
+ |
+
+
+
可能的用法有: + +
|
+
apiServer+ APIServer
+ |
+
+
+
|
+
controllerManager+ ControlPlaneComponent
+ |
+
+
+
|
+
scheduler+ ControlPlaneComponent
+ |
+
+
+
|
+
dns+ DNS
+ |
+
+
+
|
+
certificatesDir+ string
+ |
+
+
+
|
+
imageRepository+ string
+ |
+
+
+
|
+
featureGates+ map[string]bool
+ |
+
+
+
|
+
clusterName+ string
+ |
+
+
+ 集群名称。 + |
+
InitConfiguration 包含一组特定于 "kubeadm init" 的运行时元素。
+这里的字段仅用于第一次运行 kubeadm init 命令。
+之后,此结构中的字段信息不会再被上传到 kubeadm upgrade 所要使用的
+kubeadm-config ConfigMap 中。
+这些字段必须设置 "omitempty"
| 字段 | 描述 |
|---|---|
apiVersionstring | kubeadm.k8s.io/v1beta3 |
kindstring | InitConfiguration |
bootstrapTokens+ []BootstrapToken
+ |
+
+
+
|
+
nodeRegistration+ NodeRegistrationOptions
+ |
+
+
+
|
+
localAPIEndpoint+ APIEndpoint
+ |
+
+
+
|
+
certificateKey+ string
+ |
+
+
+
|
+
skipPhases+ []string
+ |
+
+
+
|
+
patches+ Patches
+ |
+
+
+
|
+
+ +JoinConfiguration 包含描述特定节点的元素。 +
+ +| 字段 | 描述 |
|---|---|
apiVersionstring | kubeadm.k8s.io/v1beta3 |
kindstring | JoinConfiguration |
nodeRegistration+ NodeRegistrationOptions
+ |
+
+
+
+ |
+
caCertPath+ string
+ |
+
+
+
+ |
+
discovery [必需]-->[必需]+ Discovery
+ |
+
+
+
+ |
+
controlPlane+ JoinControlPlane
+ |
+
+
+
+ |
+
skipPhases+ []string
+ |
+
+
+
+ 此字段包含在命令执行过程中要略过的阶段。通过 |
+
patches+ Patches
+ |
+
+
+
+ 此字段包含 |
+
+ +APIEndpoint 结构包含某节点上部署的 API 服务器的配置元素。 +
+ +| 字段 | 描述 |
|---|---|
advertiseAddress+ string
+ |
+
+
+
+ |
+
bindPort+ int32
+ |
+
+
+
+ |
+
+ +APIServer 包含集群中 API 服务器部署所必需的设置。 +
+ +| 字段 | 描述 |
|---|---|
ControlPlaneComponent [必需]-->[必需]+ ControlPlaneComponent
+ |
+(ControlPlaneComponent 结构的字段被嵌入到此类型中)
+ 无描述.
+ |
+
certSANs+ []string
+ |
+
+
+
+ |
+
timeoutForControlPlane+ meta/v1.Duration
+ |
+
+
+
+ |
+
+ +BootstrapTokenDiscovery 用来设置基于引导令牌的服务发现选项。 +
+ +| 字段 | 描述 |
|---|---|
token [必需]-->[必需]+ string
+ |
+
+
+
+ |
+
apiServerEndpoint+ string
+ |
+
+
+
+ |
+
caCertHashes+ []string
+ |
+
+
+
+ |
+
unsafeSkipCAVerification+ bool
+ |
+
+
+
+ |
+
| 字段 | 描述 |
|---|---|
extraArgs+ map[string]string
+ |
+
+
+
+ |
+
extraVolumes+ []HostPathMount
+ |
+
+
+
+ |
+
| 字段 | 描述 |
|---|---|
ImageMeta [必需]-->[必需]+ ImageMeta
+ |
+(ImageMeta 的成员被内嵌到此类型中)。
+
+
+ |
+
| 字段 | 描述 |
|---|---|
bootstrapToken+ BootstrapTokenDiscovery
+ |
+
+
+
+ |
+
file+ FileDiscovery
+ |
+
+
+
+ |
+
tlsBootstrapToken+ string
+ |
+
+
+
+ |
+
timeout+ meta/v1.Duration
+ |
+
+
+
+ |
+
| 字段 | 描述 |
|---|---|
local+ LocalEtcd
+ |
+
+
+
+ |
+
external+ ExternalEtcd
+ |
+
+
+
+ |
+
| 字段 | 描述 |
|---|---|
endpoints [必需]-->[必需]+ []string
+ |
+
+
+
|
+
caFile [必需]-->[必需]+ string
+ |
+
+
+
|
+
certFile [必需]+ string
+ |
+
+
+
|
+
keyFile [必需]+ string
+ |
+
+
+
|
+
FileDiscovery 用来指定一个文件或者 URL 路径,指向一个 kubeconfig 文件;该配置文件 +可用来加载集群信息。
+ +| 字段 | 描述 |
|---|---|
kubeConfigPath [必需]+ string
+ |
+
+
+
|
+
HostPathMount 包含从宿主节点挂载的卷的信息。 + +
| 字段 | 描述 |
|---|---|
name [必需]+ string
+ |
+
+
+
|
+
hostPath [必需]+ string
+ |
+
+
+
|
+
mountPath [必需]+ string
+ |
+
+
+
|
+
readOnly+ bool
+ |
+
+
+
|
+
pathType+ core/v1.HostPathType
+ |
+
+
+
|
+
ImageMeta 用来配置来源不是 Kubernetes/kubernetes +发布过程的组件所使用的镜像。
+ +| 字段 | 描述 |
|---|---|
imageRepository+ string
+ |
+
+
+
|
+
imageTag+ string
+ |
+
+
+
|
+
JoinControlPlane 包含在正在加入集群的节点上要部署的额外的控制面组件的 +设置。
+ +| 字段 | 描述 |
|---|---|
localAPIEndpoint+ APIEndpoint
+ |
+
+
+
|
+
certificateKey+ string
+ |
+
+
+
|
+
LocalEtcd 描述的是 kubeadm 要使用的本地 etcd 集群。
+ +| 字段 | 描述 |
|---|---|
ImageMeta [必需]+ ImageMeta
+ |
+(ImageMeta 结构的字段被嵌入到此类型中。)
+
+ ImageMeta 允许用户为 etcd 定制要使用的容器。 + |
+
dataDir [必需]+ string
+ |
+
+
+
|
+
extraArgs+ map[string]string
+ |
+
+
+
|
+
serverCertSANs+ []string
+ |
+
+
+
|
+
peerCertSANs+ []string
+ |
+
+
+
|
+
Networking 中包含描述集群网络配置的元素。
+ +| 字段 | 描述 |
|---|---|
serviceSubnet+ string
+ |
+
+
+
|
+
podSubnet+ string
+ |
+
+
+
|
+
dnsDomain+ string
+ |
+
+
+
|
+
NodeRegistrationOptions 包含向集群中注册新的控制面或节点所需要的信息; +节点注册可能通过 "kubeadm init" 或 "kubeadm join" 完成。
+ +| 字段 | 描述 |
|---|---|
name+ string
+ |
+
+
+
|
+
criSocket+ string
+ |
+
+
+
|
+
taints [必需]+ []core/v1.Taint
+ |
+
+
+
|
+
kubeletExtraArgs+ map[string]string
+ |
+
+
+
|
+
ignorePreflightErrors+ []string
+ |
+
+
+
|
+
imagePullPolicy+ core/v1.PullPolicy
+ |
+
+
+
|
+
Patches 包含要向 kubeadm 所部署的组件应用的补丁信息。
+ +| 字段 | 描述 |
|---|---|
directory+ string
+ |
+
+
+
|
+
BootstrapToken 描述的是一个启动引导令牌,以 Secret 形式存储在集群中。
+ +| 字段 | 描述 |
|---|---|
token [必需]+ BootstrapTokenString
+ |
+
+
+
|
+
description+ string
+ |
+
+
+
|
+
ttl+ meta/v1.Duration
+ |
+
+
+
|
+
expires+ meta/v1.Time
+ |
+
+
+
|
+
usages+ []string
+ |
+
+
+
|
+
groups+ []string
+ |
+
+
+
|
+
BootstrapTokenString 形式为 abcdef.abcdef0123456789 的一个令牌,
+用来从加入集群的节点角度验证 API 服务器的身份,或者 "kubeadm join"
+在节点启动引导是作为一种身份认证方法。
+此令牌的生命期是短暂的,并且应该如此。
| 字段 | 描述 |
|---|---|
id [必需]+ string
+ |
++ + 无描述 + + | +
secret [必需]+ string
+ |
++ + 无描述 + | +