Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kontroler danych zarządza usługami danych obsługiwanymi przez Azure Arc w klastrze Kubernetes. W tym artykule opisano sposób używania narzędzi Platformy Kubernetes do tworzenia kontrolera danych.
Utworzenie kontrolera danych ma następujące ogólne kroki:
- Utwórz przestrzeń nazw i usługę programu inicjującego
- Tworzenie kontrolera danych
Uwaga
Dla uproszczenia w poniższych krokach przyjęto założenie, że jesteś administratorem klastra Kubernetes. W przypadku wdrożeń produkcyjnych lub bardziej bezpiecznych środowisk zaleca się stosowanie najlepszych rozwiązań w zakresie zabezpieczeń "najniższych uprawnień" podczas wdrażania kontrolera danych, udzielając tylko określonych uprawnień do użytkowników i kont usług zaangażowanych w proces wdrażania.
Aby uzyskać szczegółowe instrukcje, zobacz temat Zarządzanie usługami danych włączonymi dla Arc z najmniejszymi uprawnieniami.
Wymagania wstępne
Zapoznaj się z tematem Planowanie wdrożenia usług danych obsługiwanych przez Azure Arc, aby uzyskać informacje ogólne.
Aby utworzyć kontroler danych przy użyciu narzędzi Platformy Kubernetes, musisz mieć zainstalowane narzędzia Kubernetes. Przykłady w tym artykule będą wykorzystywać kubectl
, ale podobne podejścia mogą być używane z innymi narzędziami Kubernetes, takimi jak pulpit nawigacyjny Kubernetes, oc
lub helm
, jeśli znasz te narzędzia i pliki YAML/JSON platformy Kubernetes.
Instalowanie narzędzia kubectl
Utwórz przestrzeń nazw i usługę programu inicjującego
Usługa bootstrap obsługuje przychodzące żądania dotyczące tworzenia, edytowania i usuwania zasobów niestandardowych, takich jak kontroler danych.
Zapisz kopię pliku bootstrapper-unified.yaml
Ważne
Plik szablonu bootstrapper-unified.yaml domyślnie pobiera obraz kontenera bootstrappera z rejestru Microsoft Container Registry (MCR). Jeśli środowisko nie może bezpośrednio uzyskać dostępu do usługi Microsoft Container Registry, możesz wykonać następujące czynności:
- Wykonaj kroki, aby ściągnąć obrazy kontenerów z usługi Microsoft Container Registry i wypchnąć je do prywatnego rejestru kontenerów.
-
Utwórz sekret pobierania obrazu o nazwie
arc-private-registry
dla prywatnego rejestru kontenerów. - Zmień adres URL dla obrazu programu inicjującego w pliku bootstrap.yaml.
- Zastąp element
arc-private-registry
w pliku bootstrap.yaml, jeśli dla tajnego klucza pobierania obrazu użyto innej nazwy.
Uruchom następujące polecenie, aby utworzyć namespace i usługę bootstrap za pomocą edytowanego pliku.
kubectl apply --namespace arc -f bootstrapper-unified.yaml
Sprawdź, czy pod bootstrap jest uruchomiony przy użyciu następującego polecenia.
kubectl get pod --namespace arc -l app=bootstrapper
Jeśli stan nie jest uruchomiony, uruchom polecenie kilka razy, aż stan ma wartość Uruchomiono.
Tworzenie kontrolera danych
Teraz możesz przystąpić do tworzenia samego kontrolera danych.
Najpierw utwórz kopię pliku szablonu lokalnie na komputerze, aby można było zmodyfikować niektóre ustawienia.
Utwórz nazwy użytkowników i hasła do pulpitów nawigacyjnych metryk i dzienników
W górnej części pliku można określić nazwę użytkownika i hasło używane do uwierzytelniania jako administrator na pulpitach nawigacyjnych dotyczących metryk i logów. Wybierz bezpieczne hasło i udostępnij je tylko tym, którzy muszą mieć te uprawnienia.
Wpis tajny kubernetes jest przechowywany jako ciąg zakodowany w formacie base64 — jeden dla nazwy użytkownika i jeden dla hasła.
Możesz użyć narzędzia online do zakodowania żądanej nazwy użytkownika i hasła lub skorzystać z wbudowanych narzędzi CLI, w zależności od platformy.
PowerShell
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('<your string to encode here>'))
#Example
#[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('example'))
Linux/macOS
echo -n '<your string to encode here>' | base64
#Example
# echo -n 'example' | base64
Utwórz certyfikaty dla dashboardów dzienników i metryk
Możesz opcjonalnie utworzyć certyfikaty SSL/TLS dla pulpitów dzienników i metryk. Postępuj zgodnie z instrukcjami w temacie Określanie certyfikatów SSL/TLS podczas wdrażania narzędzi natywnych platformy Kubernetes.
Edytowanie konfiguracji kontrolera danych
Edytuj konfigurację kontrolera danych zgodnie z potrzebami:
WYMAGANE
- location: zmień tę wartość na lokalizację platformy Azure, w której będą przechowywane metadane dotyczące kontrolera danych. Przejrzyj listę dostępnych regionów.
- resourceGroup: grupa zasobów platformy Azure, w której chcesz utworzyć zasób platformy Azure kontrolera danych w usłudze Azure Resource Manager. Zazwyczaj ta grupa zasobów powinna już istnieć, ale nie jest wymagana do momentu przekazania danych na platformę Azure.
- subscription: identyfikator GUID subskrypcji platformy Azure dla subskrypcji, w której chcesz utworzyć zasoby platformy Azure.
ZALECA SIĘ PRZEJRZENIE ORAZ EWENTUALNĄ ZMIANĘ WARTOŚCI DOMYŚLNYCH
-
klasa przechowywania.. className: klasa przechowywania do użycia dla kontrolera danych i plików rejestru. Jeśli nie masz pewności co do dostępnych klas magazynu w klastrze Kubernetes, możesz uruchomić następujące polecenie:
kubectl get storageclass
. Wartość domyślna todefault
, co zakłada, że istnieje klasa magazynu o nazwiedefault
, a nie że jest to klasa magazynu, która jest domyślna. Uwaga: istnieją dwa ustawienia className, które mają być ustawione na żądaną klasę magazynu — jedną dla danych i jedną dla dzienników. -
serviceType: zmień typ usługi na
NodePort
, jeśli nie używasz modułu LoadBalancer. -
Bezpieczeństwo W przypadku usługi Azure Red Hat OpenShift lub Red Hat OpenShift Container Platform zastąp
security:
ustawienia następującymi wartościami w pliku yaml kontrolera danych.
security:
allowDumps: false
allowNodeMetricsCollection: false
allowPodMetricsCollection: false
FAKULTATYWNY
-
name: Domyślna nazwa kontrolera danych to
arc
, ale możesz ją zmienić, jeśli chcesz. - displayName: ustaw tę samą wartość co atrybut name na początku pliku.
- logsui-certificate-secret: nazwa tajnego klucza utworzonego w klastrze Kubernetes dla certyfikatu interfejsu użytkownika logów.
- metricsui-certificate-secret: nazwa tajnego zasobu utworzonego w klastrze Kubernetes dla certyfikatu dla interfejsu użytkownika metryk.
W poniższym przykładzie pokazano ukończony plik yaml kontrolera danych.
apiVersion: v1
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
kind: Secret
metadata:
name: metricsui-admin-secret
type: Opaque
---
apiVersion: v1
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
kind: Secret
metadata:
name: logsui-admin-secret
type: Opaque
---
apiVersion: arcdata.microsoft.com/v5
kind: DataController
metadata:
name: arc-dc
spec:
credentials:
dockerRegistry: arc-private-registry # Create a registry secret named 'arc-private-registry' if you are going to pull from a private registry instead of MCR.
serviceAccount: sa-arc-controller
docker:
imagePullPolicy: Always
imageTag: v1.39.0_2025-05-13
registry: mcr.microsoft.com
repository: arcdata
infrastructure: other # Must be a value in the array [alibaba, aws, azure, gcp, onpremises, other]
security:
allowDumps: true # Set this to false if deploying on OpenShift
allowNodeMetricsCollection: true # Set this to false if deploying on OpenShift
allowPodMetricsCollection: true # Set this to false if deploying on OpenShift
services:
- name: controller
port: 30080
serviceType: LoadBalancer # Modify serviceType based on your Kubernetes environment
settings:
ElasticSearch:
vm.max_map_count: "-1"
azure:
connectionMode: indirect # Only indirect is supported for Kubernetes-native deployment for now.
location: eastus # Choose a different Azure location if you want
resourceGroup: <your resource group>
subscription: <your subscription GUID>
controller:
displayName: arc-dc
enableBilling: true
logs.rotation.days: "7"
logs.rotation.size: "5000"
storage:
data:
accessMode: ReadWriteOnce
className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 15Gi
logs:
accessMode: ReadWriteOnce
className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 10Gi
Zapisz edytowany plik na komputerze lokalnym i uruchom następujące polecenie, aby utworzyć kontroler danych:
kubectl create --namespace arc -f <path to your data controller file>
#Example
kubectl create --namespace arc -f data-controller.yaml
Monitorowanie stanu tworzenia
Utworzenie kontrolera potrwa kilka minut. Postęp można monitorować w innym oknie terminalu za pomocą następujących poleceń:
kubectl get datacontroller --namespace arc
kubectl get pods --namespace arc
Możesz również sprawdzić stan tworzenia lub dzienniki dowolnego określonego poda, uruchamiając polecenie takie jak poniżej. Jest to szczególnie przydatne w przypadku rozwiązywania wszelkich problemów.
kubectl describe pod/<pod name> --namespace arc
kubectl logs <pod name> --namespace arc
#Example:
#kubectl describe pod/control-2g7bl --namespace arc
#kubectl logs control-2g7b1 --namespace arc
Rozwiązywanie problemów z tworzeniem
Jeśli wystąpią problemy z tworzeniem, zapoznaj się z przewodnikiem rozwiązywania problemów.