AKS – Reset Service Principal

By | December 15, 2020

AKS kurulumu sırasında kullanılan service principal’lara ait key’lerin süresi belirli bir süre sonra durabilir. Böyle bir durumda cluster üzerinde yaptığınız ve Azure platformunu editleyecek konfigürasyonlar çalışmaz. Yani cluster ilgili sp’yi kullanıp Azure resource’larına erişemez.

Bir örnek vermek gerekirse bu durumu cluster üzerine Azure platformu üzerinden disk kullanacak bir deployment sırasında yaşadım. Deployment sonrasında pod’lar running duruma geçmedi. Pod’lar üzerinde gerekli kontrolleri sağladığımda cluster’ın disk provision edemediğini gördüm ve SP ile ilgili hataya rastladım. Sonrasında yaptığım araştırmalarda SP üzerindeki secret’ın süresinin dolduğunu ve yenilemem gerktiğini farkettim.

Böyle bir durumda service principal’ın cluster üzerinde yeniden konfigüre edilmesi gerekir.

Bu konfigürasyonun ilk aşamasında süresi dolan secret yerine SP üzerinde yeni bir secret generate edilmelidir.

Bu işlemin ardından SP’ye ait id ve secret birer değişkene atanmalıdır.

SP_ID=$(az aks show --resource-group <rg name> --name <cluster name> --query servicePrincipalProfile.clientId -o tsv)
SP_SECRET=$(az ad sp credential reset --name $SP_ID --query password -o tsv)

İki gerekli değişken elde edildikten sonra cluster üzerinde SP’yi upgrade etmek için aşağıdaki komutu çalıştırabilirsiniz. Komut biraz süre alacaktır. Ama sonrasında cluster’ınız düzgün şekilde Azure platformu üzerindeki resource’ları yönetebilecektir.

az aks update-credentials \
    --resource-group <rg name> \
    --name <cluster name> \
    --reset-service-principal \
    --service-principal $SP_ID \
    --client-secret $SP_SECRET

Fırat

Leave a Reply

Your email address will not be published. Required fields are marked *