Szybki start: łączenie istniejącego klastra Kubernetes z usługą Azure Arc
Rozpocznij pracę z platformą Kubernetes z włączoną usługą Azure Arc przy użyciu interfejsu wiersza polecenia platformy Azure lub Azure PowerShell, aby połączyć istniejący klaster Kubernetes z usługą Azure Arc.
Aby zapoznać się z koncepcyjnym omówieniem łączenia klastrów z usługą Azure Arc, zobacz Omówienie agenta Kubernetes z obsługą usługi Azure Arc.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
Podstawowa wiedza na temat podstawowych pojęć związanych z platformą Kubernetes.
Tożsamość (użytkownik lub jednostka usługi), która może służyć do logowania się do interfejsu wiersza polecenia platformy Azure i łączenia klastra z usługą Azure Arc.
Ważne
- Tożsamość musi mieć uprawnienia "Odczyt" i "Zapis" w typie zasobu Kubernetes z obsługą usługi Azure Arc (
Microsoft.Kubernetes/connectedClusters
). - Jeśli połączenie klastra z istniejącą grupą zasobów (a nie nową utworzoną przez tę tożsamość), tożsamość musi mieć uprawnienie "Odczyt" dla tej grupy zasobów.
- Dla tej tożsamości można użyć wbudowanej roli klastra Kubernetes — dołączania usługi Azure Arc . Ta rola jest przydatna w przypadku dołączania na dużą skalę, ponieważ ma tylko szczegółowe uprawnienia wymagane do łączenia klastrów z usługą Azure Arc i nie ma uprawnień do aktualizowania, usuwania ani modyfikowania innych klastrów ani innych zasobów platformy Azure.
- Tożsamość musi mieć uprawnienia "Odczyt" i "Zapis" w typie zasobu Kubernetes z obsługą usługi Azure Arc (
Zainstaluj lub uaktualnij interfejs wiersza polecenia platformy Azure do najnowszej wersji.
Zainstaluj najnowszą wersję rozszerzenia interfejsu wiersza polecenia platformy Azure connectedk8s :
az extension add --name connectedk8s
Uruchomiony klaster Kubernetes. Jeśli go nie masz, możesz utworzyć klaster przy użyciu jednej z następujących opcji:
Tworzenie klastra Kubernetes przy użyciu platformy Docker dla komputerów Mac lub Windows
Zarządzany przez siebie klaster Kubernetes przy użyciu interfejsu API klastra
Uwaga
Klaster musi mieć co najmniej jeden węzeł systemu operacyjnego i typ
linux/amd64
architektury . Klastry z tylkolinux/arm64
węzłami nie są jeszcze obsługiwane.
Co najmniej 850 MB wolnego dla agentów usługi Arc, którzy zostaną wdrożeni w klastrze, i pojemność do użycia około 7% pojedynczego procesora CPU. W przypadku środowiska klastra Kubernetes z wieloma węzłami zasobniki mogą być zaplanowane w różnych węzłach.
Plik kubeconfig i kontekst wskazujący klaster.
Zainstaluj program Helm 3. Upewnij się, że program Helm 3 ma < wersję 3.7.0.
Rejestrowanie dostawców dla platformy Kubernetes z obsługą usługi Azure Arc
Wprowadź następujące polecenia:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Monitoruj proces rejestracji. Rejestracja może potrwać do 10 minut.
az provider show -n Microsoft.Kubernetes -o table az provider show -n Microsoft.KubernetesConfiguration -o table az provider show -n Microsoft.ExtendedLocation -o table
Po zarejestrowaniu
RegistrationState
powinien zostać wyświetlony stan tych przestrzeni nazw zmieni się naRegistered
.
Spełnianie wymagań sieciowych
Ogólnie rzecz biorąc, wymagania dotyczące łączności obejmują następujące zasady:
- Wszystkie połączenia są tcp, chyba że określono inaczej.
- Wszystkie połączenia HTTP używają protokołów HTTPS i SSL/TLS z oficjalnie podpisanymi i weryfikowalnymi certyfikatami.
- Wszystkie połączenia są wychodzące, chyba że określono inaczej.
Aby użyć serwera proxy, sprawdź, czy agenci spełniają wymagania sieciowe w tym artykule.
Ważne
Agenci usługi Azure Arc wymagają następujących adresów URL ruchu wychodzącego do https://:443
działania.
W przypadku *.servicebus.windows.net
obiektów websocket należy włączyć dostęp wychodzący w zaporze i serwerze proxy.
Punkt końcowy (DNS) | Opis |
---|---|
https://management.azure.com |
Wymagane, aby agent nawiązał połączenie z platformą Azure i zarejestrował klaster. |
https://<region>.dp.kubernetesconfiguration.azure.com |
Punkt końcowy płaszczyzny danych dla agenta umożliwiający wypychanie informacji o stanie i pobieranie informacji o konfiguracji. |
https://login.microsoftonline.com https://<region>.login.microsoft.com login.windows.net |
Wymagany do pobierania i aktualizowania tokenów usługi Azure Resource Manager. |
https://mcr.microsoft.com https://*.data.mcr.microsoft.com |
Wymagane do ściągania obrazów kontenerów dla agentów usługi Azure Arc. |
https://gbl.his.arc.azure.com |
Wymagane do pobrania regionalnego punktu końcowego na potrzeby ściągania certyfikatów tożsamości zarządzanej przypisanej przez system. |
https://*.his.arc.azure.com |
Wymagane do ściągnięcia certyfikatów tożsamości zarządzanej przypisanej przez system. |
https://k8connecthelm.azureedge.net |
az connectedk8s connect używa narzędzia Helm 3 do wdrażania agentów usługi Azure Arc w klastrze Kubernetes. Ten punkt końcowy jest potrzebny do pobrania klienta programu Helm w celu ułatwienia wdrażania pakietu helm agenta. |
guestnotificationservice.azure.com *.guestnotificationservice.azure.com sts.windows.net https://k8sconnectcsp.azureedge.net |
W przypadku scenariuszy opartych na połączeniu klastra i w scenariuszach opartych na lokalizacji niestandardowej . |
*.servicebus.windows.net |
W przypadku scenariuszy opartych na połączeniu klastra i w scenariuszach opartych na lokalizacji niestandardowej . |
https://graph.microsoft.com/ |
Wymagane, gdy skonfigurowano kontrolę dostępu opartą na rolach platformy Azure |
*.arc.azure.net |
Aby zarządzać połączonymi klastrami w Azure Portal. |
Aby przetłumaczyć *.servicebus.windows.net
symbol wieloznaczny na określone punkty końcowe, użyj polecenia :
GET https://guestnotificationservice.azure.com/urls/allowlist?api-version=2020-01-01&location=<region>`.
Aby uzyskać segment regionu regionalnego punktu końcowego, usuń wszystkie spacje z nazwy regionu świadczenia usługi Azure. Na przykład region Wschodnie stany USA 2 nazwa regionu to eastus2
.
Na przykład: san-af-<region>-prod.azurewebsites.net
powinien znajdować się san-af-eastus2-prod.azurewebsites.net
w regionie Wschodnie stany USA 2.
Aby wyświetlić listę wszystkich regionów, uruchom następujące polecenie:
az account list-locations -o table
Aby uzyskać pełną listę wymagań sieciowych dotyczących funkcji usługi Azure Arc i usług z obsługą usługi Azure Arc, zobacz Wymagania dotyczące sieci usługi Azure Arc (skonsolidowane).
Tworzenie grupy zasobów
Uruchom następujące polecenie:
az group create --name AzureArcTest --location EastUS --output table
Dane wyjściowe:
Location Name
---------- ------------
eastus AzureArcTest
Łączenie istniejącego klastra Kubernetes
Uruchom następujące polecenie:
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Uwaga
Jeśli logujesz się do interfejsu wiersza polecenia platformy Azure przy użyciu jednostki usługi, należy ustawić dodatkowy parametr , aby włączyć funkcję lokalizacji niestandardowej w klastrze.
Dane wyjściowe:
Helm release deployment succeeded
{
"aadProfile": {
"clientAppId": "",
"serverAppId": "",
"tenantId": ""
},
"agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
"agentVersion": null,
"connectivityStatus": "Connecting",
"distribution": "gke",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
"identity": {
"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"infrastructure": "gcp",
"kubernetesVersion": null,
"lastConnectivityTime": null,
"location": "eastus",
"managedIdentityCertificateExpirationTime": null,
"name": "AzureArcTest1",
"offering": null,
"provisioningState": "Succeeded",
"resourceGroup": "AzureArcTest",
"tags": {},
"totalCoreCount": null,
"totalNodeCount": null,
"type": "Microsoft.Kubernetes/connectedClusters"
}
Porada
Powyższe polecenie bez określonego parametru lokalizacji tworzy zasób Kubernetes z włączoną usługą Azure Arc w tej samej lokalizacji co grupa zasobów. Aby utworzyć zasób Kubernetes z włączoną usługą Azure Arc w innej lokalizacji, określ polecenie --location <region>
lub -l <region>
podczas uruchamiania az connectedk8s connect
polecenia.
Ważne
W niektórych przypadkach wdrożenie może zakończyć się niepowodzeniem z powodu błędu przekroczenia limitu czasu. Aby uzyskać szczegółowe informacje na temat rozwiązywania tego problemu, zobacz nasz przewodnik rozwiązywania problemów .
Nawiązywanie połączenia przy użyciu serwera proxy ruchu wychodzącego
Jeśli klaster znajduje się za serwerem proxy ruchu wychodzącego, żądania muszą być kierowane za pośrednictwem serwera proxy ruchu wychodzącego.
Ustaw zmienne środowiskowe wymagane dla interfejsu wiersza polecenia platformy Azure, aby używać serwera proxy ruchu wychodzącego:
export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>
Uruchom polecenie connect z określonymi
proxy-https
parametrami iproxy-http
. Jeśli serwer proxy jest skonfigurowany zarówno przy użyciu protokołu HTTP, jak i HTTPS, pamiętaj, aby użyć--proxy-http
go dla serwera proxy HTTP i--proxy-https
serwera proxy HTTPS. Jeśli serwer proxy używa tylko protokołu HTTP, możesz użyć tej wartości dla obu parametrów.az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
Uwaga
- Niektóre żądania sieciowe, takie jak żądania związane z komunikacją między usługami klastra, muszą być oddzielone od ruchu kierowanego przez serwer proxy na potrzeby komunikacji wychodzącej. Parametr
--proxy-skip-range
może służyć do określania zakresu CIDR i punktów końcowych w sposób rozdzielony przecinkami, aby każda komunikacja od agentów do tych punktów końcowych nie przechodziła za pośrednictwem serwera proxy ruchu wychodzącego. Co najmniej zakres CIDR usług w klastrze powinien być określony jako wartość tego parametru. Załóżmy na przykład, żekubectl get svc -A
zwracamy listę usług, w których wszystkie usługi mają wartości ClusterIP w zakresie10.0.0.0/16
. Następnie wartość, która ma być określona dla--proxy-skip-range
, to10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
. --proxy-http
,--proxy-https
i--proxy-skip-range
są oczekiwane dla większości środowisk serwera proxy dla ruchu wychodzącego.--proxy-cert
jest wymagane tylko wtedy, gdy konieczne jest wstrzyknięcie zaufanych certyfikatów oczekiwanych przez serwer proxy do zaufanego magazynu certyfikatów zasobników agenta.- Serwer proxy ruchu wychodzącego musi być skonfigurowany tak, aby zezwalał na połączenia protokołu Websocket.
W przypadku serwerów proxy ruchu wychodzącego, w których należy podać tylko zaufany certyfikat bez danych wejściowych punktu końcowego serwera proxy, az connectedk8s connect
można uruchomić tylko z --proxy-cert
określonymi danymi wejściowymi. Jeśli oczekuje się wielu zaufanych certyfikatów, połączony łańcuch certyfikatów można udostępnić w jednym pliku przy użyciu parametru --proxy-cert
.
Uwaga
--custom-ca-cert
to alias dla elementu--proxy-cert
. Obu parametrów można używać zamiennie. Przekazanie obu parametrów w tym samym poleceniu spowoduje wyróżnienie ostatniego przekazanego parametru.
Uruchom polecenie connect z określonym parametrem --proxy-cert
:
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Weryfikowanie połączenia klastra
Uruchom następujące polecenie:
az connectedk8s list --resource-group AzureArcTest --output table
Dane wyjściowe:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Uwaga
Po dołączeniu klastra metadane klastra (wersja klastra, wersja agenta, liczba węzłów itp.) mogą zostać wyświetlone na stronie przeglądu zasobu Kubernetes z włączoną usługą Azure Arc w witrynie Azure Portal w ciągu od 5 do 10 minut.
Porada
Aby uzyskać pomoc dotyczącą rozwiązywania problemów podczas nawiązywania połączenia z klastrem, zobacz Diagnozowanie problemów z połączeniem dla klastrów Kubernetes z obsługą usługi Azure Arc.
Wyświetlanie agentów usługi Azure Arc dla platformy Kubernetes
Platforma Kubernetes z obsługą usługi Azure Arc wdraża kilku agentów w azure-arc
przestrzeni nazw.
Wyświetl te wdrożenia i zasobniki przy użyciu:
kubectl get deployments,pods -n azure-arc
Sprawdź, czy wszystkie zasobniki są w
Running
stanie .Dane wyjściowe:
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-metadata-operator 1/1 1 1 13d deployment.apps/clusterconnect-agent 1/1 1 1 13d deployment.apps/clusteridentityoperator 1/1 1 1 13d deployment.apps/config-agent 1/1 1 1 13d deployment.apps/controller-manager 1/1 1 1 13d deployment.apps/extension-manager 1/1 1 1 13d deployment.apps/flux-logs-agent 1/1 1 1 13d deployment.apps/kube-aad-proxy 1/1 1 1 13d deployment.apps/metrics-agent 1/1 1 1 13d deployment.apps/resource-sync-agent 1/1 1 1 13d NAME READY STATUS RESTARTS AGE pod/cluster-metadata-operator-9568b899c-2stjn 2/2 Running 0 13d pod/clusterconnect-agent-576758886d-vggmv 3/3 Running 0 13d pod/clusteridentityoperator-6f59466c87-mm96j 2/2 Running 0 13d pod/config-agent-7cbd6cb89f-9fdnt 2/2 Running 0 13d pod/controller-manager-df6d56db5-kxmfj 2/2 Running 0 13d pod/extension-manager-58c94c5b89-c6q72 2/2 Running 0 13d pod/flux-logs-agent-6db9687fcb-rmxww 1/1 Running 0 13d pod/kube-aad-proxy-67b87b9f55-bthqv 2/2 Running 0 13d pod/metrics-agent-575c565fd9-k5j2t 2/2 Running 0 13d pod/resource-sync-agent-6bbd8bcd86-x5bk5 2/2 Running 0 13d
Aby uzyskać więcej informacji na temat tych agentów, zobacz Omówienie agenta Kubernetes z włączoną usługą Azure Arc.
Czyszczenie zasobów
Możesz usunąć zasób Kubernetes z włączoną usługą Azure Arc, wszystkie skojarzone zasoby konfiguracji i wszystkich agentów uruchomionych w klastrze przy użyciu interfejsu wiersza polecenia platformy Azure przy użyciu następującego polecenia:
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Jeśli proces usuwania zakończy się niepowodzeniem, użyj następującego polecenia, aby wymusić usunięcie (dodanie -y
, jeśli chcesz pominąć monit o potwierdzenie):
az connectedk8s delete -g AzureArcTest1 -n AzureArcTest --force
Tego polecenia można również użyć, jeśli podczas tworzenia nowego wdrożenia klastra występują problemy (z powodu nieuzyskanych wcześniej utworzonych zasobów).
Uwaga
Usunięcie zasobu Kubernetes z włączoną usługą Azure Arc przy użyciu Azure Portal usuwa wszystkie skojarzone zasoby konfiguracji, ale nie usuwa żadnych agentów uruchomionych w klastrze. Najlepszym rozwiązaniem jest usunięcie zasobu az connectedk8s delete
Kubernetes z włączoną usługą Azure Arc zamiast usuwania zasobu w Azure Portal.
Następne kroki
Przejdź do następnego artykułu, aby dowiedzieć się, jak wdrożyć konfiguracje w połączonym klastrze Kubernetes przy użyciu metodyki GitOps.