我正在尝试通过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
?我找到了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
,但同样,没有文档显示如何通过修改和应用此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: {}
如何执行上述操作,但通过类似--experimental-cluster-signing-duration=0h30m0s
的内容?我想试验一下涉及手动/自动更新所有kubeadm
相关证书的测试。
答案 0 :(得分:1)
1。。根据official documentation:
可以使用配置文件配置
kubeadm init
而不是命令行标志,某些更高级的功能可能 仅可用作配置文件选项。该文件已通过 使用--config
选项。可以使用
kubeadm config print
command打印出默认配置。建议您使用
kubeadm config migrate
command将旧的v1beta1配置迁移到v1beta2。在
kubeadm init
期间,kubeadm上传了ClusterConfiguration对象 在名为kubeadm-config的ConfigMap中访问群集 kube系统名称空间。然后在kubeadm join
,kubeadm reset
和kubeadm upgrade
期间读取此配置。查看此ConfigMap 致电kubeadm config view
。您可以使用
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。。我在官方文档或其他来源中都找不到类似的内容。
您可以使用kube-controller-manager来进行这种配置。
请告诉我是否有帮助。