Die kubeconfig ist die Konfigurationsdatei, mit der kubectl und andere Clients erfahren, welchen Kubernetes-Cluster sie ansprechen und als wer sie sich ausweisen.

Aufbau der Datei

Die Datei ist YAML und hat vier Abschnitte: clusters enthält die API-Server-Adresse (server) samt Zertifizierungsstelle (certificate-authority-data), users die Zugangsdaten (Client-Zertifikat, Bearer-Token oder ein exec-Plugin), contexts verbindet Cluster, Benutzer und optional einen Namespace, und current-context benennt den aktiven Context.

apiVersion: v1
kind: Config
clusters:
- name: prod
  cluster:
    server: https://10.0.0.1:6443
users:
- name: dev
  user:
    token: BEISPIEL
contexts:
- name: prod-admin
  context:
    cluster: prod
    user: dev
    namespace: default
current-context: prod-admin

Speicherort und Umgebungsvariable

Standardpfad ist ~/.kube/config. Mit der Umgebungsvariable KUBECONFIG lassen sich mehrere Dateien angeben (getrennt durch Doppelpunkt unter Linux und macOS, Semikolon unter Windows); sie werden zusammengeführt, wobei der erste Treffer gewinnt. Eine Datei je Umgebung ist üblich, um Produktion und Test sauber zu trennen.

Sicherheit

Die Datei enthält Geheimnisse und gehört deshalb nur auf den Arbeitsrechner – nicht ins Repository und nicht in Container-Images. Für Pods übernimmt stattdessen ein ServiceAccount die Identität. Wer als anderer Benutzer handeln muss, nutzt die Impersonation. Der kube-apiserver prüft jede Anfrage gegen die RBAC-Regeln.