Kubernetes-tanúsítványok elforgatása a Azure Stack Hub

Ez a dokumentum útmutatást nyújt egy meglévő AKS-motorfürt tanúsítványait elforgatva, és javaslatokat tesz az eszközként való aks-engine rotate-certs használatra.

Fontos

Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Erre az előzetes verzióra nem vonatkozik szolgáltatói szerződés, és a használata nem javasolt éles számítási feladatok esetén. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Előfeltételek

Ez az útmutató feltételezi, hogy már üzembe helyezett egy fürtöt az AKS-motorral, és a fürt kifogástalan állapotban van.

Tanúsítványrotáció tervezése

A funkció használata során vegye figyelembe, hogy a Kubernetes-vezérlősík nem lesz elérhető a frissítési, érvényesítési és újraindítási lépések során. Ennek megfelelően tervezze meg ezt a karbantartási műveletet. Azt is tervezze, hogy ezt a műveletet átmeneti környezetben hajtja végre, az éles környezettel megegyező konfigurációval, mielőtt éles környezetben próbálkozik.

A művelet megkísérlés előtt tekintse át a következő szempontokat:

  • Hozzá kell férni az API-modellhez ( ), amelyet a vagy a apimodel.json parancs aks-engine deployaks-engine generate generált. Alapértelmezés szerint ez a fájl egy relatív könyvtárba kerül, például a _output/<clustername>/ könyvtárba.

  • Egy aks-engine rotate-certs művelet az API-kiszolgáló leállását okozza.

  • aks-engine rotate-certs A olyan API-modellt vár, amely megfelel a fürt aktuális állapotának. aks-engine rotate-certs A távoli parancsokat hajt végre a fürtcsomópontokon, és az API-modell információival hoz létre biztonságos SSH-kapcsolatot. aks-engine rotate-certs A emellett az eredeti üzemelő példánynak megfelelően elnevezett erőforrásokra is támaszkodik, például a virtuális gépeknek követniük kell a által aks-engine megadott aks-engine elnevezést.

  • aks-engine rotate-certs a tanúsítványrotáció során működő kapcsolatra támaszkodik a fürtvezérlő síkhoz:

    • A folyamat egyes lépésének ellenőrzése.
    • Fürterőforrások, például kube-rendszerpodok és szolgáltatásfiók-jogkivonatok újraindítása/újbóli létrehozása.

    Ha egy külső hozzáféréssel nem elérhető virtuális hálózatban található fürt tanúsítványait forgatja le, a futtatását egy olyan gazdagépről kell futtatnia, amely hálózati hozzáféréssel rendelkezik a vezérlősíkhoz, például egy jumpbox virtuális gépről, amely a fő virtuális gépekkel azonos virtuális hálózaton aks-engine rotate-certs található.

  • Ha éles környezetben használja a-t, javasoljuk, hogy egy azonos specifikációknak megfelelő fürtön tesztelje aks-engine rotate-certs a tanúsítványrotációt. Ez azt jelenti, hogy a fürt ugyanazokkal a fürtkonfigurációval, az AKS-motor parancssori eszközének ugyanazon verziójával és az engedélyezett bővítményekkel azonos készlettel készült, mint az éles fürt a tanúsítványrotáció végrehajtása előtt. Az AKS-motor különböző fürtkonfigurációkat támogat, és az AKS-motorcsapat által futtatott teljes tesztelés mértéke gyakorlatilag nem fed le minden lehetséges konfigurációt. Ezért javasoljuk, hogy egy átmeneti környezetben győződjön meg arról, hogy az adott fürtkonfiguráció működik, mielőtt megkíséreli a műveletet aks-engine rotate-certs az éles fürtön.

  • aks-engine rotate-certs nem aks-engine rotate-certs a visszamenőleges kompatibilitást. Ha az aks-engine 0.60.x verzióval telepítette az üzembe helyezést, érdemesebb a tanúsítványrotációs folyamatot a 0.60.x verzióval végrehajtani.

  • Az új tanúsítványkészletek lekérése Key Vault jelenleg nem támogatott.

  • Használjon megbízható hálózati kapcsolatot. aks-engine rotate-certs több távoli parancs végrehajtását igényli, amelyek potenciális hibáknak vannak kitéve, főleg akkor, ha a fürtcsomópontokhoz való kapcsolódás nem megbízható. A aks-engine rotate-certs célként használt virtuális gépről való futtatás Azure Stack csökkentheti az átmeneti problémák előfordulását.

Paraméterek

Paraméter Kötelező Leírás
--api-model igen A várt fürtkonfigurációt deklaráló API-modell (fürtdefiníció) relatív elérési útja.
--ssh-host igen Egy SSH-tartományvezérlő teljes tartományneve (FQDN) vagy IP-címe, amely a fürt összes csomópontját el tudja érni.
--linux-ssh-private-key igen Egy érvényes titkos SSH-kulcs elérési útja a fürt Linux-csomópontjainak eléréséhez.
--location igen A fürt üzembe helyezésének helye az Azure-ban.
--subscription-id igen Azure-előfizetés, amelyben a fürt infrastruktúra üzembe helyezése meg van stb.
--resource-group igen Az Azure-erőforráscsoport, ahol a fürt infrastruktúra üzembe helyezése meg van stb.
--client-id Függ A szolgáltatásnév ügyfél-azonosítója. Kötelező, ha az auth-method client_secret vagy client_certificate.
--client-secret Függ A szolgáltatásnév titkos ügyféltitkja. Kötelező, ha az auth-method client_secret.
--azure-env Függ A célfelhő neve. Nem kötelező, ha a célfelhő az AzureCloud.
--certificate-profile nem Az új tanúsítványkészletet tartalmazó JSON-fájl relatív elérési útja.
--force nem Kényszerítsen végrehajtást akkor is, ha az API-kiszolgáló nem válaszol.

Egyszerű lépések a tanúsítványok váltogatása érdekében

Miután elolvasta az összes követelményt,futtassa a következőt a megfelelő argumentumokkal:

./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éldául:

./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

Hibaelhárítás

Ha a tanúsítványrotációs folyamat egy hiba vagy átmeneti probléma , például a hálózati kapcsolat miatt leáll a befejezés előtt, a jelzővel biztonságosan aks-engine rotate-certs--force újrafuttathatja a folyamatot.

Azt is figyelje meg, hogy minden lépés kimenetét naplózza aks-engine rotate-certs a /var/log/azure/rotate-certs.log fájlban (Linux) és c:\\k\\rotate-certs.log (Windows).

További információ arról, hogy mi történik a háttérben a művelet futtatásakor, vagy további testreszabási információkért lásd: Under The Hood.

Következő lépések