Použití připojení clusteru k zabezpečenému připojení ke clusterům Kubernetes s podporou Azure Arc
Díky připojení ke clusteru se můžete bezpečně připojit ke clusterům Kubernetes s podporou Služby Azure Arc odkudkoli, aniž byste museli povolit příchozí port v bráně firewall.
Přístup ke apiserver
clusteru Kubernetes s podporou Azure Arc umožňuje následující scénáře:
- Interaktivní ladění a řešení potíží
- Přístup ke službám Azure pro vlastní umístění a další prostředky vytvořené nad ním
Než začnete, projděte si koncepční přehled funkce připojení clusteru.
Požadavky
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Existující připojený cluster Kubernetes s podporou Azure Arc.
- Pokud jste cluster ještě nepřipojili, použijte naše rychlé zprovoznění.
- Upgradujte agenty na nejnovější verzi.
Povolení požadavků na síť pro Kubernetes s podporou Arc
Povolte tyto koncové body pro odchozí přístup:
Koncový bod Port *.servicebus.windows.net
443 guestnotificationservice.azure.com
,*.guestnotificationservice.azure.com
443 Poznámka:
Pokud chcete zástupný znak přeložit
*.servicebus.windows.net
na konkrétní koncové body, použijte příkaz\GET https://guestnotificationservice.azure.com/urls/allowlist?api-version=2020-01-01&location=<location>
. V rámci tohoto příkazu musí být pro zástupný symbol zadána<location>
oblast.
Pokud chcete získat segment oblasti regionálního koncového bodu, odeberte všechny mezery z názvu oblasti Azure. Například oblast USA – východ 2 , název oblasti je eastus2
.
Například: *.<region>.arcdataservices.com
musí být *.eastus2.arcdataservices.com
v oblasti USA – východ 2.
Pokud chcete zobrazit seznam všech oblastí, spusťte tento příkaz:
az account list-locations -o table
Get-AzLocation | Format-Table
Nainstalujte nebo aktualizujte Azure CLI na nejnovější verzi.
Nainstalujte nejnovější verzi
connectedk8s
rozšíření Azure CLI:az extension add --name connectedk8s
Pokud jste rozšíření už nainstalovali
connectedk8s
, aktualizujte rozšíření na nejnovější verzi:az extension update --name connectedk8s
Nahraďte zástupné symboly a spuštěním následujícího příkazu nastavte proměnné prostředí použité v tomto dokumentu:
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)
Nastavení ověřování
V existujícím clusteru s podporou arc vytvořte clusterRoleBinding s ověřováním Microsoft Entra nebo tokenem účtu služby.
Možnost ověřování Microsoft Entra
Získejte přidruženou entitu
objectId
Microsoft Entra. Pokud používáte jeden uživatelský účet, získejte hlavní název uživatele (UPN) přidružený k vaší entitě Microsoft Entra.- Účet skupiny Microsoft Entra:
AAD_ENTITY_ID=$(az ad signed-in-user show --query id -o tsv)
Pro jeden uživatelský účet Microsoft Entra:
AAD_ENTITY_ID=$(az ad signed-in-user show --query userPrincipalName -o tsv)
Pro aplikaci Microsoft Entra:
AAD_ENTITY_ID=$(az ad sp show --id <id> --query id -o tsv)
Autorizovat entitu s příslušnými oprávněními.
Pokud pro kontrolu autorizace v clusteru používáte nativní ClusterRoleBinding nebo RoleBinding Kubernetes,
kubeconfig
apiserver
můžete vytvořit jeden namapovaný na entitu Microsoft Entra (instanční objekt nebo uživatel), který potřebuje přístup k tomuto clusteru. Příklad:kubectl create clusterrolebinding demo-user-binding --clusterrole cluster-admin --user=$AAD_ENTITY_ID
Pokud ke kontrole autorizace v clusteru používáte Azure RBAC, můžete vytvořit příslušné přiřazení role Azure namapované na entitu Microsoft Entra. Příklad:
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
Možnost ověřování tokenu účtu služby
kubeconfig
Když soubor odkazuje naapiserver
cluster Kubernetes, spusťte tento příkaz a vytvořte účet služby. Tento příklad vytvoří účet služby ve výchozím oboru názvů, ale můžete nahradit jakýkoli jiný obor názvů .default
kubectl create serviceaccount demo-user -n default
Vytvořte clusterRoleBinding, abyste tomuto účtu služby udělili příslušná oprávnění v clusteru. Pokud jste v prvním příkazu použili jiný obor názvů, nahraďte ho zde .
default
kubectl create clusterrolebinding demo-user-binding --clusterrole cluster-admin --serviceaccount default:demo-user
Vytvoření tokenu účtu služby:
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')
Získání tokenu do výstupu do konzoly
echo $TOKEN
Přístup ke clusteru z klientského zařízení
Teď můžete ke clusteru přistupovat z jiného klienta. Na jiném klientském zařízení spusťte následující kroky.
Přihlaste se pomocí ověřování Microsoft Entra nebo pomocí ověřování tokenu účtu služby.
Získejte připojení
kubeconfig
ke clusteru potřebné ke komunikaci s clusterem odkudkoli (i mimo bránu firewall obklopují cluster), a to na základě použité možnosti ověřování:Pokud používáte ověřování Microsoft Entra:
az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUP
Pokud používáte ověřování pomocí tokenu účtu služby:
az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUP --token $TOKEN
Poznámka:
Tento příkaz otevře proxy server a zablokuje aktuální prostředí.
V jiné relaci prostředí použijte
kubectl
k odesílání požadavků do clusteru:kubectl get pods -A
Teď by se měla zobrazit odpověď z clusteru obsahujícího seznam všech podů v default
oboru názvů.
Známá omezení
Slouží az connectedk8s show
ke kontrole verze agenta Kubernetes s podporou Arc.
Pokud je použitá entita Microsoft Entra při provádění požadavků na cluster Kubernetes součástí více než 200 skupin, může se zobrazit následující chyba:
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.
Jedná se o známé omezení. Pokud se chcete dostat za tuto chybu:
- Vytvořte instanční objekt, který je méně pravděpodobné, že bude členem více než 200 skupin.
- Před spuštěním příkazu se přihlaste k Azure CLI pomocí instančního objektu
az connectedk8s proxy
.
Další kroky
- Nastavte v clusterech Microsoft Entra RBAC .
- Nasazení a správa rozšíření clusteru