Szybki start: łączenie istniejącego klastra Kubernetes z usługą Azure Arc
Rozpocznij pracę z platformą Kubernetes z obsługą usługi Azure Arc przy użyciu interfejsu wiersza polecenia platformy Azure lub programu 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. Aby wypróbować elementy w środowisku przykładowym/praktycznym, odwiedź witrynę Azure Arc Jumpstart.
Wymagania wstępne
Ważne
Oprócz tych wymagań wstępnych należy spełnić wszystkie wymagania sieciowe dotyczące platformy Kubernetes z obsługą usługi Azure Arc.
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Podstawowa wiedza na temat podstawowych pojęć dotyczących platformy 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.
Najnowsza wersja Azure CLI.
Najnowsza wersja rozszerzenia interfejsu wiersza polecenia platformy Azure connectedk8s zainstalowana przez uruchomienie następującego polecenia:
az extension add --name connectedk8s
Klaster Kubernetes w pełni działający. 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 samodzielnie klaster Kubernetes przy użyciu interfejsu API klastra
Uwaga
Klaster musi mieć co najmniej jeden węzeł systemu operacyjnego i typu
linux/amd64
architektury i/lublinux/arm64
. Zobacz Wymagania dotyczące klastra, aby uzyskać więcej informacji na temat scenariuszy usługi ARM64.
Co najmniej 850 MB wolnego miejsca dla agentów usługi Arc, którzy zostaną wdrożeni w klastrze, oraz możliwość użycia około 7% pojedynczego CPU.
Plik kubeconfig i kontekst wskazujący do klastra. Aby uzyskać więcej informacji, zobacz Konfigurowanie dostępu do wielu klastrów.
Rejestrowanie dostawców dla Azure Arc-enabled Kubernetes
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 powinieneś zauważyć, że stan tych przestrzeni nazw zmieni się na
Registered
.
Tworzenie grupy zasobów
Uruchom następujące polecenie:
az group create --name AzureArcTest --location EastUS --output table
Wyjście:
Location Name
---------- ------------
eastus AzureArcTest
Łączenie istniejącego klastra Kubernetes
Uruchom następujące polecenie, aby połączyć klaster. To polecenie umożliwia wdrożenie agentów usługi Azure Arc w klastrze i zainstalowanie programu Helm w wersji 3.6.3 w .azure
folderze maszyny wdrożeniowej. Ta instalacja programu Helm 3 jest używana tylko dla usługi Azure Arc i nie usuwa ani nie zmienia żadnych wcześniej zainstalowanych wersji programu Helm na maszynie.
W tym przykładzie nazwa klastra to AzureArcTest1.
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Wyjście:
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"
}
Napiwek
Powyższe polecenie bez określonego parametru lokalizacji tworzy zasób Kubernetes z obsługą usługi Azure Arc w tej samej lokalizacji co grupa zasobów. Aby utworzyć zasób Kubernetes z obsługą usługi Azure Arc w innej lokalizacji, określ --location <region>
lub -l <region>
podczas uruchamiania polecenia az connectedk8s connect
.
Ważne
Jeśli wdrożenie nie powiedzie się z powodu błędu przekroczenia limitu czasu, zobacz nasz przewodnik rozwiązywania problemów, aby uzyskać szczegółowe informacje na temat rozwiązywania tego problemu.
Połącz się przy użyciu serwera proxy 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.
Na maszynie wdrożeniowej ustaw zmienne środowiskowe wymagane dla Azure CLI do korzystania z 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>
W klastrze Kubernetes uruchom polecenie connect z określonymi parametrami
proxy-https
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
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żna użyć do określenia zakresu CIDR i punktów końcowych w sposób rozdzielony przecinkami, aby każda komunikacja z agentów do tych punktów końcowych nie przechodziła przez wychodzący serwer proxy. 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ść do określenia parametru--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 proxy dla ruchu wychodzącego.--proxy-cert
jest wymagany 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 dla ruchu wychodzącego, jeśli udostępniasz tylko zaufany certyfikat, możesz uruchomić az connectedk8s connect
z podanym tylko parametrem --proxy-cert
.
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Jeśli istnieje wiele zaufanych certyfikatów, łańcuch certyfikatów (certyfikat liścia, certyfikat pośredni, certyfikat główny) musi zostać połączony w jeden plik, który jest przekazywany w parametrze --proxy-cert
.
Uwaga
-
--custom-ca-cert
to alias dla elementu--proxy-cert
. Zamiennie można użyć dowolnego parametru. Przekazanie obu parametrów w tym samym poleceniu spowoduje wyróżnienie ostatniego przekazanego parametru.
Weryfikowanie połączenia klastra
Uruchom następujące polecenie:
az connectedk8s list --resource-group AzureArcTest --output table
Wyjście:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Aby uzyskać pomoc dotyczącą rozwiązywania problemów z połączeniem, zobacz Diagnozowanie problemów z połączeniem dla klastrów Kubernetes z obsługą usługi Azure Arc.
Uwaga
Po dołączeniu klastra, metadane klastra (takie jak wersja klastra i liczba węzłów) pojawią się na stronie przeglądu zasobu Kubernetes z włączoną usługą Azure Arc w portalu Azure w ciągu maksymalnie dziesięciu minut.
Wyświetlanie agentów usługi Azure Arc dla platformy Kubernetes
Kubernetes z obsługą Azure Arc wdraża kilka agentów w przestrzeni nazw azure-arc
.
Wyświetl te wdrożenia i zasobniki, korzystając z:
kubectl get deployments,pods -n azure-arc
Sprawdź, czy wszystkie zasobniki są w
Running
stanie.Wyjście:
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 obsługą usługi Azure Arc.
Czyszczenie zasobów
Za pomocą następującego polecenia możesz usunąć zasób Kubernetes z włączoną usługą Azure Arc, wszystkie skojarzone zasoby konfiguracji i wszystkich agentów uruchomionych w klastrze:
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 -n AzureArcTest1 -g AzureArcTest --force
To polecenie może być również używane, jeśli wystąpią problemy podczas tworzenia nowego wdrożenia klastra (ze względu na to, że wcześniej utworzone zasoby nie są całkowicie usuwane).
Uwaga
Usunięcie zasobu Kubernetes z włączoną usługą Azure Arc przy użyciu witryny Azure Portal powoduje usunięcie wszelkich skojarzonych zasobów konfiguracji, ale nie powoduje usunięcia żadnych agentów uruchomionych w klastrze. W związku z tym zalecamy usunięcie zasobu Kubernetes z włączoną usługą Azure Arc przy użyciu az connectedk8s delete
, zamiast usuwania zasobu w portalu Azure.
Następne kroki
- Dowiedz się, jak wdrażać konfiguracje przy użyciu metodyki GitOps z rozwiązaniem Flux w wersji 2.
- Rozwiązywanie typowych problemów z platformą Kubernetes z włączoną usługą Azure Arc.
- Poznaj zautomatyzowane scenariusze platformy Kubernetes z obsługą usługi Azure Arc dzięki usłudze Azure Arc Jumpstart.