Așa că mi-am implementat manual clusterul și configurația mea api este după cum urmează:
[Unitate]
Descriere=Server API Kubernetes
Documentație=https://github.com/kubernetes/kubernetes
[Serviciu]
ExecStart=/usr/local/bin/kube-apiserver \
--advertise-address=10.1.1.21 \
--allow-privileged=true \
--apiserver-count=2 \
--audit-log-maxage=30 \
--audit-log-maxbackup=3 \
--audit-log-maxsize=100 \
--log-dir=/var/log/kubernetes/ \
--log-file=/var/log/kubernetes/kube-apiserver.log \
--log-file-max-size=500 \
--audit-log-path=/var/log/kubernetes/kube-apiserver-audit.log \
--authorization-mode=Nod,RBAC \
--bind-address=0.0.0.0 \
--client-ca-file=/etc/kubernetes/pki/ca/ca.crt \
--enable-admission-plugins=NodeRestriction,ServiceAccount \
--enable-bootstrap-token-auth=true \
--etcd-cafile=/etc/kubernetes/pki/ca/ca.crt \
--etcd-certfile=/etc/kubernetes/pki/etcd/etcd-server.crt \
--etcd-keyfile=/etc/kubernetes/pki/etcd/etcd-server.key \
--etcd-servers=https://master01:2379,https://master02:2379,https://master03:2379 \
--event-ttl=1h \
--encryption-provider-config=/var/lib/kubernetes/encryption-config.yaml \
--kubelet-certificate-authority=/etc/kubernetes/pki/ca/ca.crt \
--kubelet-client-certificate=/etc/kubernetes/pki/kube-apiserver.crt \
--kubelet-client-key=/etc/kubernetes/pki/kube-apiserver.key \
--runtime-config=api/all=true \
--service-account-key-file=/etc/kubernetes/pki/service-account.crt \
--service-cluster-ip-range=10.96.0.0/24 \
--service-node-port-range=30000-32767 \
--tls-cert-file=/etc/kubernetes/pki/kube-apiserver.crt \
--tls-private-key-file=/etc/kubernetes/pki/kube-apiserver.key \
--service-account-signing-key-file=/etc/kubernetes/pki/service-account.key \
--service-account-issuer=https://kubernetes.default.svc.cluster.local \
--v=2
Restart=la eșec
RestartSec=5
[Instalare]
WantedBy=multi-user.target
Cele 3 noduri de control master ale mele funcționează bine.
Când încerc să înregistrez un nod folosind următoarele configurații
[Unitate]
Descriere=Kubernetes Kubelet
Documentație=https://github.com/kubernetes/kubernetes
După=docker.service
Necesită=docker.service
[Serviciu]
ExecStart=/usr/local/bin/kubelet \
--config=/var/lib/kubelet/kubelet-config.yaml \
--kubeconfig=/var/lib/kubelet/kubeconfig \
--register-node=true \
--v=2
Restart=la eșec
RestartSec=5
[Instalare]
WantedBy=multi-user.target
kubelet-config.yaml
fel: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
adresa: "0.0.0.0"
port: 10250
serializeImagePulls: false
evictionHard:
memorie.disponibilă: „200Mi”
autentificare:
anonim:
activat: fals
webhook:
activat: adevărat
x509:
clientCAFile: „/etc/kubernetes/pki/ca/ca.crt”
autorizare:
mod: Webhook
clusterDomain: „cluster.local”
clusterDNS:
- „10.96.0.10”
resolvConf: „/run/systemd/resolve/resolv.conf”
runtimeRequestTimeout: „15m”
când nodurile mele sunt înregistrate, în loc să creeze automat un certificat și să înregistreze în cluster utilizând CA configurată, acesta își creează propriul certificat CA, chiar dacă nodul face parte din cluster toate comunicațiile (implementare, obținere a jurnalelor etc..). ) eșuează deoarece nodul ca nu este cunoscut în cluster...
poate cineva să umbrească puțină lumină?