Kubernetes K8S:转换;“kubeadm init”;“的命令行参数”--配置";亚马尔 背景

Kubernetes K8S:转换;“kubeadm init”;“的命令行参数”--配置";亚马尔 背景,kubernetes,yaml,x509certificate,kubeadm,kube-apiserver,Kubernetes,Yaml,X509certificate,Kubeadm,Kube Apiserver,我正试图通过kubeadm配置集群。我通常通过以下方式创建(测试)群集: sudo kubeadm init --pod-network-cidr 10.244.0.0/16 此参数似乎最终会进入controllerManager的静态pod定义(/etc/kubernetes/manifests/kube controller manager.yaml): sudo vim/etc/kubernetes/manifests/kube controller manager.yaml的较大部分

我正试图通过
kubeadm
配置集群。我通常通过以下方式创建(测试)群集:

sudo kubeadm init --pod-network-cidr 10.244.0.0/16
此参数似乎最终会进入controllerManager的静态pod定义(
/etc/kubernetes/manifests/kube controller manager.yaml
):

sudo vim/etc/kubernetes/manifests/kube controller manager.yaml的较大部分

- --cluster-cidr=10.244.0.0/16
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: kube-controller-manager
    tier: control-plane
  name: kube-controller-manager
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-controller-manager
    - --allocate-node-cidrs=true
    - --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
    - ...
    - --cluster-cidr=10.244.0.0/16

问题1: 我如何通过配置文件传递此设置,
--pod网络cidr=10.244.0.0/16
,即
kubeadm init--config my_config.yaml
?我找到了一个,但似乎根本找不到任何文档将这些命令行参数映射到
kubeadm
到它们的
kubeadm\u config.yaml
等价物

通过
kubeadm config print init defaults>kubeadm_config.yaml
,但同样没有说明如何通过修改和应用此
yaml
文件(即
kubeadm升级-f kubeadm_config.yaml
)来设置
pod网络cidr

kubeadm配置视图的示例输出:

apiServer:
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.15.4
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}

问题2: 我如何做上述操作,但要通过类似于
——实验集群签名持续时间=0h30m0s
?我想尝试手动/自动更新所有
kubeadm
相关证书的测试



1.根据:

可以使用配置文件配置
kubeadm init
而不是命令行标志,可能会出现一些更高级的功能 只能作为配置文件选项使用。此文件已传递 使用
--config
选项

可以使用
kubeadm config print
打印默认配置

建议您使用
kubeadm config migrate
将旧的v1beta1配置迁移到v1beta2

kubeadm init
期间,kubeadm上载ClusterConfiguration对象 在中名为kubeadm config的配置映射中连接到集群 kube系统名称空间。然后在
kubeadm期间读取此配置
加入
kubeadm重置
kubeadm升级
。要查看此配置映射 调用
kubeadm配置视图

您可以使用
kubeadm config print
打印默认配置 和
kubeadm config migrate
转换旧的配置文件 更新版本
kubeadm-config-images-list
kubeadm-config-images-pull
可用于列出和提取kubeadm所需的图像 需要

子网由kubeadm中的
--pod network cidr
参数或配置文件定义,如以下示例所示:

apiVersion: kubeadm.k8s.io/v1alpha3
kind: InitConfiguration
api:
  advertiseAddress: 0.0.0.0
  bindPort: 6443
kubernetesVersion: v1.12.1
---
apiVersion: kubeadm.k8s.io/v1alpha3
kind: ClusterConfiguration
networking:
  podSubnet: 192.168.0.0/24
2.我在官方文件或其他来源中都找不到类似的内容

相反,您可以使用来传递这种配置

如果有帮助,请告诉我。

谢谢。