Azure Arc özellikli Kubernetes kümelerine güvenli bir şekilde bağlanmak için küme bağlantısı kullanma
Küme bağlantısı ile, güvenlik duvarında herhangi bir gelen bağlantı noktasının etkinleştirilmesine gerek kalmadan Azure Arc özellikli Kubernetes kümelerine her yerden güvenli bir şekilde bağlanabilirsiniz.
Azure Arc özellikli Kubernetes kümesine apiserver
erişim aşağıdaki senaryoları etkinleştirir:
- Etkileşimli hata ayıklama ve sorun giderme.
- Özel konumlar ve bunun üzerinde oluşturulan diğer kaynaklar için Azure hizmetlerine küme erişimi.
Başlamadan önce küme bağlantısı özelliğinin kavramsal genel bakışını gözden geçirin.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
Mevcut Azure Arc özellikli Kubernetes bağlı kümesi.
- Henüz bir kümeyi bağlamadıysanız hızlı başlangıcımızı kullanın.
- Aracılarınızı en son sürüme yükseltin.
Arc özellikli Kubernetes için ağ gereksinimlerini etkinleştirme
Giden erişim için şu uç noktaları etkinleştirin:
Uç nokta Bağlantı noktası *.servicebus.windows.net
443 guestnotificationservice.azure.com
,*.guestnotificationservice.azure.com
443 Not
Joker karakteri
*.servicebus.windows.net
belirli uç noktalara çevirmek için komutunu\GET https://guestnotificationservice.azure.com/urls/allowlist?api-version=2020-01-01&location=<location>
kullanın. Bu komut içinde, yer tutucu için<location>
bölge belirtilmelidir.
Bölgesel uç noktanın bölge kesimini almak için Azure bölge adından tüm alanları kaldırın. Örneğin, Doğu ABD 2 bölgesi, bölge adı şeklindedir eastus2
.
Örneğin: *.<region>.arcdataservices.com
Doğu ABD 2 bölgesinde olmalıdır *.eastus2.arcdataservices.com
.
Tüm bölgelerin listesini görmek için şu komutu çalıştırın:
az account list-locations -o table
Get-AzLocation | Format-Table
Azure CLI uzantısının
connectedk8s
en son sürümünü yükleyin:az extension add --name connectedk8s
Uzantıyı zaten yüklediyseniz uzantıyı
connectedk8s
en son sürüme güncelleştirin:az extension update --name connectedk8s
Bu belgede kullanılan ortam değişkenlerini ayarlamak için yer tutucuları değiştirin ve aşağıdaki komutu çalıştırın:
CLUSTER_NAME=<cluster-name> RESOURCE_GROUP=<resource-group-name> ARM_ID_CLUSTER=$(az connectedk8s show -n $CLUSTER_NAME -g $RESOURCE_GROUP --query id -o tsv)
Kimlik doğrulaması kurulumu
Mevcut Arc özellikli kümede, Microsoft Entra kimlik doğrulaması veya hizmet hesabı belirteci ile ClusterRoleBinding'i oluşturun.
Microsoft Entra kimlik doğrulama seçeneği
objectId
Microsoft Entra varlığınız ile ilişkili öğesini alın. Tek bir kullanıcı hesabı kullanıyorsanız, Microsoft Entra varlığınızla ilişkili kullanıcı asıl adını (UPN) alın.- Microsoft Entra grup hesabı için:
AAD_ENTITY_ID=$(az ad signed-in-user show --query id -o tsv)
Microsoft Entra tek kullanıcı hesabı için:
AAD_ENTITY_ID=$(az ad signed-in-user show --query userPrincipalName -o tsv)
Microsoft Entra uygulaması için:
AAD_ENTITY_ID=$(az ad sp show --id <id> --query id -o tsv)
Varlığa uygun izinlerle yetki verin.
Kümede yetkilendirme denetimleri için Kubernetes yerel ClusterRoleBinding veya RoleBinding kullanıyorsanız,
kubeconfig
dosya doğrudan erişim için kümenizin üzerine geliyorsaapiserver
, bu kümeye erişmesi gereken Microsoft Entra varlığıyla (hizmet sorumlusu veya kullanıcı) eşlenmiş bir tane oluşturabilirsiniz. Örneğin:kubectl create clusterrolebinding demo-user-binding --clusterrole cluster-admin --user=$AAD_ENTITY_ID
Kümede yetkilendirme denetimleri için Azure RBAC kullanıyorsanız, Microsoft Entra varlığına eşlenmiş uygun bir Azure rol ataması oluşturabilirsiniz. Örneğin:
az role assignment create --role "Azure Arc Kubernetes Viewer" --assignee $AAD_ENTITY_ID --scope $ARM_ID_CLUSTER az role assignment create --role "Azure Arc Enabled Kubernetes Cluster User Role" --assignee $AAD_ENTITY_ID --scope $ARM_ID_CLUSTER
Hizmet hesabı belirteci kimlik doğrulama seçeneği
kubeconfig
Dosya Kubernetes kümenizin üzerine gelinapiserver
ve bir hizmet hesabı oluşturmak için bu komutu çalıştırın. Bu örnek, hizmet hesabını varsayılan ad alanında oluşturur, ancak yerinedefault
başka bir ad alanı kullanabilirsiniz.kubectl create serviceaccount demo-user -n default
Bu hizmet hesabına küme üzerinde uygun izinleri vermek için ClusterRoleBinding oluşturun. İlk komutta farklı bir ad alanı kullandıysanız, yerine buraya
default
yazın.kubectl create clusterrolebinding demo-user-binding --clusterrole cluster-admin --serviceaccount default:demo-user
Hizmet hesabı belirteci oluşturma:
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: demo-user-secret annotations: kubernetes.io/service-account.name: demo-user type: kubernetes.io/service-account-token EOF
TOKEN=$(kubectl get secret demo-user-secret -o jsonpath='{$.data.token}' | base64 -d | sed 's/$/\n/g')
Konsola çıkış yapmak için belirteci alma
echo $TOKEN
İstemci cihazından kümenize erişme
Artık kümeye farklı bir istemciden erişebilirsiniz. Aşağıdaki adımları başka bir istemci cihazında çalıştırın.
Microsoft Entra kimlik doğrulamasını veya hizmet hesabı belirteci kimlik doğrulamasını kullanarak oturum açın.
Kümeyle iletişim kurmak için gereken küme bağlantısını
kubeconfig
, kullanılan kimlik doğrulama seçeneğine bağlı olarak her yerden (kümeyi çevreleyen güvenlik duvarının dışından bile) alın:Microsoft Entra kimlik doğrulaması kullanılıyorsa:
az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUP
Hizmet hesabı belirteci kimlik doğrulaması kullanılıyorsa:
az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUP --token $TOKEN
Not
Bu komut proxy'yi açar ve geçerli kabuğu engeller.
Farklı bir kabuk oturumunda, kümeye istek göndermek için kullanın
kubectl
:kubectl get pods -A
Şimdi kümeden ad alanı altındaki default
tüm podların listesini içeren bir yanıt görmeniz gerekir.
Bilinen sınırlamalar
Arc özellikli Kubernetes aracı sürümünüzü denetlemek için kullanın az connectedk8s show
.
Kubernetes kümesine istekler yaparken, kullanılan Microsoft Entra varlığı 200'den fazla grubun parçasıysa aşağıdaki hatayı görebilirsiniz:
You must be logged in to the server (Error:Error while retrieving group info. Error:Overage claim (users with more than 200 group membership) is currently not supported.
Bu bilinen bir sınırlamadır. Bu hatayı geçmek için:
- 200'den fazla grubun üyesi olma olasılığı daha düşük olan bir hizmet sorumlusu oluşturun.
- Komutunu çalıştırmadan önce hizmet sorumlusuyla Azure CLI'da
az connectedk8s proxy
oturum açın.
Sonraki adımlar
- Kümelerinizde Microsoft Entra RBAC'i ayarlayın.
- Küme uzantılarını dağıtma ve yönetme.