Certyfikaty w Kubernetesie

Certyfikaty w Kubernetesie

W dobie chmur publicznych wiedza o komunikacji pomiędzy poszczególnymi komponentami Kubernetesa być może nie jest niezbędna do używania klastrów, ale może być przydatna. Jeżeli jednak masz zamiar podchodzić do egzaminów certyfikacyjnych CKA lub CKS to wiedza o gdzie instalowane są certyfikaty w Kubernetesie będzie niezbędna.

Komponenty

Poniższy schemat przedstawia poszczególne komponenty w Kubernetesie. Nie będę ich tu opisywał. Zainteresowanych odsyłam do dokumentacji. Strzałkami zaznaczyłem komunikację pomiędzy poszczególnymi usługami. Jak się zapewne domyślacie, każdy serwer oraz klienci powinien posiadać swój certyfikat, a nad całością powinno „czuwać” tak zwane Certificate Authority.

k8s components

Certyfikaty w Kubernetesie

W Kubernetesie certyfikaty potrzebne są m.in. dla następujących połączeń:

  • certyfikat klienta dla komunikacji Kubelet do API Server
  • certyfikat serwera dla API Server
  • certyfikat klienta dla komunikacji API Server do Kubelet
  • certyfikat klienta dla komunikacji API Server do etcd
  • certyfikat klienta dla komunikacji controller manager do API Server
  • certyfikat klienta dla komunikacji scheduler do API Server

Jest ich oczywiście więcej, ale skupmy się na wiedzy potrzebnej do egzaminów. Gdzie i jak je znaleźć?

Zakładam, że mamy klaster uruchomiony za pomocą narzędzie kubeadm. Z takim będziecie mieli do czynienia podczas egzaminów. Wystarczy klaster złożony z jednego mastera i jednego worker noda.

Po utworzeniu klastra wchodzimy przez ssh na mastera. Pokażę po kolei gdzie są poszczególne certyfikaty.

CA cert, API Server cert, API Server client cert ->etcd, API Server client cert ->kubelet

Znajdują się w katalogu /etc/kubernetes/pki Wchodzimy więc do niego i sprawdzamy zawartość:

cd /etc/kubernetes/pki && ll

etcd server cert

Umieszczony jest w podkatalogu etcd.  Sprawdźmy więc jego zawartość

ll etcd

Scheduler client cert ->API Server

Ten certyfikat przechowywany jest w pliku konfiguracyjnym scheduler.conf. Aby przejrzeć jego zawartość musimy podnieść uprawnienia.

sudo -i
cat /etc/kubernetes/scheduler.conf

Controller Manager client cert -> API Server

cat /etc/kubernetes/controller-manager.conf

Kubelet client cert -> API Server

Kubelet jest komponentem, który znajdziemy zarówno na masterze jak i na worker nodach. Następne dwa certyfikaty będę więc zainstalowane w obu mniejscach.

cat /etc/kubernetes/kubelet.conf

Kubelet server cert

cd /var/lib/kubelet/pki && ll

Jeżeli chcesz wiedzieć więcej o certyfikatach w Kubernetesie warto spojrzeć na ten materiał: All You Need to Know About Certificates in Kubernetes lub przeczytać dokumentację.

Comments are closed.