Dela via


Skapa Azure Arc-aktiverad datakontrollant med kubernetes-verktyg

En datakontrollant hanterar Azure Arc-aktiverade datatjänster för ett Kubernetes-kluster. Den här artikeln beskriver hur du använder Kubernetes-verktyg för att skapa en datakontrollant.

Att skapa datakontrollanten har följande steg på hög nivå:

  1. Skapa namnområdet och bootstrapper-tjänsten
  2. Skapa datakontrollanten

Kommentar

För enkelhetens skull förutsätter stegen nedan att du är kubernetes-klusteradministratör. För produktionsdistributioner eller säkrare miljöer rekommenderar vi att du följer de rekommenderade säkerhetsmetoderna för "minsta behörighet" när du distribuerar datakontrollanten genom att endast bevilja specifika behörigheter till användare och tjänstkonton som ingår i distributionsprocessen.

Mer information finns i avsnittet Använda Arc-aktiverade datatjänster med minsta möjliga behörighet .

Förutsättningar

Se avsnittet Planera en Azure Arc-aktiverad distribution av datatjänster för översiktsinformation.

Om du vill skapa datakontrollanten med Kubernetes-verktyg måste du ha Kubernetes-verktygen installerade. Exemplen i den här artikeln använder kubectl, men liknande metoder kan användas med andra Kubernetes-verktyg, till exempel Kubernetes-instrumentpanelen, oceller helm om du är bekant med dessa verktyg och Kubernetes yaml/json.

Installera kubectl-verktyget

Skapa namnområdet och bootstrapper-tjänsten

Bootstrapper-tjänsten hanterar inkommande begäranden för att skapa, redigera och ta bort anpassade resurser, till exempel en datakontrollant.

Spara en kopia av bootstrapper-unified.yaml och ersätt platshållaren {{NAMESPACE}} på alla platser i filen med önskat namnområdesnamn, till exempel: arc.

Viktigt!

Mallfilen bootstrapper-unified.yaml hämtar som standard containeravbildningen bootstrapper från Microsoft Container Registry (MCR). Om din miljö inte har direkt åtkomst till Microsoft Container Registry kan du göra följande:

Kör följande kommando för att skapa namnområdet och bootstrapper-tjänsten med den redigerade filen.

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

Kontrollera att bootstrapper-podden körs med hjälp av följande kommando.

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

Om statusen inte körs kör du kommandot några gånger tills statusen körs.

Skapa datakontrollanten

Nu är du redo att skapa själva datastyrenheten.

Skapa först en kopia av mallfilen lokalt på datorn så att du kan ändra några av inställningarna.

Skapa mått och loggar instrumentpaneler användarnamn och lösenord

Överst i filen kan du ange ett användarnamn och lösenord som används för att autentisera till instrumentpanelerna för mått och loggar som administratör. Välj ett säkert lösenord och dela det med endast de som behöver ha dessa privilegier.

En Kubernetes-hemlighet lagras som en base64-kodad sträng – en för användarnamnet och en för lösenordet.

Du kan använda ett onlineverktyg för att base64-koda önskat användarnamn och lösenord eller använda inbyggda CLI-verktyg beroende på din plattform.

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

Skapa certifikat för loggar och måttinstrumentpaneler

Du kan också skapa SSL/TLS-certifikat för instrumentpanelerna för loggar och mått. Följ anvisningarna i Ange SSL/TLS-certifikat under distribution av inbyggda Kubernetes-verktyg.

Redigera konfigurationen av datakontrollanten

Redigera konfigurationen av datakontrollanten efter behov:

KRÄVS

  • plats: Ändra detta till den Azure-plats där metadata om datakontrollanten lagras. Granska listan över tillgängliga regioner.
  • resourceGroup: Den Azure-resursgrupp där du vill skapa datakontrollantens Azure-resurs i Azure Resource Manager. Vanligtvis bör den här resursgruppen redan finnas, men den krävs inte förrän den tid då du laddar upp data till Azure.
  • prenumeration: Azure-prenumerationens GUID för den prenumeration som du vill skapa Azure-resurserna i.

REKOMMENDERAS ATT GRANSKA OCH EVENTUELLT ÄNDRA STANDARDVÄRDEN

  • Lagring.. className: lagringsklassen som ska användas för data och loggfiler för datakontrollanten. Om du är osäker på de tillgängliga lagringsklasserna i ditt Kubernetes-kluster kan du köra följande kommando: kubectl get storageclass. Standardvärdet förutsätter default att det finns en lagringsklass som finns och heter default inte att det finns en lagringsklass som är standard. Obs! Det finns två className-inställningar som ska anges till önskad lagringsklass – en för data och en för loggar.
  • serviceType: Ändra tjänsttypen till NodePort om du inte använder en LoadBalancer.
  • Säkerhet För Azure Red Hat OpenShift eller Red Hat OpenShift Container Platform ersätter du security: inställningarna med följande värden i yaml-filen för datakontrollanten.
  security:
    allowDumps: false
    allowNodeMetricsCollection: false
    allowPodMetricsCollection: false

VALFRITT

  • name: Standardnamnet för datakontrollanten är arc, men du kan ändra det om du vill.
  • displayName: Ange samma värde som namnattributet överst i filen.
  • logsui-certificate-secret: Namnet på hemligheten som skapades i Kubernetes-klustret för loggarnas användargränssnittscertifikat.
  • metricsui-certificate-secret: Namnet på hemligheten som skapades i Kubernetes-klustret för måttgränssnittscertifikatet.

I följande exempel visas en slutförd datakontrollant yaml.

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.30.0_2024-06-11
    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

Spara den redigerade filen på den lokala datorn och kör följande kommando för att skapa datakontrollanten:

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

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

Övervaka skapandestatusen

Det tar några minuter att skapa kontrollanten. Du kan övervaka förloppet i ett annat terminalfönster med följande kommandon:

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

Du kan också kontrollera skapandestatusen eller loggarna för en viss podd genom att köra ett kommando som nedan. Detta är särskilt användbart för att felsöka eventuella problem.

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

Felsöka problem med att skapa

Om du får problem med att skapa kan du läsa felsökningsguiden.