Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Kubernetes Service (AKS) gebruikt certificaten voor verificatie met veel van de onderdelen. U moet deze certificaten regelmatig roteren om beveiligings- of beleidsredenen. In dit artikel leest u hoe certificaatrotatie werkt in uw AKS-cluster.
Belangrijk
Vanaf 30 maart 2026 biedt Azure Kubernetes Service (AKS) geen ondersteuning meer voor de aks-disable-kubelet-serving-certificate-rotation=true knooppuntgroeptag om KSCR (Kubelet Serving Certificate Rotation) uit te schakelen. U kunt nieuwe knooppuntgroepen maken met behulp van deze tag, maar AKS respecteert deze niet. Dit gedrag betekent dat de knooppuntgroepen worden gemaakt met KSCR ingeschakeld. Voor bestaande knooppuntgroepen wordt KSCR automatisch ingeschakeld bij de volgende reimagebewerking. Voor deze datum kunt u uw knooppuntgroepen bijwerken met behulp van de opdracht [az aks nodepool update][az-aks-nodepool-update] met de aks-disable-kubelet-serving-certificate-rotation=true tag. Om u voor te bereiden op de verwijdering, moet u uw workloads bijwerken met het juiste certificaatpad. Zie het probleem met Retirement GitHub voor meer informatie. Als u op de hoogte wilt blijven van aankondigingen en updates, volg de AKS-release-opmerkingen.
Vereiste voorwaarden
Voor dit artikel is Azure CLI versie 2.0.77 of hoger vereist. Controleer uw versie met behulp van de
az --versionopdracht. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.Configureer
kubectlom verbinding te maken met uw AKS-cluster met behulp van hetaz aks get-credentialscommando:az aks get-credentials --resource-group <resource-group> --name <cluster-name>
AKS-certificaten, certificeringsinstanties en serviceaccounts
AKS genereert en gebruikt de volgende certificaten, certificeringsinstanties (CA) en serviceaccounts (SA):
- De AKS-API-server maakt een CA met de naam Cluster-CA, die certificaten ondertekent voor eenrichtingscommunicatie van de API-server naar kubelet.
- Elke kubelet maakt een AANVRAAG voor certificaatondertekening (CSR), die de cluster-CA ondertekent voor communicatie van de kubelet naar de API-server.
- De API-aggregator gebruikt de cluster-CA om certificaten uit te geven voor communicatie met andere API's. De API-aggregator kan ook een eigen CA hebben voor het uitgeven van deze certificaten, maar momenteel wordt de cluster-CA gebruikt.
- Elk agentknooppunt maakt gebruik van een SA-token, dat door de cluster-CA wordt ondertekend.
- De
kubectlclient heeft een certificaat voor communicatie met het AKS-cluster.
Microsoft onderhoudt alle certificaten die in deze sectie worden genoemd, met uitzondering van het clustercertificaat.
Vervaldatums van certificaat
Belangrijk
De vervaldatum voor uw certificaten is afhankelijk van wanneer uw AKS-cluster is gemaakt:
- AKS-clusters die vóór mei 2019 zijn gemaakt, hebben certificaten die na twee jaar verlopen.
- AKS-clusters die na mei 2019 zijn gemaakt, hebben cluster-CA-certificaten die na 30 jaar verlopen.
U kunt controleren wanneer uw cluster is gemaakt met behulp van de kubectl get nodes opdracht, waarin u de Age agentknooppunten ziet.
Vervaldatum van clustercertificaat controleren
Controleer de vervaldatum van het clustercertificaat met behulp van de
kubectl config viewopdracht.kubectl config view --raw -o jsonpath="{.clusters[?(@.name == '')].cluster.certificate-authority-data}" | base64 -d | openssl x509 -text | grep -A2 Validity
Vervaldatum van API-servercertificaat controleren
Controleer de vervaldatum van het API-servercertificaat met behulp van de volgende
curlopdracht:curl https://{apiserver-fqdn} -k -v 2>&1 | grep expire
De vervaldatum van het knooppuntcertificaat van de virtuele machine (VM) controleren
Controleer de vervaldatum van het knooppuntcertificaat van de VM-agent met behulp van de
az vm run-command invokeopdracht.Belangrijke parameters in deze opdracht: -
--resource-group <node-resource-group>: de resourcegroep die het VM-agentknooppunt bevat. ---name <vm-name>: De naam van het VM-agentknooppunt. ---scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate": het script waarmee de vervaldatum van het API-servercertificaat wordt opgehaald dat zich bevindt op/etc/kubernetes/certs/apiserver.crt.az vm run-command invoke --resource-group <node-resource-group> --name <vm-name> --command-id RunShellScript --query 'value[0].message' -otsv --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
Controleren of het certificaat verloopt voor het azure Virtual Machine Scale Set-agentknooppunt
Controleer de vervaldatum van het knooppuntcertificaat van de Azure Virtual Machine Scale Set-agent met behulp van de
az vmss run-command invokeopdracht.Belangrijke parameters in deze opdracht: -
--resource-group <node-resource-group>De resourcegroep die het knooppunt van de Azure Virtual Machine Scale Set-agent bevat. ---name <vmss-name>: de naam van de virtuele machineschaalset van Azure. ---instance-id 1: de instantie-id van het knooppunt van de Azure Virtual Machine Scale Set-agent. ---scripts "openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate": Het script waarmee de vervaldatum van het kubelet-clientcertificaat wordt opgehaald dat zich bevindt op/var/lib/kubelet/pki/kubelet-client-current.pem.az vmss run-command invoke --resource-group <node-resource-group> --name <vmss-name> --command-id RunShellScript --instance-id 1 --scripts "openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate" --query "value[0].message"
Uw clustercertificaten handmatig roteren
Roteren alle certificaten, CA's en SA's in uw cluster met behulp van de
az aks rotate-certsopdracht.az aks rotate-certs --resource-group <resource-group> --name <cluster-name>Belangrijk
Met de
az aks rotate-certsopdracht worden alle agentknooppunten, Azure Virtual Machine Scale Sets en schijven opnieuw gemaakt. Deze opdracht kan ook tot 30 minuten downtime veroorzaken voor uw AKS-cluster. Als de opdracht mislukt voordat deze is voltooid, gebruikt u de [az aks show][az-aks-show] opdracht om de status van het cluster te controleren, dieCertificate Rotatingis. Als het cluster de status Mislukt heeft, voert u deaz aks rotate-certsopdracht opnieuw uit om uw certificaten opnieuw te draaien.Controleer of de oude certificaten niet meer geldig zijn met behulp van een
kubectlopdracht. In het volgende voorbeeld wordt dekubectl get nodesopdracht gebruikt:kubectl get nodesAls u de gebruikte certificaten van
kubectlniet hebt bijgewerkt, ziet u een fout zoals in de volgende voorbeelduitvoer:Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "ca")Werk het certificaat bij dat wordt gebruikt met
kubectlbehulp van deaz aks get-credentialsopdracht met de--overwrite-existingvlag.az aks get-credentials --resource-group <resource-group> --name <cluster-name> --overwrite-existingControleer of de certificaten zijn bijgewerkt met behulp van de
kubectl getopdracht.kubectl get nodes
Als u services hebt die boven op AKS worden uitgevoerd, moet u mogelijk ook hun certificaten bijwerken.
Het kubelet-servercertificaat vernieuwen
Wanneer u het kubelet-servicecertificaat roteert, staat AKS kubelet server Transport Layer Security (TLS) Bootstrapping toe voor zowel bootstrapping- als roterende servicecertificaten die zijn ondertekend door de cluster-CA.
Beperkingen voor de rotatie van kubelet-certificaten
- Ondersteund op Kubernetes versie 1.27 en hoger.
- Niet ondersteund wanneer de knooppuntgroep een momentopname van een knooppuntgroep gebruikt op basis van een knooppuntinstallatiekopie die ouder is dan
202501.12.0. - U kunt deze functie niet handmatig inschakelen. Kubelet voor certificaatrotatie is standaard ingeschakeld voor bestaande knooppuntgroepen wanneer ze hun eerste upgrade uitvoeren naar kubernetes versie 1.27 of hoger. Kubelet voor certificaatrotatie is standaard ingeschakeld voor nieuwe knooppuntgroepen met Kubernetes versie 1.27 of hoger. Om te zien of kubelet-serve certificaatrotatie is ingeschakeld in uw regio, controleer dan de AKS-releases.
Controleren of kubelet-certificaatrotatie is ingeschakeld
Elk knooppunt waarvoor de functie is ingeschakeld, krijgt automatisch het label kubernetes.azure.com/kubelet-serving-ca=cluster.
Controleer of de labels zijn ingesteld met behulp van de
kubectl get nodes -L kubernetes.azure.com/kubelet-serving-caopdracht.kubectl get nodes -L kubernetes.azure.com/kubelet-serving-caIn de uitvoer moet het label
kubernetes.azure.com/kubelet-serving-caworden weergegeven met de waardeclustervoor elk agentknooppunt.
Verifiëren dat kubelet TLS Bootstrapping werkt
Controleer of het opstartproces plaatsvindt met behulp van de
kubectl getopdracht.kubectl get csr --field-selector=spec.signerName=kubernetes.io/kubelet-servingIn de uitvoer moeten alle actieve CSR's de
Approved,Issuedstatus hebben, wat aangeeft dat de CSR is goedgekeurd en een ondertekend certificaat heeft ontvangen. De dienende CSRs hebben een ondertekenaarsnaam vankubernetes.io/kubelet-serving. Voorbeeld:NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION csr-1ab2c 113s kubernetes.io/kube-apiserver-client-kubelet system:bootstrap:uoxr9r none Approved,Issued csr-defgh 111s kubernetes.io/kubelet-serving system:node:akswinp7000000 none Approved,Issued csr-ij3kl 46m kubernetes.io/kubelet-serving system:node:akswinp6000000 none Approved,Issued csr-mn4op 46m kubernetes.io/kube-apiserver-client-kubelet system:bootstrap:ho7zyu none Approved,Issued
Controleer of kubelet gebruikmaakt van een certificaat dat is verkregen van TLS Bootstrapping van de server
Controleer of de kubelet een servicecertificaat gebruikt dat is ondertekend door de cluster-CA met behulp van de
kubectl debugopdracht.kubectl debug node/<node> -ti --image=mcr.microsoft.com/azurelinux/base/core:3.0 -- ls -l /host/var/lib/kubelet/kubelet-server-current.pemAls er een
kubelet-server-current.pemsymlink bestaat, dan heeft de kubelet zijn eigen servercertificaat gebootstrapped/ vernieuwd en de Cluster-CA heeft het ondertekend.
Kubelet-certificaatrotatie uitschakelen
Schakel kubelet-certificaatrotatie uit door de knooppuntgroep bij te werken met behulp van de
az aks nodepool updateopdracht met deaks-disable-kubelet-serving-certificate-rotation=truetag.az aks nodepool update --cluster-name <cluster-name> --resource-group <resource-group> --name <node-pool-name> --tags aks-disable-kubelet-serving-certificate-rotation=true
- Stel uw knooppunten opnieuw in met behulp van een upgrade van een knooppuntinstallatiekopie of door de pool te schalen naar nul exemplaren en vervolgens een back-up te maken van de gewenste waarde.
Automatische rotatie van certificaat
Houd rekening met de volgende overwegingen bij het gebruik van automatischerotatie van certificaten:
- Als u een bestaand cluster hebt, moet u dat cluster upgraden om automatischerotatie van certificaten in te schakelen.
- Schakel TLS Bootstrap niet uit om automatischerotatie van certificaten ingeschakeld te houden.
- Als het cluster een gestopte status heeft tijdens automatische rotatie van certificaten, worden alleen de certificaten van de control plane geroteerd. In dit geval moet u de knooppuntgroep opnieuw maken na certificaatrotatie om de certificaatrotatie van de knooppuntgroep te initiëren.
- Voor AKS-clusters die na maart 2022 zijn gemaakt of bijgewerkt, roteert AKS automatisch certificaten die geen CA-certificaten zijn op zowel het besturingsvlak als de agentknooppunten binnen 80% van de geldigheidstermijn van het clientcertificaat voordat ze verlopen, zonder downtime voor het cluster.
Controleren of TLS Bootstrapping is ingeschakeld voor de huidige agentknooppuntgroep
Controleer of TLS Bootstrapping is ingeschakeld voor uw cluster door naar een van de volgende paden te gaan:
-
Op een Linux-knooppunt:
/var/lib/kubelet/bootstrap-kubeconfigof/host/var/lib/kubelet/bootstrap-kubeconfig -
Op een Windows-knooppunt:
C:\k\bootstrap-config
Zie Verbinding maken met AKS-clusterknooppunten (Azure Kubernetes Service) voor onderhoud of probleemoplossing voor meer informatie.
Notitie
Het bestandspad kan veranderen naarmate kubernetes-versies zich ontwikkelen.
-
Op een Linux-knooppunt:
Zodra een regio is geconfigureerd, maakt u een nieuw cluster of werkt u een bestaand cluster bij om automatischerotatie van certificaten in te stellen voor het clustercertificaat. U moet het besturingsvlak en de knooppuntgroep upgraden om deze functie in te schakelen.