Am un cluster Kubernetes cu 2 noduri master și 3 noduri de lucru, de asemenea, am un separat Haproxy server cu IP public.
În mod implicit, kubeadm generează toate certificatele necesare pentru cluster și stochează certificatele în /etc/kubernetes/pki
Conform documentației, putem plasa unul sau mai multe certificate personalizate și cheile relevante în /etc/kubernetes/pki și executam kubeadm init comanda pentru a genera restul certificatelor. https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/
Deoarece clusterul meu este deja activ și rulează, comanda init va eșua cu erorile preflight.
Așa că am urmat pașii de mai jos pentru a genera certificatele și configurațiile Kubernetes
cd /etc/kubernetes/pki/
sudo rm ca.key ca.crt
sudo openssl genrsa -out ca.key 2048
sudo openssl req -x509 -new -nodes -key ca.key -subj "/CN=My Local CA" -days 10000 -out ca.crt
sudo kubeadm init phase certs all --control-plane-endpoint "haproxy_IP:6443"
cd /etc/kubernetes/
sudo rm admin.conf controller-manager.conf kubelet.conf scheduler.conf
sudo kubeadm init phase kubeconfig all --control-plane-endpoint "haproxy_IP:6443"
sudo rm $HOME/.kube/config
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Acum primesc mai jos erori
kubectl obține noduri
Eroare de la server (InternalError): o eroare pe server ("") a împiedicat reușita cererii
openssl s_client -connect haproxy_IP:6443
CONECTAT(00000005)
scrie:errno=0
---
nu este disponibil niciun certificat de egalitate
---
Nu s-au trimis nume de CA de certificat de client
---
SSL handshake a citit 0 octeți și a scris 315 octeți
Verificare: OK
---
Nou, (NONE), Cipher este (NIMIC)
Renegocierea sigură NU ESTE acceptată
Compresie: NIMIC
Extindere: NIMIC
Nu s-a negociat ALPN
Datele timpurii nu au fost trimise
Verificați codul de returnare: 0 (ok)
kubectl obține noduri --v=7
09:41:50.597844 31816 request.go:943] Am primit un răspuns Retry-After 1s pentru încercarea 8 la https://haproxy_IP:6443/api?timeout=32s
09:41:51.598061 31816 round_trippers.go:422] GET https://haproxy_IP:6443/api?timeout=32s
09:41:51.598112 31816 round_trippers.go:429] Antete cereri:
09:41:51.598219 31816 round_trippers.go:433] Accept: application/json, */*
09:41:51.598504 31816 round_trippers.go:433] Agent utilizator: kubectl/v1.20.4 (linux/amd64) kubernetes/e87da0b
09:41:51.602249 31816 round_trippers.go:448] Stare răspuns: în 3 milisecunde
09:41:51.602301 31816 request.go:943] Am primit un răspuns Retry-After 1s pentru încercarea 9 la https://haproxy_IP:6443/api?timeout=32s
09:41:52.602523 31816 round_trippers.go:422] GET https://haproxy_IP:6443/api?timeout=32s
09:41:52.602558 31816 round_trippers.go:429] Antete cereri:
09:41:52.602572 31816 round_trippers.go:433] Agent utilizator: kubectl/v1.20.4 (linux/amd64) kubernetes/e87da0b
09:41:52.602585 31816 round_trippers.go:433] Accept: application/json, */*
09:41:52.605922 31816 round_trippers.go:448] Stare răspuns: în 3 milisecunde
09:41:52.605980 31816 request.go:943] Am primit un răspuns Retry-After 1s pentru încercarea 10 la https://haproxy_IP:6443/api?timeout=32s
09:41:53.606187 31816 round_trippers.go:422] GET https://haproxy_IP:6443/api?timeout=32s
09:41:53.610028 31816 round_trippers.go:429] Antete cereri:
09:41:53.610048 31816 round_trippers.go:433] Accept: application/json, */*
09:41:53.610059 31816 round_trippers.go:433] Agent utilizator: kubectl/v1.20.4 (linux/amd64) kubernetes/e87da0b
09:41:53.612676 31816 round_trippers.go:448] Stare răspuns: în 2 milisecunde
09:41:53.612837 31816 cached_discovery.go:121] a omis informațiile de descoperire a stocării în cache din cauza unei erori pe server ("") a împiedicat reușita cererii
09:41:53.613146 31816 helpers.go:216] obiect răspuns server: [{
„metadate”: {},
"status": "Eșec",
„message”: „o eroare pe server (\”\”) a împiedicat reușita cererii”,
"motiv": "Eroare internă",
"Detalii": {
„cauze”: [
{
"motiv": "Răspuns server neașteptat"
}
],
„retryAfterSeconds”: 1
},
„cod”: 500
}]
F0413 09:41:53.613294 31816 helpers.go:115] Eroare de la server (InternalError): o eroare pe server ("") a împiedicat cererea să reușească
Dacă eu resetare noul certificat și fișierele de configurare cu certificatele mele anterioare și fișierele de configurare, apoi totul Merge bine fara probleme.
Așa că bănuiesc că îmi lipsește ceva în abordarea mea.
Apreciez mult ideile sau experiențele similare legate de această problemă.