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 :)














