Am configurat prometheus pentru a răzui clusterul kubernetes. Încerc să folosesc „rol: node” cu kubernetes_sd_config pentru a monitoriza unul dintre clusterele K8s.
Am creat certificatul ashishcert.pem pentru utilizatorul „ashish” și prometheus va folosi acest certificat pentru a răzui clusterul. Acest certificat este semnat de cluster CA.
Prometeu.yml
Acum, când mă uit înapoi în prometheus, spune „nu se poate valida certificatul x.x.x deoarece nu conține niciun SAN-uri IP”
rezultat pe partea lui Prometheus
Portul care nu este indicat în imagine este pentru kublet și asta înseamnă că nu poate elimina valorile kublet pentru toate nodurile din cluster. Deși am adăugat toate numele nodurilor și IP-urile în SAN al certificatului.
Mi-am validat certificatul verificând valorile apisever folosind certificatul meu și certificatul CA cu comanda de mai jos.
curl -v https://myclustername:6443/metrics --cacert ca.pem --cert ashishcert.pem --key ashishkey.pem
Și comanda de mai sus a funcționat cu succes. certificatul meu a fost acceptat de apiserver. Cu toate acestea, când am încercat să curl valorile kublet cu calea https://myclustername:10250/metrics. mi-a dat o eroare care spunea că CA nu este de încredere. se pare că kublet CA este diferit de apiserver CA.
rezultat în timp ce faci curl
Am înțeles că certificatul meu mă va conecta (prometheus) la apiserver și apoi datoria sa apiserver pentru toate comunicările ulterioare, cum ar fi apiserver își va folosi certificatul pentru a obține valorile de la kublet. Cu toate acestea, cu rezultatele comenzilor de mai sus, se pare că mycert este autentificat direct și cu kublet. Vă rugăm să confirmați al cui certificat va fi utilizat pentru comunicările interne.
Cum să răzuiești toate nodurile cu rol: nod fără a ignora certificatele?