Kubelogin ile Kubernetes kümeleri için Azure yönetilen kimlik kimlik doğrulamasını etkinleştirme

AKS tarafından yönetilen Microsoft Entra tümleştirmesi, Microsoft Entra tümleştirme işlemini basitleştirir. Daha önce bir istemci ve sunucu uygulaması oluşturmanız gerekiyordu ve Microsoft Entra kiracısının Dizin Okuyucuları rol izinleri ataması gerekiyordu. Artık AKS kaynak sağlayıcısı istemci ve sunucu uygulamalarını sizin için yönetir.

Küme yöneticileri, kullanıcının kimliğine veya dizin grubu üyeliğine göre Kubernetes rol tabanlı erişim denetimini (Kubernetes RBAC) yapılandırabilir. Microsoft Entra kimlik doğrulaması, OpenID Connect ile AKS kümelerine sağlanır. OpenID Connect, OAuth 2.0 protokolünün üzerine kurulmuş bir kimlik katmanıdır. OpenID Connect hakkında daha fazla bilgi için OpenID Connect belgelerine bakın.

Microsoft Entra tümleştirme akışı hakkında daha fazla bilgiyi Microsoft Entra belgelerinde bulabilirsiniz.

Bu makalede, AKS kümenizle Azure kaynakları için yönetilen kimlikleri etkinleştirme ve kullanma hakkında ayrıntılı bilgiler sağlanır.

Sınırlamalar

Aks'de Azure yönetilen kimlik kimlik doğrulamasını tümleştiren kısıtlamalar aşağıdadır.

  • Tümleştirme eklendikten sonra devre dışı bırakılamaz.
  • Tümleşik bir kümeden eski Microsoft Entra ID kümelerine düşürme desteklenmez.
  • Kubernetes RBAC desteği olmayan kümeler tümleştirmeyi ekleyemiyor.

Başlamadan önce

Yönetilen kimlik için AKS eklentisini düzgün yüklemek için aşağıdaki gereksinimlerin karşılanması gerekir.

  • Azure CLI sürüm 2.29.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
  • En düşük 1.18.1 veya sürümüne sahip olmanız gerekirkubectl.kubelogin Azure CLI ve Azure PowerShell modülü ile bu iki komut eklenir ve otomatik olarak yönetilir. Başka bir deyişle, bunlar varsayılan olarak yükseltilir ve çalıştırılması az aks install-cli gerekmez veya önerilmez. Otomatik işlem hattı kullanıyorsanız, doğru veya en son sürüm için yükseltmeleri yönetmeniz gerekir. Kubernetes'in ikincil sürümleri arasındaki fark ve kubectl birden fazla sürüm olmamalıdır. Aksi takdirde, kimlik doğrulama sorunları yanlış sürümde oluşur.
  • Helm kullanıyorsanız minimum helm 3.3 sürümüne ihtiyacınız vardır.
  • Bu yapılandırma, kümeniz için bir Microsoft Entra grubunuz olmasını gerektirir. Bu grup, yönetici izinleri vermek için kümede bir yönetici grubu olarak kaydedilir. Mevcut bir Microsoft Entra grubunuz yoksa komutunu kullanarak az ad group create bir grup oluşturabilirsiniz.

Not

1.24 sürümünden daha yeni bir Kubernetes sürümü kullanan Microsoft Entra tümleşik kümeleri otomatik olarak biçimini kullanır kubelogin . Kubernetes sürüm 1.24'den başlayarak, Microsoft Entra Id kümeleri için varsayılan clusterUser kimlik bilgisi biçimi, execkubelogin yürütme YOLUNDA ikili gerektirir. Microsoft Dışı Entra kümeleri veya 1.24'ten eski bir sürümü çalıştıran Microsoft Entra Id kümeleri için herhangi bir davranış değişikliği yoktur. Mevcut indirilenler kubeconfig çalışmaya devam eder. Varsayılan davranış değişikliğinin üzerine yazmak için clusterUser kimlik bilgileri alınırken isteğe bağlı bir sorgu parametresi biçimi eklenir. Eski kubeconfig biçimini korumanız gerekiyorsa, azure'da biçimi açıkça belirtebilirsiniz.

AKS kümenizde tümleştirmeyi etkinleştirme

Yeni küme oluşturma

  1. komutunu kullanarak az group create bir Azure kaynak grubu oluşturun.

    az group create --name myResourceGroup --location centralus
    
  2. Bir AKS kümesi oluşturun ve komutunu kullanarak az aks create Microsoft Entra grubunuz için yönetim erişimini etkinleştirin.

    az aks create \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-aad \
        --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \
        --generate-ssh-keys
    

    AKS tarafından yönetilen bir Microsoft Entra ID kümesinin başarıyla oluşturulması, yanıt gövdesinde aşağıdaki bölüme sahiptir:

    "AADProfile": {
        "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
        ],
        "clientAppId": null,
        "managed": true,
        "serverAppId": null,
        "serverAppSecret": null,
        "tenantId": "72f9****-****-****-****-****d011db47"
    }
    

Var olan bir kümeyi kullanma

komutunu kullanarak mevcut Kubernetes RBAC özellikli kümenizde AKS tarafından yönetilen Microsoft Entra tümleştirmesini az aks update etkinleştirin. Kümenizde erişimi korumak için yönetici grubunuzu ayarladığınızdan emin olun.

az aks update --resource-group MyResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]

AKS tarafından yönetilen bir Microsoft Entra ID kümesinin başarıyla etkinleştirilmesi, yanıt gövdesinde aşağıdaki bölüme sahiptir:

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

Eski kümeyi tümleştirmeye geçirme

Kümeniz eski Microsoft Entra tümleştirmesi kullanıyorsa, komutuyla AKS tarafından yönetilen Microsoft Entra tümleştirmesine az aks update yükseltebilirsiniz.

Uyarı

Ücretsiz katman kümeleri yükseltme sırasında API sunucusu kapalı kalma süresiyle karşılaşabilir. İş dışı çalışma saatlerinizde yükseltme yapmanızı öneririz. Yükseltmeden sonra kubeconfig içeriği değişir. Yeni kimlik bilgilerini kubeconfig dosyasıyla birleştirmek için komutunu çalıştırmanız az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> gerekir.

az aks update --resource-group myResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]

AKS tarafından yönetilen bir Microsoft Entra ID kümesinin başarılı geçişinin yanıt gövdesinde aşağıdaki bölüm bulunur:

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

Etkin kümenize erişme

  1. komutunu kullanarak az aks get-credentials kümenize erişmek için kullanıcı kimlik bilgilerini alın.

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Oturum açmak için yönergelerinizi izleyin.

  3. Azure CLI'yı kullanacak şekilde ayarlayın kubelogin .

    kubelogin convert-kubeconfig -l azurecli
    
  4. komutuyla kümedeki düğümleri kubectl get nodes görüntüleyin.

    kubectl get nodes
    

kubelogin ile etkileşimli olmayan oturum açma

desteklenmeyen kubectlbazı etkileşimli olmayan senaryolar vardır. Böyle durumlarda, sürekli tümleştirme işlem hatlarını gerçekleştirmek üzere etkileşimli olmayan bir hizmet sorumlusu kimlik bilgileriyle kümeye bağlanmak için kullanın kubelogin .

Not

1.24 sürümünden daha yeni bir Kubernetes sürümü kullanan Microsoft Entra tümleşik kümeleri otomatik olarak biçimini kullanır kubelogin . Kubernetes sürüm 1.24'den başlayarak, Microsoft Entra Id kümeleri için varsayılan clusterUser kimlik bilgisi biçimi, execkubelogin yürütme YOLUNDA ikili gerektirir. Microsoft Dışı Entra kümeleri veya 1.24'ten eski bir sürümü çalıştıran Microsoft Entra Id kümeleri için herhangi bir davranış değişikliği yoktur. Mevcut indirilenler kubeconfig çalışmaya devam eder. Varsayılan davranış değişikliğinin üzerine yazmak için clusterUser kimlik bilgileri alınırken isteğe bağlı bir sorgu parametresi biçimi eklenir. Eski kubeconfig biçimini korumanız gerekiyorsa, azure'da biçimi açıkça belirtebilirsiniz.

  • clusterUser kimlik bilgilerini alırken, varsayılan davranışın format üzerine yazmak için sorgu parametresini kullanabilirsiniz. Değerini, özgün kubeconfig biçimini kullanacak şekilde azure ayarlayabilirsiniz:

    az aks get-credentials --format azure
    
  • Microsoft Entra tümleşik kümeniz Kubernetes sürüm 1.24 veya üzerini kullanıyorsa kubeconfig biçimini el ile dönüştürmeniz gerekir.

    export KUBECONFIG=/path/to/kubeconfig
    kubelogin convert-kubeconfig
    

Not

Şu hata iletisini alırsanız: Azure kimlik doğrulaması eklentisi kaldırıldı., kubeconfig biçimini el ile dönüştürmek için komutunu kubelogin convert-kubeconfig çalıştırmanız gerekir.

Daha fazla bilgi için Bkz. Azure Kubelogin Bilinen Sorunlar.

Erişim sorunlarını giderme

Önemli

Bu bölümde açıklanan adım, normal Microsoft Entra grubu kimlik doğrulamasına kıyasla alternatif bir kimlik doğrulama yöntemi önerir. Bu seçeneği yalnızca acil durumlarda kullanın.

Geçerli bir Microsoft Entra grubuna yönetici erişiminiz yoksa bu geçici çözümü izleyebilirsiniz. Azure Kubernetes Service Cluster Admin rolünün üyesi olan bir hesapla oturum açın ve kümenize erişmek için grubunuz veya kiracı yöneticisi kimlik bilgilerinizi verin.

Sonraki adımlar