cattle-cluster-agent (Fehlerquelle #1)
Cluster Unavailable? Fast immer der Agent-Tunnel:
server-url falsch/nicht erreichbar,
CA-Mismatch (Agent braucht Ranchers CA),
Proxy/DNS, abgelaufenes Token.
Importierte Cluster: seit 2.15 rotiert Rancher per
Default das Cluster-Registration-Token (Flag
crt-token-ttl-rotation, TTL 30 d, Gnadenfrist
crt-default-grace-period-minutes 180). Rotiert es
während einer Trennung, die länger als die Gnadenfrist
dauert: 400 cluster not found, Registrierungsbefehl
erneut anwenden; vor geplanten Ausfällen Gnadenfrist
erhöhen.
agent-tls-mode: strict
(Default bei Neuinstallation seit 2.9) vertraut nur der CA im Setting
cacerts, system-store (Wert nach Upgrade von
älteren Versionen) jeder CA im System-Trust-Store. Gilt für
cluster-, fleet- und system-agent. Vor dem Wechsel auf
strict je Cluster die Condition
AgentTlsStrictCheck prüfen.
kubectl -n cattle-system logs -l app=cattle-cluster-agent
kubectl -n cattle-system get deploy cattle-cluster-agent
# auf local: Server-URL
kubectl get settings.management.cattle.io server-url \
-o jsonpath='{.value}'
# im Downstream: Ziel des Agents
kubectl -n cattle-system get deploy cattle-cluster-agent \
-o jsonpath='{..env[?(@.name=="CATTLE_SERVER")].value}'
Stuck-States & Zerts
Updating/Unavailable: Agent-Disconnect,
Cert-Expiry oder etcd/controlplane not ready,
describe cluster, Agent-Logs.
Cert-Rotation: RKE2/K3s über
rke2 certificate rotate bzw.
k3s certificate rotate (Dienst stoppen, rotieren,
starten) oder UI „Rotate Certificates“. Interne Zerts
365 d gültig, auto-Rotation beim Start innerhalb
120 d vor Ablauf, ab 120 d Event
CertificateExpirationWarning. Deklarativ:
rkeConfig.rotateCertificates.generation hochzählen,
optional services. CA:
rke2 certificate rotate-ca.
kubectl: Kubeconfig aus der UI proxyt über
Rancher (/k8s/clusters/<id>), authentifiziert per
Rancher-Token. Für Zugriff bei ausgefallenem Rancher:
Authorized Cluster Endpoint
(spec.localClusterAuthEndpoint.enabled), DaemonSet
kube-api-auth als Auth-Webhook am API-Server,
zusätzlicher Kontext in der Kubeconfig. Nur RKE2/K3s, nicht
EKS/AKS/GKE.