Skip to content

Czym jest KubeConfig?

Jest to plik w ścieżce $HOME/.kube/configzawierający konfigurację dostępów do klastrów Kubernetes. Do tego pliku odwołuje się polecenie kubectl.

Zawarte mogą być tutaj różne klastry (Clusters), dostępy dla różnych użytkowników (Users) oraz różne konteksty (Contexts).

W klastrach jest definicja klastrów do których będzie możliwy dostęp, w sekcji User dane użytkownika (np. administratora) za pomocą którego będziemy się komunikować, a Context jest to połączenie obu tych grup.

Struktura KubeConfig

apiVersion: v1
kind: Config

clusters:
    - name: <nazwa_klastra>
      cluster:
          certificate-authority: ca.crt
          server: <adres_URL_klastra>:6443
context:
    - name: <nazwa_użytkownika>@<nazwa_klastra>
      context:
          cluster: <nazwa_klastra>
          user: <nazwa_użytkownika>
users:
    - name: <nazwa_użytkownika>
      user:
          client-certificate: <certyfikat_usera>.crt
          client-key: <klucz_usera>.key

Przykładowy KubeConfig

apiVersion: v1
kind: Config
current-context: administrator@dev # default context (default when use kubectl)
clusters:
    - name: dev
      cluster:
          certificate-authority: ca.crt
          server: https://dev-cluster.cluster.com:6443
context:
    - name: administrator@dev
      context:
          cluster: dev
          user: administrator
      namespace: app-frontend
users:
    - name: administrator
      user:
          client-certificate: admin.crt
          client-key: admin.key

Komendy

Wyświetlenie ConfigFile:

kubectl config view

Ustawienie domyślnego kontekstu:

kubectl config use-context <nazwa_kontekstu>

Ustawienie innego kontekstu, z wykorzystaniem innego pliku:

kubectl config --kubeconfig=/root/<nazwa_pliku> use-context <nazwa_kontekstu>