Фон
Я пытаюсь настроить кластер через kubeadm
. Обычно я создаю (тестовый) кластер с помощью:
sudo kubeadm init --pod-network-cidr 10.244.0.0/16
Этот параметр, по-видимому, в конечном итоге находит свой путь в определении статического модуля для контроллера controller (/etc/kubernetes/manifests/kube-controller-manager.yaml
):
- --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
Вопрос 1:
Как передать этот параметр, --pod-network-cidr=10.244.0.0/16
через файл конфигурации, т.е. kubeadm init --config my_config.yaml
? Я нашел образец шаблона конфигурации в неофициальной вики-документации по K8S , но я не могу найти вообще никакой документации, которая сопоставляет эти аргументы командной строки с kubeadm
с их kubeadm_config.yaml
эквивалентами.
Существует также документ, показывающий, как я могу создать базовое определение статического модуля / 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: {}
Вопрос 2:
Как я могу сделать выше, но передать что-то вроде --experimental-cluster-signing-duration=0h30m0s
? Я бы хотел поэкспериментировать с тестами, включающими ручное / автоматическое обновление всех kubeadm
связанных сертификатов.