kube-controller-manager
работает в вашей плоскости управления K8s. Таким образом, вам нужно будет добавить этот флаг на серверах, где работает ваша плоскость управления. Как правило, это неравномерное количество серверов (один из которых является главным) 3 или 5 из-за того, что это рекомендуемый кворум. ( Пример использования kubeadm ).
Так что обычно kube-controller-manager
конфиги живут под /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
- --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
- --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
- --bind-address=127.0.0.1
- --client-ca-file=/var/lib/minikube/certs/ca.crt
- --cluster-signing-cert-file=/var/lib/minikube/certs/ca.crt
- --cluster-signing-key-file=/var/lib/minikube/certs/ca.key
- --controllers=*,bootstrapsigner,tokencleaner
- --kubeconfig=/etc/kubernetes/controller-manager.conf
- --leader-elect=true
- --requestheader-client-ca-file=/var/lib/minikube/certs/front-proxy-ca.crt
- --root-ca-file=/var/lib/minikube/certs/ca.crt
- --service-account-private-key-file=/var/lib/minikube/certs/sa.key
- --use-service-account-credentials=true
- --horizontal-pod-autoscaler-use-rest-clients=1m0s <== add this line
image: k8s.gcr.io/kube-controller-manager:v1.16.2
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 8
httpGet:
host: 127.0.0.1
path: /healthz
port: 10252
scheme: HTTP
initialDelaySeconds: 15
timeoutSeconds: 15
name: kube-controller-manager
resources:
requests:
cpu: 200m
volumeMounts:
- mountPath: /etc/ssl/certs
name: ca-certs
readOnly: true
- mountPath: /var/lib/minikube/certs
name: k8s-certs
readOnly: true
- mountPath: /etc/kubernetes/controller-manager.conf
name: kubeconfig
readOnly: true
- mountPath: /usr/share/ca-certificates
name: usr-share-ca-certificates
readOnly: true
hostNetwork: true
priorityClassName: system-cluster-critical
volumes:
- hostPath:
path: /etc/ssl/certs
type: DirectoryOrCreate
name: ca-certs
- hostPath:
path: /var/lib/minikube/certs
type: DirectoryOrCreate
name: k8s-certs
- hostPath:
path: /etc/kubernetes/controller-manager.conf
type: FileOrCreate
name: kubeconfig
- hostPath:
path: /usr/share/ca-certificates
type: DirectoryOrCreate
name: usr-share-ca-certificates
status: {}
Затем вам нужно перезапустить kube-controller-manager.
Это может варьироваться в зависимости от на что ты бежишь в своих хозяевах. Если что-то типа docker вы можете сделать sudo systemctl restart docker
или вам может потребоваться перезапустить containerd, если вы используете его вместо docker systemctl restart containerd
Или если вы хотите просто запустить kube-controller-manager
, вы можно сделать docker restart kube-controller-mamnager
или crictl stop kube-controller-manager; crictl start kube-controller-manager