Azure Stack Hub'da Kubernetes sertifikalarını döndürme

Bu belge, var olan bir AKS Altyapısı kümesindeki sertifikaları döndürme konusunda rehberlik ve araç olarak benimsemeyi aks-engine rotate-certs kullanmaya yönelik öneriler sağlar.

Önemli

Bu özellik şu anda genel önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yüklerinde kullanılması önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Önkoşullar

Bu kılavuzda AKS altyapısını kullanarak zaten bir küme dağıttığınız ve kümenin iyi durumda olduğu varsayılır.

Sertifika döndürmeyi planlama

Bu işlevi kullanmayı düşünürken, güncelleştirme, doğrulama ve yeniden başlatma adımları sırasında Kubernetes denetim düzleminin kullanılamayacağını unutmayın. Bu bakım işlemini uygun şekilde planlayın. Ayrıca, üretim ortamında denemeden önce bu işlemi üretim ortamına eşit yapılandırmaya sahip bir hazırlama ortamında yürütmeyi planlayın.

Bu işlemi denemeden önce aşağıdaki noktaları gözden geçirin:

  • veya aks-engine generatekomutları aks-engine deploy tarafından oluşturulan API modeline (apimodel.json) erişmeniz gerekir. Varsayılan olarak bu dosya gibi _output/<clustername>/göreli bir dizine yerleştirilir.

  • Bir aks-engine rotate-certs işlem API sunucusu kapalı kalma süresine neden olur.

  • aks-engine rotate-certs kümenin geçerli durumuna uyan bir API modeli bekler. aks-engine rotate-certs küme düğümlerinde uzak komutları yürütür ve güvenli bir SSH bağlantısı kurmak için API modeli bilgilerini kullanır. aks-engine rotate-certs ayrıca, özgün aks-engine dağıtıma uygun olarak adlandırılacak bazı kaynaklara da dayanır; örneğin, VM'lerin tarafından aks-enginesağlanan adlandırmayı izlemesi gerekir.

  • aks-engine rotate-certs sertifika döndürme sırasında küme denetim düzlemine çalışan bir bağlantıya dayanır:

    • İşlemin her adımını doğrulamak için.
    • Kube-system podları ve hizmet hesabı belirteçleri gibi küme kaynaklarını yeniden başlatmak/yeniden oluşturmak için.

    Dış erişime kapalı bir sanal ağdaki bir kümenin sertifikalarını döndürdüğünüzde, denetim düzlemine ağ erişimi olan bir konak VM'den( örneğin, ana VM'lerle aynı sanal ağda bulunan bir sıçrama kutusu VM'sinden) çalışmanız aks-engine rotate-certs gerekir.

  • Üretimde kullanıyorsanız aks-engine rotate-certs , aynı belirtimlere göre oluşturulmuş bir kümede sertifika döndürme testi hazırlamanız önerilir. Diğer bir ifadeyle küme, sertifika döndürme işlemi gerçekleştirilmeden önce aynı küme yapılandırması, AKS altyapısı komut satırı aracının aynı sürümü ve üretim kümenizle aynı etkin eklenti kümesiyle oluşturulur. AKS altyapısı farklı küme yapılandırmalarını destekler ve AKS altyapısı takımının çalıştırmış olduğu uçtan uca test kapsamı, olası tüm yapılandırmaları pratik olarak kapsamaz. Bu nedenle, üretim kümenizde işlemi denemeden önce belirli küme yapılandırmanızın birlikte aks-engine rotate-certs çalıştığı bir hazırlama ortamında emin olmanız önerilir.

  • aks-engine rotate-certs geriye dönük uyumluluğu garanti etmez . aks-engine sürüm 0.60.x ile dağıttıysanız, sertifika döndürme işleminin 0.60.x sürümüyle yürütülmesini tercih etmelisiniz.

  • Key Vault yeni bir sertifika kümesinin getirilmesi bu noktada desteklenmez.

  • Güvenilir bir ağ bağlantısı kullanın. aks-engine rotate-certs , büyük ölçüde küme düğümlerine bağlantı güvenilir değilse olası hatalara tabi olan birden çok uzak komutun yürütülmesini gerektirir. aks-engine rotate-certs Hedef Azure Stack damgası üzerinde çalışan bir VM'den çalıştırmak, geçici sorunların oluşmasını azaltabilir.

Parametreler

Parametre Gerekli Açıklama
--api-model evet Beklenen küme yapılandırmasını bildiren API modelinin (küme tanımı) göreli yolu.
--ssh-host evet Kümedeki tüm düğümlere ulaşabilen bir SSH dinleyicisinin tam etki alanı adı (FQDN) veya IP adresi.
--linux-ssh-private-key evet Kümenin Linux düğümlerine erişmek için geçerli bir özel SSH anahtarının yolu.
--location evet Kümenin dağıtıldığı Azure konumu.
--subscription-id evet Kümenin dağıtıldığı Azure aboneliği.
--resource-group evet Kümenin dağıtıldığı Azure kaynak grubu.
--client-id -sına bağ -lıdır Hizmet sorumlusu istemci kimliği. auth-yöntemi client_secret veya client_certificate olarak ayarlandıysa gereklidir.
--client-secret -sına bağ -lıdır Hizmet sorumlusu istemci gizli dizisi. auth-yöntemi client_secret olarak ayarlandıysa gereklidir.
--azure-env -sına bağ -lıdır Hedef bulut adı. Hedef bulut AzureCloud ise isteğe bağlıdır.
--certificate-profile hayır Yeni sertifika kümesini içeren bir JSON dosyasının göreli yolu.
--force hayır API Sunucusu yanıt vermese bile yürütmeyi zorla.

Sertifikaları döndürmek için basit adımlar

Tüm gereksinimleri okuduktan sonra uygun bağımsız değişkenlerle komutunu çalıştırın aks-engine rotate-certs :

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

Örnek:

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

Sertifikaları döndürme front-proxy

AKS altyapısı, düğüm önyükleme işleminin front-proxy bir parçası olarak için ayrı bir PKI oluşturur ve bunları aracılığıyla etcdtüm düğümlere teslim eder. Bu işlevi etkili bir şekilde yeniden kullanmak için içinde rotate-certsetcddepolanan sertifikaların değiştirilmesi gerekir. Sertifikaların front-proxy süresi 30 yıl sonra dolar. aks-engine rotate-certs ön proxy sertifikalarını döndürür.

Sorun giderme

Sertifika döndürme işlemi, ağ bağlantısı gibi bir hata veya geçici bir sorun nedeniyle tamamlanmadan önce durursa, bayrağını kullanarak --force yeniden çalıştırmak aks-engine rotate-certs güvenlidir.

Ayrıca dosyadaki /var/log/azure/rotate-certs.log (Linux) ve c:\\k\\rotate-certs.log (Windows) her adımın çıkışını günlüğe kaydedenlere aks-engine rotate-certs dikkat edin.

Bu işlemi çalıştırırken arka planda neler olduğu hakkında daha fazla bilgi için veya daha fazla özelleştirme için bkz. Under The Hood.

Sonraki adımlar