Praca z kubernetes może czasami zapędzić nas w różne miejsca. Jedną z takich sytuacji miałem dosłownie wczoraj. Moja subskrypcja azure osiągnęła swoje limity i nie mogłem wykonać kilka testowych kroków. Ale jak tu je zrobić, kiedy kubectl
wskazuje cały czas na mój już nie działający klaster? Jak dodać kolejny klaster?
Okazuje się to to nic prostszego. Z azure wystarczy, że zalogujemy się na kolejne konto (az login
) i pobierzemy odpowiednie credentials:
az aks get-credentials --resource-group=RG_NAME --name=AKS_CLUSTER_NAME
To co zrobi ta komenda to pobierze informacje na temat danego klastra i wrzuci je do pliku (albo go stworzy albo go zaktualizuje) ~/.kube/config
– można go ładnie zobaczyć odpalając kubectl config view
(dane zmienione):
apiVersion: v1 clusters: - cluster: certificate-authority-data: REDACTED server: https://ONE-aks-6c8ef826.hcp.westeurope.azmk8s.io:443 name: ONE-aks - cluster: certificate-authority-data: REDACTED server: https://TWO-aks-22416fdc.hcp.westeurope.azmk8s.io:443 name: TWO-aks contexts: - context: cluster: ONE-aks user: clusterUser_ONE-aks-rg_ONE-aks name: ONE-aks - context: cluster: TWO-aks user: clusterUser_TWO-aks-rg_TWO-aks name: TWO-aks - context: cluster: "" user: "" name: samples current-context: TWO-aks kind: Config preferences: {} users: - name: clusterUser_ONE-aks-rg_ONE-aks user: client-certificate-data: REDACTED client-key-data: REDACTED token: eaa734385f1aafe277384db6dfaf5c5f - name: clusterUser_TWO-aks-rg_TWO-aks user: client-certificate-data: REDACTED client-key-data: REDACTED token: bede28ff5ec9889aef51fa99327da27c
Po wykonaniu komendy get-credentials
naszym aktualnym kontekstem będzie świeżo “pobrany” klaster. Możemy zobaczyć jakie mamy klastry za pomocą komendy:
kubectl config get-clusters
Zaś dzięki
kubectl config get-contexts
Możemy pobrać informację na temat dostępnych kontekstów pomiędzy którymi możemy się zmieniać za pomocą polecenia:
kubectl config use-context ONE-aks
W ten sam sposób możemy dodawać klastry od innych providerów też. Różnica będzie w jaki sposób będzie aktualizowany plik config od kubectl
. To co jest ciekawe, możemy też te wszystkie konfiguracje rozbijać na katalogi. Dzięki czemu możemy mieć osobne ustawienia i klastry dla test, dev czy też staging jak i live. Możemy też rozbijać konfiguracje per provider.
Dużo fajnych opcji do eksploracji :)