Wdrażanie rozszerzeń klastra Kubernetes z obsługą usługi Azure Arc i zarządzanie nimi
Wystąpienia rozszerzeń można tworzyć w klastrze Kubernetes z obsługą usługi Arc, ustawiając wymagane i opcjonalne parametry, w tym opcje związane z aktualizacjami i konfiguracjami. Można również wyświetlać, wyświetlać, aktualizować i usuwać wystąpienia rozszerzeń.
Przed rozpoczęciem zapoznaj się z koncepcyjnym omówieniem rozszerzeń klastra Kubernetes z obsługą usługi Arc i przejrzyj listę aktualnie dostępnych rozszerzeń.
Wymagania wstępne
Najnowsza wersja interfejsu wiersza polecenia platformy Azure.
Najnowsze wersje rozszerzeń interfejsu
connectedk8s
wiersza polecenia platformy Azure.k8s-extension
Zainstaluj te rozszerzenia, uruchamiając następujące polecenia:az extension add --name connectedk8s az extension add --name k8s-extension
connectedk8s
Jeśli rozszerzenia ik8s-extension
są już zainstalowane, upewnij się, że zostały zaktualizowane do najnowszej wersji przy użyciu następujących poleceń:az extension update --name connectedk8s az extension update --name k8s-extension
Istniejący połączony klaster Kubernetes z włączoną usługą Azure Arc z co najmniej jednym węzłem systemu operacyjnego i typu
linux/amd64
architektury. W przypadku wdrażania platformy Flux (GitOps) można użyć klastra opartego na architekturze ARM64 bez węzłalinux/amd64
.- Jeśli nie nawiązano jeszcze połączenia z klastrem, skorzystaj z naszego przewodnika Szybki start.
- Uaktualnij agentów do najnowszej wersji.
Tworzenie wystąpienia rozszerzenia
Aby utworzyć nowe wystąpienie rozszerzenia, użyj polecenia k8s-extension create
, przekazując wartości wymaganych parametrów.
W tym przykładzie tworzone jest wystąpienie rozszerzenia usługi Azure Monitor Container Insights w klastrze Kubernetes z obsługą usługi Azure Arc:
az k8s-extension create --name azuremonitor-containers --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Wyjście:
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": null,
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Uwaga
Usługa nie może przechowywać poufnych informacji przez ponad 48 godzin. Jeśli agenci platformy Kubernetes z włączoną usługą Azure Arc nie mają łączności sieciowej przez ponad 48 godzin i nie mogą określić, czy utworzyć rozszerzenie w klastrze, rozszerzenie przechodzi do Failed
stanu. W takim przypadku należy uruchomić k8s-extension create
ponownie, aby utworzyć nowy zasób platformy Azure rozszerzenia.
Usługa Azure Monitor Container Insights to jednotonowe rozszerzenie (tylko jedno wymagane dla klastra). Przed zainstalowaniem tych samych rozszerzeń należy wyczyścić wszystkie poprzednie instalacje wykresów helm usługi Azure Monitor Container Insights (bez rozszerzeń). Postępuj zgodnie z instrukcjami dotyczącymi usuwania wykresu Helm przed uruchomieniem polecenia az k8s-extension create
.
Parametry wymagane
Podczas tworzenia az k8s-extension create
wystąpienia rozszerzenia wymagane są następujące parametry.
Nazwa parametru | opis |
---|---|
--name |
Nazwa wystąpienia rozszerzenia |
--extension-type |
Typ rozszerzenia, które chcesz zainstalować w klastrze. Na przykład: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes |
--scope |
Zakres instalacji rozszerzenia: cluster lub namespace |
--cluster-name |
Nazwa zasobu Kubernetes z obsługą usługi Azure Arc, na którym ma zostać utworzone wystąpienie rozszerzenia |
--resource-group |
Grupa zasobów zawierająca zasób Kubernetes z włączoną usługą Azure Arc |
--cluster-type |
Typ klastra, na którym ma zostać utworzone wystąpienie rozszerzenia. W przypadku większości scenariuszy użyj polecenia connectedClusters , który odpowiada klastrom Kubernetes z obsługą usługi Azure Arc. |
Parametry opcjonalne
Użyj co najmniej jednego z tych opcjonalnych parametrów zgodnie z potrzebami dla Twoich scenariuszy wraz z wymaganymi parametrami.
Uwaga
Możesz automatycznie uaktualnić wystąpienie rozszerzenia do najnowszych wersji pomocniczych i poprawek, ustawiając auto-upgrade-minor-version
true
wartość , lub zamiast tego możesz ręcznie ustawić wersję wystąpienia rozszerzenia przy użyciu parametru --version
. Zalecamy włączenie automatycznych uaktualnień dla wersji pomocniczych i poprawek, aby zawsze mieć najnowsze poprawki zabezpieczeń i możliwości.
Ponieważ uaktualnienia wersji głównych mogą obejmować zmiany powodujące niezgodność, automatyczne uaktualnienia nowych wersji głównych wystąpienia rozszerzenia nie są obsługiwane. Możesz wybrać, kiedy ręcznie uaktualnić wystąpienia rozszerzeń do nowej wersji głównej.
Nazwa parametru | opis |
---|---|
--auto-upgrade-minor-version |
Właściwość logiczna określająca, czy wersja pomocnicza rozszerzenia jest automatycznie uaktualniana. Ustawienie domyślne to true . Jeśli ten parametr ma wartość , nie można ustawić true parametru version , ponieważ wersja zostanie dynamicznie zaktualizowana. Jeśli zostanie ustawiona wartość false , rozszerzenie nie zostanie automatycznie uaktualnione, nawet w przypadku wersji poprawek. |
--version |
Wersja rozszerzenia, które ma zostać zainstalowane (określona wersja, aby przypiąć wystąpienie rozszerzenia do). Nie można podać, jeśli auto-upgrade-minor-version ustawiono wartość true . |
--configuration-settings |
Ustawienia, które można przekazać do rozszerzenia, aby kontrolować jego funkcjonalność. Są one przekazywane jako pary rozdzielane key=value spacjami po nazwie parametru. Jeśli ten parametr jest używany w poleceniu, --configuration-settings-file nie można go użyć w tym samym poleceniu. |
--configuration-settings-file |
Ścieżka do pliku JSON z parami key=value , które mają być używane do przekazywania ustawień konfiguracji do rozszerzenia. Jeśli ten parametr jest używany w poleceniu, --configuration-settings nie można go użyć w tym samym poleceniu. |
--configuration-protected-settings |
Ustawienia, które nie można pobrać przy użyciu GET wywołań interfejsu API lub az k8s-extension show poleceń. Zazwyczaj używane do przekazywania poufnych ustawień. Są one przekazywane jako pary rozdzielane key=value spacjami po nazwie parametru. Jeśli ten parametr jest używany w poleceniu, --configuration-protected-settings-file nie można go użyć w tym samym poleceniu. |
--configuration-protected-settings-file |
Ścieżka do pliku JSON z parami key=value , które mają być używane do przekazywania poufnych ustawień do rozszerzenia. Jeśli ten parametr jest używany w poleceniu, --configuration-protected-settings nie można go użyć w tym samym poleceniu. |
--release-namespace |
Ten parametr wskazuje przestrzeń nazw, w której zostanie utworzona wersja. Istotne tylko wtedy, gdy scope jest ustawiona wartość cluster . |
--release-train |
Autorzy rozszerzeń mogą publikować wersje w różnych pociągach wydaniach, takich jak Stable , Preview itp. Jeśli ten parametr nie zostanie jawnie ustawiony, Stable zostanie użyty jako domyślny. |
--target-namespace |
Wskazuje przestrzeń nazw, w której zostanie utworzona wersja. Uprawnienie do konta systemowego utworzonego dla tego wystąpienia rozszerzenia będzie ograniczone do tej przestrzeni nazw. Istotne tylko wtedy, gdy scope jest ustawiona wartość namespace . |
Pokaż szczegóły rozszerzenia
Aby wyświetlić szczegóły aktualnie zainstalowanego wystąpienia rozszerzenia, użyj polecenia k8s-extension show
, przekazując wartości obowiązkowych parametrów.
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Wyjście:
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Installed",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": "2021-04-02T12:13:49.636+00:00",
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Wyświetlanie listy wszystkich rozszerzeń zainstalowanych w klastrze
Aby wyświetlić listę wszystkich rozszerzeń zainstalowanych w klastrze, użyj polecenia k8s-extension list
, przekazując wartości dla parametrów obowiązkowych.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Wyjście:
[
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-15T02:26:03.5519523+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "Microsoft.AzureMonitor.Containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
"lastStatusTime": null,
"name": "myExtInstanceName",
"releaseTrain": "Stable",
"resourceGroup": "myRG",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName1"
}
},
"statuses": [],
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
},
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-02T00:41:16.8005159+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuredefender.kubernetes",
"id": "/subscriptions/0e849346-4343-582b-95a3-e40e6a648ae1/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
"lastStatusTime": null,
"name": "microsoft.azuredefender.kubernetes",
"releaseTrain": "Stable",
"resourceGroup": "myRg",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName2"
}
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
}
]
Aktualizowanie wystąpienia rozszerzenia
Uwaga
Zapoznaj się z dokumentacją określonego typu rozszerzenia, aby zrozumieć określone ustawienia w --configuration-settings
systemie i --configuration-protected-settings
które można zaktualizować. W przypadku --configuration-protected-settings
opcji należy podać wszystkie ustawienia, nawet jeśli jest aktualizowane tylko jedno ustawienie. Jeśli którekolwiek z tych ustawień zostanie pominięte, te ustawienia zostaną uznane za przestarzałe i usunięte.
Aby zaktualizować istniejące wystąpienie rozszerzenia, użyj polecenia k8s-extension update
, przekazując wartości dla parametrów obowiązkowych i opcjonalnych. Obowiązkowe i opcjonalne parametry są nieco inne niż parametry używane do tworzenia wystąpienia rozszerzenia.
W tym przykładzie zaktualizowano auto-upgrade-minor-version
ustawienie wystąpienia rozszerzenia usługi Azure Machine Learning na :true
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters
Wymagane parametry aktualizacji
Nazwa parametru | opis |
---|---|
--name |
Nazwa wystąpienia rozszerzenia |
--cluster-name |
Nazwa klastra, na którym ma zostać utworzone wystąpienie rozszerzenia |
--resource-group |
Grupa zasobów zawierająca klaster |
--cluster-type |
Typ klastra, na którym ma zostać utworzone wystąpienie rozszerzenia. W przypadku klastrów Kubernetes z obsługą usługi Azure Arc użyj polecenia connectedClusters . W przypadku klastrów usługi AKS użyj polecenia managedClusters . |
Opcjonalne parametry aktualizacji
Nazwa parametru | opis |
---|---|
--auto-upgrade-minor-version |
Właściwość logiczna określająca, czy wersja pomocnicza rozszerzenia jest automatycznie uaktualniana. Ustawienie domyślne to true . Jeśli ten parametr ma wartość true, nie można ustawić parametru version , ponieważ wersja zostanie dynamicznie zaktualizowana. Jeśli zostanie ustawiona wartość false , rozszerzenie nie zostanie automatycznie uaktualnione, nawet w przypadku wersji poprawek. |
--version |
Wersja rozszerzenia, które ma zostać zainstalowane (określona wersja, aby przypiąć wystąpienie rozszerzenia do). Nie można podać, jeśli dla opcji auto-upgrade-minor-version ustawiono wartość true . |
--configuration-settings |
Ustawienia, które można przekazać do rozszerzenia, aby kontrolować jego funkcjonalność. Są one przekazywane jako pary rozdzielane key=value spacjami po nazwie parametru. Jeśli ten parametr jest używany w poleceniu, --configuration-settings-file nie można go użyć w tym samym poleceniu. Należy podać tylko ustawienia wymagające aktualizacji. Podane ustawienia zostaną zastąpione określonymi wartościami. |
--configuration-settings-file |
Ścieżka do pliku JSON z parami key=value , które mają być używane do przekazywania ustawień konfiguracji do rozszerzenia. Jeśli ten parametr jest używany w poleceniu, --configuration-settings nie można go użyć w tym samym poleceniu. |
--configuration-protected-settings |
Ustawienia, które nie można pobrać przy użyciu GET wywołań interfejsu API lub az k8s-extension show poleceń. Zazwyczaj używane do przekazywania poufnych ustawień. Są one przekazywane jako pary rozdzielane key=value spacjami po nazwie parametru. Jeśli ten parametr jest używany w poleceniu, --configuration-protected-settings-file nie można go użyć w tym samym poleceniu. Podczas aktualizowania ustawienia chronionego należy określić wszystkie ustawienia chronione. Jeśli którekolwiek z tych ustawień zostanie pominięte, te ustawienia zostaną uznane za przestarzałe i usunięte. |
--configuration-protected-settings-file |
Ścieżka do pliku JSON z parami key=value , które mają być używane do przekazywania poufnych ustawień do rozszerzenia. Jeśli ten parametr jest używany w poleceniu, --configuration-protected-settings nie można go użyć w tym samym poleceniu. |
--scope |
Zakres instalacji rozszerzenia — cluster lub namespace . |
--release-train |
Autorzy rozszerzeń mogą publikować wersje w różnych pociągach wydaniach, takich jak Stable , Preview itp. Jeśli ten parametr nie zostanie jawnie ustawiony, Stable zostanie użyty jako domyślny. |
Uaktualnianie wystąpienia rozszerzenia
Jak wspomniano wcześniej, jeśli ustawiono auto-upgrade-minor-version
wartość true, rozszerzenie zostanie automatycznie uaktualnione po wydaniu nowej wersji pomocniczej. W przypadku większości scenariuszy zalecamy włączenie automatycznych uaktualnień. Jeśli ustawisz auto-upgrade-minor-version
wartość false, musisz ręcznie uaktualnić rozszerzenie, jeśli chcesz mieć nowszą wersję.
Uaktualnienia ręczne są również wymagane do uzyskania nowego wystąpienia głównego rozszerzenia. Możesz wybrać, kiedy przeprowadzić uaktualnienie, aby uniknąć nieoczekiwanych zmian powodujących niezgodność z uaktualnieniami wersji głównych.
Aby ręcznie uaktualnić wystąpienie rozszerzenia, użyj k8s-extension update
parametru version
i ustaw go, aby określić wersję.
W tym przykładzie zaktualizowano wystąpienie rozszerzenia usługi Azure Machine Learning do wersji x.y.z:
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
Usuwanie wystąpienia rozszerzenia
Aby usunąć wystąpienie rozszerzenia w klastrze, użyj polecenia k8s-extension delete
, przekazując wartości dla parametrów obowiązkowych:
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Uwaga
Zasób platformy Azure reprezentujący to rozszerzenie zostanie natychmiast usunięty. Wydanie programu Helm w klastrze skojarzonym z tym rozszerzeniem jest usuwane tylko wtedy, gdy agenci działający w klastrze Kubernetes mają łączność sieciową i mogą ponownie skontaktować się z usługami platformy Azure, aby pobrać żądany stan.
Następne kroki
- Zapoznaj się z dokumentacją interfejsu wiersza polecenia az k8s-extension, aby uzyskać pełną listę poleceń i parametrów.
- Dowiedz się więcej o sposobie pracy rozszerzeń z klastrami Kubernetes z obsługą usługi Arc.
- Przejrzyj rozszerzenia klastra, które są obecnie dostępne dla platformy Kubernetes z obsługą usługi Azure Arc.
- Uzyskaj pomoc dotyczącą rozwiązywania problemów z rozszerzeniem.