Obměna certifikátů Kubernetes pomocí modulu AKS ve službě Azure Stack Hub
Tento dokument obsahuje pokyny k obměně certifikátů v existujícím clusteru AKS Engine a doporučení pro použití aks-engine rotate-certs
tohoto nástroje.
Požadavky
Tato příručka předpokládá, že jste už nasadili cluster pomocí modulu AKS a že je cluster v dobrém stavu.
Plánování obměně certifikátů
Při zvažování použití této funkce mějte na paměti, že během aktualizace, ověřování a restartování nebude k dispozici řídicí rovina Kubernetes. Naplánujte tuto operaci údržby odpovídajícím způsobem. Před pokusem o uvedení do produkčního prostředí naplánujte také provedení této operace v přípravném prostředí se stejnou konfigurací jako v produkčním prostředí.
Před pokusem o tuto operaci si projděte následující aspekty:
Poznámka
V případě AKSe verze 0.75.3 a vyšší začínají aks-engine-azurestack
příkazy pro obměnu certifikátů na místo aks-engine
.
Budete potřebovat přístup k modelu rozhraní API (
apimodel.json
), který byl vygenerován příkazyaks-engine deploy
neboaks-engine generate
. Ve výchozím nastavení je tento soubor umístěn do relativního adresáře, například_output/<clustername>/
.Operace
aks-engine rotate-certs
způsobí výpadek serveru rozhraní API.aks-engine rotate-certs
očekává model rozhraní API, který odpovídá aktuálnímu stavu clusteru.aks-engine rotate-certs
provádí vzdálené příkazy na uzlech clusteru a používá informace o modelu rozhraní API k navázání zabezpečeného připojení SSH.aks-engine rotate-certs
spoléhá také na to, že některé prostředky budou pojmenovány v souladu s původnímaks-engine
nasazením, například virtuální počítače musí dodržovat názvy poskytované nástrojemaks-engine
.aks-engine rotate-certs
spoléhá na funkční připojení k řídicí rovině clusteru během obměně certifikátů:- K ověření každého kroku procesu.
- Restartování nebo opětovné vytvoření prostředků clusteru, jako jsou pody kube-system a tokeny účtu služby.
Pokud obměníte certifikáty clusteru ve virtuální síti uzavřené pro přístup zvenčí, musíte spustit
aks-engine rotate-certs
z hostitelského virtuálního počítače, který má síťový přístup k řídicí rovině, například virtuální počítač jumpboxu, který se nachází ve stejné virtuální síti jako hlavní virtuální počítače.Pokud používáte
aks-engine rotate-certs
v produkčním prostředí, doporučujeme v clusteru vytvořit test obměně certifikátů, který byl sestaven podle stejných specifikací. To znamená, že cluster je sestaven se stejnou konfigurací clusteru, stejnou verzí nástroje příkazového řádku modulu AKS a stejnou sadou povolených doplňků jako produkční cluster před provedením obměny certifikátů. Modul AKS podporuje různé konfigurace clusterů a rozsah kompletního testování, které tým modulu AKS provozuje, nemůže prakticky pokrýt všechny možné konfigurace. Proto doporučujeme, abyste se v přípravném prostředí před pokusem o operaci v produkčním clusteru ujistili, že vaše konkrétní konfigurace clusteru fungujeaks-engine rotate-certs
s.aks-engine rotate-certs
nezaručuje zpětnou kompatibilitu. Pokud jste nasadili aks-engine verze 0.60.x, měli byste dát přednost procesu obměně certifikátů s verzí 0.60.x.Načtení nové sady certifikátů z Key Vault není v tuto chvíli podporováno.
Používejte spolehlivé síťové připojení.
aks-engine rotate-certs
vyžaduje spuštění několika vzdálených příkazů, u kterých dochází k možným chybám, většinou v případě, že připojení k uzlům clusteru není spolehlivé. Spuštěníaks-engine rotate-certs
z virtuálního počítače spuštěného na cílovém razítku služby Azure Stack může omezit výskyt přechodných problémů.
Parametry
Parametr | Povinné | Popis |
---|---|---|
--api-model | ano | Relativní cesta k modelu rozhraní API (definice clusteru), který deklaruje očekávanou konfiguraci clusteru. |
--ssh-host | ano | Plně kvalifikovaný název domény (FQDN) nebo IP adresa naslouchacího procesu SSH, který se může spojit se všemi uzly v clusteru. |
--linux-ssh-private-key | ano | Cesta k platnému privátnímu klíči SSH pro přístup k uzlům clusteru s Linuxem |
--Umístění | ano | Umístění Azure, ve kterém je cluster nasazený. |
--subscription-id | ano | Předplatné Azure, ve kterém je nasazená infrastruktura clusteru. |
--resource-group | ano | Skupina prostředků Azure, ve které je nasazená infrastruktura clusteru. |
--client-id | Závisí | ID klienta instančního objektu. Vyžaduje se, pokud je metoda auth-method nastavená na client_secret nebo client_certificate. |
--client-secret | Závisí | Tajný klíč klienta instančního objektu. Vyžaduje se, pokud je metoda auth-method nastavená na client_secret. |
--azure-env | Závisí | Název cílového cloudu. Volitelné, pokud je cílový cloud AzureCloud. |
--certificate-profile | ne | Relativní cesta k souboru JSON obsahujícímu novou sadu certifikátů |
--Síla | ne | Vynuťte spuštění i v případě, že server rozhraní API nereaguje. |
Jednoduchý postup obměna certifikátů
V případě modulu AKS verze 0.75.3 a novějšího spusťte aks-engine-azurestack rotate-certs
po přečtení všech požadavků příslušné argumenty (viz níže).
V případě modulu AKS verze 0.73.0 a novějších po přečtení všech požadavků spusťte aks-engine rotate-certs
příkaz s příslušnými argumenty:
./bin/aks-engine rotate-certs \
--location <resource-group-location> \
--api-model <generated-apimodel.json> \
--linux-ssh-private-key <private-SSH-key> \
--ssh-host <apiserver-URI> \
--resource-group <resource-group-name> \
--client-id <service-principal-id> \
--client-secret <service-principal-secret> \
--subscription-id <subscription-id> \
--azure-env <cloud-name>
Příklad:
./bin/aks-engine rotate-certs \
--location "westus2" \
--api-model "_output/my-cluster/apimodel.json" \
--linux-ssh-private-key "~/.ssh/id_rsa" \
--ssh-host "my-cluster.westus2.cloudapp.azure.com"\
--resource-group "my-cluster" \
--client-id "12345678-XXXX-YYYY-ZZZZ-1234567890ab" \
--client-secret "12345678-XXXX-YYYY-ZZZZ-1234567890ab" \
--subscription-id "12345678-XXXX-YYYY-ZZZZ-1234567890ab" \
--azure-env "AzureStackCloud" # optional if targeting AzureCloud
Obměna front-proxy
certifikátů
Poznámka
V případě AKSe verze 0.75.3 a vyšší začínají aks-engine-azurestack
příkazy pro obměnu certifikátů na místo aks-engine
.
Modul AKS vytvoří samostatnou infrastrukturu front-proxy
veřejných klíčů pro jako součást procesu spouštění uzlu a doručí je do všech uzlů prostřednictvím etcd
. K efektivnímu opakovanému použití této funkce rotate-certs
je nutné nahradit certifikáty uložené v etcd
nástroji . Platnost front-proxy
certifikátů vyprší po 30 letech. aks-engine rotate-certs
obměňuje front-proxy certifikáty.
Řešení potíží
Poznámka
V případě AKSe verze 0.75.3 a vyšší začínají aks-engine-azurestack
příkazy pro obměnu certifikátů na místo aks-engine
.
Pokud se proces obměně certifikátů zastaví před dokončením kvůli selhání nebo přechodnému problému, například kvůli síťovému připojení, je bezpečné ho spustit aks-engine rotate-certs
znovu pomocí příznaku --force
.
Všimněte si také, že aks-engine rotate-certs
protokoluje výstup každého kroku v souboru /var/log/azure/rotate-certs.log
(Linux) a c:\\k\\rotate-certs.log
(Windows).
Další informace o tom, co se děje pod pokličkou při spuštění této operace nebo pro další přizpůsobení, najdete v tématu Pod kapotou.
Další kroky
- Přečtěte si o modulu AKS ve službě Azure Stack Hub.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro