【发布时间】:2020-02-05 04:29:10
【问题描述】:
背景
我正在尝试通过kubeadm 配置集群。我通常通过以下方式创建(测试)集群:
sudo kubeadm init --pod-network-cidr 10.244.0.0/16
这个参数似乎最终会进入到 controllerManager (/etc/kubernetes/manifests/kube-controller-manager.yaml) 的静态 pod 定义中:
- --cluster-cidr=10.244.0.0/16
sudo vim /etc/kubernetes/manifests/kube-controller-manager.yaml 的较大部分:
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
问题一:
如何通过配置文件(即kubeadm init --config my_config.yaml)传递此设置--pod-network-cidr=10.244.0.0/16?我找到了sample config file template on an unofficial K8S documentation wiki,但我似乎根本找不到任何将这些命令行参数映射到kubeadm 到它们的kubeadm_config.yaml 等效项的文档。
There's also a document showing how I can create a baseline static pod definition/yaml 通过kubeadm config print init-defaults > kubeadm_config.yaml,但同样没有说明如何通过修改和应用此yaml 文件(即kubeadm upgrade -f kubeadm_config.yaml)来设置pod-network-cidr。
kubeadm config view 的示例输出:
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:
我怎样才能做到以上,但传递--experimental-cluster-signing-duration=0h30m0s 之类的东西?我想尝试手动/自动更新所有kubeadm 相关证书的测试。
【问题讨论】:
标签: kubernetes yaml x509certificate kubeadm kube-apiserver