Obměna certifikátů Kubernetes v Azure Stack Hub

Tento dokument obsahuje pokyny k obměně certifikátů v existujícím clusteru modulu AKS a doporučení pro použití jako aks-engine rotate-certs nástroje.

Důležité

Tato funkce je aktuálně ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro úlohy v produkčním prostředí. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

V této příručce se předpokládá, že jste už nasadili cluster pomocí modulu AKS a cluster je v dobrém stavu.

Plánování rotace certifikátů

Při zvažování použití této funkce je třeba mít na paměti, že během kroků aktualizace, ověření a restartování nebude k dispozici řídicí rovina Kubernetes. Tuto operaci údržby naplánujte odpovídajícím způsobem. Před pokusem o nasazení v produkčním prostředí také naplánujte spuštění této operace v pracovním prostředí se stejnou konfigurací jako v produkčním prostředí.

Než se pokusíte o tuto operaci, projděte si následující aspekty:

  • Budete potřebovat přístup k modelu rozhraní API ( apimodel.json ), který byl vygenerován příkazy aks-engine deploy nebo aks-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ýpadky 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 také spoléhá na to, že některé prostředky budou pojmenovány v souladu s původním nasazením, například virtuální počítače musí dodržovat pojmenování poskytované aks-engine v aks-engine .

  • aks-engine rotate-certs spoléhá na funkční připojení k řídicí rovině clusteru během rotace certifikátů:

    • Ověření jednotlivých kroků 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 vnější přístup, musíte spustit 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í aks-engine rotate-certs počítače.

  • Pokud používáte v produkčním prostředí, doporučuje se chyslat test rotace certifikátů v clusteru, který byl sestaven aks-engine rotate-certs 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 sadu povolených doplňků jako váš produkční cluster před provedením rotace certifikátů. Modul AKS podporuje různé konfigurace clusteru a rozsah end-to-end testování, který tým modulu AKS spouští, nemůže prakticky pokrýt každou možnou konfiguraci. Proto se před pokusem o operaci na produkčním clusteru doporučuje v pracovním prostředí, se kterou vaše konkrétní konfigurace aks-engine rotate-certs clusteru pracuje.

  • aks-engine rotate-certsaks-engine rotate-certs zpětnou kompatibilitu. Pokud jste nasadili s aks-engine verze 0.60.x, měli byste preferovat provádění procesu rotace certifikátů s verzí 0.60.x.

  • Načtení nové sady certifikátů z Key Vault se v tuto chvíli nepodporuje.

  • 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 může dojít k selhání, 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 Azure Stack může snížit 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 dostat ke všem uzlům v clusteru.
--linux-ssh-private-key ano Cesta k platnému privátnímu klíči SSH pro přístup k linuxových uzlům clusteru.
--location ano Umístění Azure, kde 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 objektu služby. Vyžaduje se, pokud je ověřovací metoda nastavená na client_secret nebo client_certificate.
--client-secret Závisí Tajný kód klienta objektu služby. Vyžaduje se, pokud je ověřovací metoda nastavená na client_secret.
--azure-env Závisí Název cílového cloudu. Volitelné, pokud je cílovým cloudem AzureCloud.
--certificate-profile ne Relativní cesta k souboru JSON obsahujícímu novou sadu certifikátů.
--force ne Vynutit spuštění i v případě, že server rozhraní API neodpovídá.

Jednoduché kroky obměně certifikátů

Jakmile si přečtete všechny požadavky,spusťte 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>

Napří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

Řešení potíží

Pokud se proces obměny 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í, můžete ho bezpečně spustit znovu aks-engine rotate-certs pomocí --force příznaku .

Všimněte si aks-engine rotate-certs také, že protokoluje výstup každého kroku v souboru /var/log/azure/rotate-certs.log (Linux) c:\\k\\rotate-certs.log a (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 pokličkou.

Další kroky