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.