背景
我正在尝试通过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
问题一:
如何--pod-network-cidr=10.244.0.0/16
通过配置文件传递此设置,即kubeadm init --config my_config.yaml
?我在非官方的 K8S 文档 wiki 上找到了一个示例配置文件模板,但我似乎根本找不到任何将这些命令行参数映射kubeadm
到它们的kubeadm_config.yaml
等价物的文档。
还有一个文档显示了我如何创建基线静态 pod 定义/yaml
via kubeadm config print init-defaults > kubeadm_config.yaml
,但同样,没有文档显示如何pod-network-cidr
通过修改和应用此yaml
文件进行设置(即kubeadm upgrade -f kubeadm_config.yaml
)。
的样本输出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
相关证书的测试。