Freigeben über


Erstellen eines Azure Arc-aktivierten Datencontrollers mithilfe von Kubernetes-Tools

Ein Datencontroller verwaltet Datendienste mit Azure Arc-Unterstützung für einen Kubernetes-Cluster. In diesem Artikel erfahren Sie, wie Sie Kubernetes-Tools zum Erstellen eines Datencontrollers verwenden.

Das Erstellen des Datencontrollers umfasst die folgenden allgemeinen Schritte:

  1. Erstellen des Namespaces und des Bootstrapperdiensts
  2. Erstellen des Datencontrollers

Hinweis

Aus Gründen der Einfachheit, gehen die nachstehenden Schritte davon aus, dass Sie ein Kubernetes-Clusteradministrator sind. Für Produktionsbereitstellungen oder Umgebungen mit höherer Sicherheit empfiehlt es sich, die bewährten Sicherheitsmethoden der „geringsten Rechte“ zu befolgen, wenn der Datencontroller bereitgestellt wird, indem nur bestimmte Berechtigungen für Benutzer und Dienstkonten gewährt werden, die am Bereitstellungsprozess beteiligt sind.

Ausführliche Anweisungen finden Sie im Thema Ausführen von Arc-aktivierten Datendiensten mit den geringsten Berechtigungen.

Voraussetzungen

Lesen Sie den Artikel Planen einer Bereitstellung von Datendiensten mit Azure Arc-Unterstützung, um eine Übersicht zu erhalten.

Um den Datencontroller mithilfe von Kubernetes-Tools erstellen zu können, müssen die Kubernetes-Tools installiert sein. In den Beispielen in diesem Artikel wird kubectl verwendet, allerdings können auch ähnliche Ansätze mit anderen Kubernetes-Tools verfolgt werden, z. B. dem Kubernetes-Dashboard, oc oder helm, wenn Sie mit diesen Tools und Kubernetes-YAML/JSON-Dateien vertraut sind.

Installieren des kubectl-Tools

Erstellen des Namespaces und des Bootstrapperdiensts

Der Bootstrapperdienst verarbeitet eingehende Anforderungen zum Erstellen, Bearbeiten und Löschen benutzerdefinierter Ressourcen (beispielsweise eines Datencontrollers).

Speichern Sie eine Kopie von bootstrapper-unified.yaml, und ersetzen Sie den Platzhalter {{NAMESPACE}} an allen Stellen in der Datei durch den gewünschten Namespacenamen, z. B. arc.

Wichtig

Mit der Vorlagendatei „bootstrapper-unified.yaml“ wird standardmäßig das Bootstrapper-Containerimage aus der Microsoft Container Registry (MCR) gepullt. Falls von Ihrer Umgebung nicht direkt auf Microsoft Container Registry zugegriffen werden kann, können Sie wie folgt vorgehen:

Führen Sie den folgenden Befehl aus, um den Namespace und den Bootstrapperdienst mit der bearbeiteten Datei zu erstellen.

kubectl apply --namespace arc -f bootstrapper-unified.yaml

Überprüfen Sie mithilfe des folgenden Befehls, ob der Bootstrapperpod ausgeführt wird.

kubectl get pod --namespace arc -l app=bootstrapper

Wenn der Status nicht Wird ausgeführt lautet, führen Sie den Befehl mehrmals aus, bis der Status Wird ausgeführt lautet.

Erstellen des Datencontrollers

Nun können Sie den Datencontroller selbst erstellen.

Erstellen Sie zunächst eine lokale Kopie der Vorlagendatei auf Ihrem Computer, damit Sie einige Einstellungen ändern können.

Erstellen der Dashboards mit Metriken und Protokollen sowie der Benutzernamen und Kennwörter

Am Anfang der Datei können Sie einen Benutzernamen und ein Kennwort angeben, die für die Authentifizierung bei den Dashboards mit Metriken und Protokollen als Administrator verwendet werden. Wählen Sie ein sicheres Kennwort aus, und geben Sie es nur an Personen weiter, die diese Berechtigungen besitzen müssen.

Ein Kubernetes-Geheimnis wird als Base64-codierte Zeichenfolge gespeichert – eine für den Benutzernamen und eine für das Kennwort.

Sie können ein Onlinetool verwenden, um den gewünschten Benutzernamen und das zugehörige Kennwort mit einer Base64-Codierung zu versehen, oder Sie können abhängig von Ihrer Plattform integrierte CLI-Tools verwenden.

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

Erstellen Sie Zertifikate für Protokolle und Metrikdashboards

Optional können Sie SSL/TLS-Zertifikate für die Protokolle und Metrikdashboards erstellen. Befolgen Sie die Anweisungen unter Angeben von SSL/TLS-Zertifikaten während der Bereitstellung nativer Kubernetes-Tools.

Bearbeiten der Datencontrollerkonfiguration

Bearbeiten Sie Datencontrollerkonfiguration nach Bedarf:

ERFORDERLICH

  • Standort: Ändern Sie diese Einstellung in den Azure-Standort, an dem die Metadaten zum Datencontroller gespeichert werden sollen. Sehen Sie sich die Liste der verfügbaren Regionen an.
  • resourceGroup: Die Azure-Ressourcengruppe, in der Sie die Azure-Ressource für den Datencontroller im Azure Resource Manager erstellen möchten. Diese Ressourcengruppe sollte in der Regel bereits vorhanden sein, wird jedoch erst benötigt, wenn Sie die Daten in Azure hochladen.
  • subscription: Die Azure-Abonnement-GUID für das Abonnement, in dem Sie die Azure-Ressourcen erstellen möchten.

ÜBERPRÜFUNG UND GGF. ÄNDERUNG DER STANDARDWERTE EMPFOHLEN

  • storage..className: Die Speicherklasse, die für die Daten- und Protokolldateien des Datencontrollers verwendet werden soll. Wenn Sie nicht sicher sind, welche Speicherklassen in Ihrem Kubernetes-Cluster verfügbar sind, können Sie den folgenden Befehl ausführen: kubectl get storageclass. Der Standardwert ist default. Dabei wird davon ausgegangen, dass eine Speicherklasse mit dem Namen default vorhanden ist, und nicht, dass eine Speicherklasse vorhanden ist, die der Standardspeicherklasse entspricht. Hinweis: Es gibt zwei className-Einstellungen, die auf die gewünschte Speicherklasse festgelegt werden müssen – eine für Daten und eine für Protokolle.
  • serviceType: Ändern Sie den Diensttyp in NodePort, wenn Sie keinen Lastenausgleich verwenden.
  • Sicherheit: Ersetzen Sie bei Azure Red Hat OpenShift oder bei der Red Hat OpenShift-Containerplattform die Einstellungen vom Typ security: durch die folgenden Werte in der YAML-Datei des Datencontrollers.
  security:
    allowDumps: false
    allowNodeMetricsCollection: false
    allowPodMetricsCollection: false

OPTIONAL

  • name: Der Standardname des Datencontrollers lautet arc, Sie können ihn jedoch ändern.
  • displayName: Legen Sie diesen Wert auf denselben Wert fest wie das name-Attribut am Anfang der Datei.
  • logsui-certificate-secret: Der Name des Geheimnisses, das im Kubernetes-Cluster für das Protokoll-Benutzeroberflächen-Zertifikat erstellt wurde.
  • metricsui-certificate-secret: Der Name des Geheimnisses, das im Kubernetes-Cluster für das Metrik-Benutzeroberflächen-Zertifikat erstellt wurde.

Das folgende Beispiel zeigt eine vollständige YAML-Datei eines Datencontrollers.

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.34.0_2024-10-08
    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

Speichern Sie die bearbeitete Datei auf Ihrem lokalen Computer, und führen Sie den folgenden Befehl aus, um den Datencontroller zu erstellen:

kubectl create --namespace arc -f <path to your data controller file>

#Example
kubectl create --namespace arc -f data-controller.yaml

Überwachen des Erstellungsstatus

Das Erstellen des Controllers dauert einige Minuten. Mithilfe der folgenden Befehle können Sie den Status in einem anderen Terminalfenster überwachen:

kubectl get datacontroller --namespace arc
kubectl get pods --namespace arc

Sie können auch den Erstellungsstatus oder die Protokolle eines bestimmten Pods überprüfen, indem Sie einen Befehl wie den folgenden ausführen. Dies ist besonders bei der Problembehandlung hilfreich.

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

Beheben von Problemen bei der Erstellung

Wenn Probleme bei der Erstellung auftreten, finden Sie weitere Informationen im Handbuch zur Problembehandlung.