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

Interesuje Cię temat konteneryzacji i Kubernetes? Potrzebujesz tej wiedzy w projekcie? Nie czekaj dołącz do kursu Poznaj Kubernetes – Właśnie trwa przedsprzedaż, która kończy się 18 września o godzinie 21:00 – KLINIJ W TEN LINK BY KUPIĆ KURS