Lab 01 – Příprava pracovní stanice
Lab 01 – Příprava pracovní stanice
Cíl: udělat ze support01 vaši kubectl stanici. Tahák: kubectl
support01 má Docker i NFS exporty, ale záměrně žádné kubectl a žádný kubeconfig. Postavit si vlastního klienta je první věc, kterou u zákazníka uděláte, tak si to zkusíme rovnou tady.
# 1 – přihlaste se na jump host (ze svého PC)
ssh student@192.168.56.101 # heslo: linux
# 2 – kdo jsem a dosáhnu na uzly clusteru?
hostname -f
ip -brief address # poznamenejte si adresu z 192.168.128.0/24
for n in control01 worker01 worker02 worker03; do getent hosts $n; done
Pokud se nějaké jméno nepřeloží, poznamenejte si jeho IP – budete ji potřebovat v kroku 6.
# 3 – ověřte, že klient zatím není
kubectl version # command not found
ls ~/.kube 2>&1 # adresář neexistuje
Instalace kubectl
Klient by měl odpovídat minor verzi clusteru (1.35). Rozdíl jedné minor verze na obě strany je podporovaný; víc už znamená podivné chyby.
# 4 – repozitář
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.35/deb/Release.key \
| sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.35/deb/ /' \
| sudo tee /etc/apt/sources.list.d/kubernetes.list
# 5 – instalace a kontrola
sudo apt-get update
sudo apt-get install -y kubectl
kubectl version --client
Získání kubeconfigu
kubectl najde cluster přes ~/.kube/config: adresu API serveru, CA certifikát
a váš klientský certifikát. Na kubeadm clusteru je administrátorská verze
/etc/kubernetes/admin.conf na control plane a je čitelná jen pro roota.
# 6 – na control01: udělejte čitelnou kopii
ssh student@control01
sudo cp /etc/kubernetes/admin.conf /home/student/kubeconfig
sudo chown student:student /home/student/kubeconfig
exit
# 7 – zpět na support01: uložte ji tam, kde ji kubectl hledá
mkdir -p ~/.kube
scp student@control01:kubeconfig ~/.kube/config
chmod 600 ~/.kube/config
# 8 – ukliďte kopii na control01
ssh student@control01 'rm -f /home/student/kubeconfig'
Ověření
# 9 – všechny tři musí fungovat
kubectl cluster-info
kubectl get nodes -o wide # control01 + worker01..03, všechny Ready
kubectl get pods -A # pody control plane v kube-system
Přečtěte si výpis uzlů: sloupec VERSION je verze kubeletu (1.35.2) a control01
má roli control-plane. kubectl get pods -A ukazuje, co cluster provozuje sám
pro sebe – API server, etcd, CoreDNS, agenta CNI.
Ať se vám pracuje líp
# 10 – doplňování a krátký alias, natrvalo
echo 'source <(kubectl completion bash)' >> ~/.bashrc
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -o default -F __start_kubectl k' >> ~/.bashrc
source ~/.bashrc
k get no
Doplňování tabulátorem není luxus – doplňuje jména objektů z živého clusteru, takže slouží i jako nástroj na objevování.
~/.kube/config jsou administrátorské údaje k celému clusteru. chmod 600 není
ozdoba.