Vytvoření kontroleru dat s podporou Azure Arc pomocí nástrojů Kubernetes

Kontroler dat spravuje datové služby s podporou Azure Arc pro cluster Kubernetes. Tento článek popisuje, jak pomocí nástrojů Kubernetes vytvořit kontroler dat.

Vytvoření kontroleru dat má následující základní kroky:

  1. Vytvoření oboru názvů a služby bootstrapperu
  2. Vytvoření kontroleru dat

Poznámka:

Pro zjednodušení následující kroky předpokládají, že jste správcem clusteru Kubernetes. Pro produkční nasazení nebo bezpečnější prostředí se doporučuje dodržovat osvědčené postupy zabezpečení "nejnižších oprávnění" při nasazování kontroleru dat tím, že uživatelům a účtům služeb zapojeným do procesu nasazení udělíte pouze konkrétní oprávnění.

Podrobné pokyny najdete v tématu Provoz datových služeb s podporou arc s nejnižšími oprávněními .

Požadavky

Projděte si téma Plánování nasazení datových služeb s podporou služby Azure Arc, kde najdete přehled informací.

Pokud chcete vytvořit kontroler dat pomocí nástrojů Kubernetes, budete muset mít nainstalované nástroje Kubernetes. Příklady v tomto článku se použijí kubectl, ale podobné přístupy je možné použít s jinými nástroji Kubernetes, jako je řídicí panel Kubernetes, ocnebo helm pokud znáte tyto nástroje a Kubernetes yaml/json.

Instalace nástroje kubectl

Vytvoření oboru názvů a služby bootstrapperu

Služba bootstrapper zpracovává příchozí požadavky na vytváření, úpravy a odstraňování vlastních prostředků, jako je například kontroler dat.

Uložte kopii bootstrapper-unified.yaml a nahraďte zástupný symbol {{NAMESPACE}} na všech místech v souboru požadovaným názvem oboru názvů, například: arc.

Důležité

Soubor šablony bootstrapper-unified.yaml ve výchozím nastavení načítá image kontejneru bootstrapperu ze služby Microsoft Container Registry (MCR). Pokud vaše prostředí nemá přímý přístup ke službě Microsoft Container Registry, můžete udělat toto:

Spuštěním následujícího příkazu vytvořte službu oboru názvů a bootstrapperu s upraveným souborem.

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

Pomocí následujícího příkazu ověřte, že pod bootstrapperu běží.

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

Pokud stav není spuštěný, spusťte příkaz několikrát, dokud nebude stav Spuštěný.

Vytvoření kontroleru dat

Teď jste připraveni vytvořit samotný kontroler dat.

Nejprve v počítači vytvořte kopii souboru šablony místně, abyste mohli některá nastavení upravit.

Vytvoření metrik a protokolů řídicích panelů uživatelská jména a hesla

V horní části souboru můžete zadat uživatelské jméno a heslo, které se používá k ověření v metrikách a protokolech řídicích panelů jako správce. Zvolte zabezpečené heslo a sdílejte ho jenom s těmi, kteří potřebují tato oprávnění.

Tajný kód Kubernetes je uložený jako řetězec kódovaný jako base64 – jeden pro uživatelské jméno a druhý pro heslo.

K kódování požadovaného uživatelského jména a hesla můžete použít online nástroj nebo můžete použít integrované nástroje rozhraní příkazového řádku v závislosti na vaší platformě.

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

Vytvoření certifikátů pro řídicí panely protokolů a metrik

Volitelně můžete vytvořit certifikáty SSL/TLS pro řídicí panely protokolů a metrik. Postupujte podle pokynů v tématu Určení certifikátů SSL/TLS během nasazení nativních nástrojů Kubernetes.

Úprava konfigurace kontroleru dat

Podle potřeby upravte konfiguraci kontroleru dat:

POŽADOVANÉ

  • umístění: Změňte tuto možnost na umístění Azure, kde budou uložena metadata o kontroleru dat. Zkontrolujte seznam dostupných oblastí.
  • resourceGroup: skupina prostředků Azure, ve které chcete vytvořit prostředek Azure kontroleru dat v Azure Resource Manageru. Tato skupina prostředků by obvykle měla existovat, ale není nutná, dokud nenahrajete data do Azure.
  • předplatné: IDENTIFIKÁTOR GUID předplatného Azure pro předplatné, ve které chcete vytvořit prostředky Azure.

DOPORUČUJEME ZKONTROLOVAT A PŘÍPADNĚ ZMĚNIT VÝCHOZÍ HODNOTY.

  • Úložiště.. className: třída úložiště, která se má použít pro data kontroleru dat a soubory protokolů. Pokud si nejste jisti dostupnými třídami úložiště v clusteru Kubernetes, můžete spustit následující příkaz: kubectl get storageclass Výchozí hodnota default předpokládá, že existuje třída úložiště, která existuje a není pojmenovaná default , že existuje třída úložiště, která je výchozí. Poznámka: Existují dvě nastavení className, která se mají nastavit na požadovanou třídu úložiště – jedno pro data a jedno pro protokoly.
  • serviceType: Změňte typ služby na NodePort , pokud nepoužíváte LoadBalancer.
  • Zabezpečení pro Azure Red Hat OpenShift nebo Red Hat OpenShift Container Platform nahraďte security: nastavení následujícími hodnotami v souboru yaml kontroleru dat.
  security:
    allowDumps: false
    allowNodeMetricsCollection: false
    allowPodMetricsCollection: false

VOLITELNÉ

  • name: Výchozí název kontroleru dat je arc, ale pokud chcete, můžete ho změnit.
  • displayName: Nastavte tuto hodnotu na stejnou hodnotu jako atribut name v horní části souboru.
  • logsui-certificate-secret: Název tajného kódu vytvořeného v clusteru Kubernetes pro certifikát uživatelského rozhraní protokolů.
  • metricsui-certificate-secret: Název tajného klíče vytvořeného v clusteru Kubernetes pro certifikát uživatelského rozhraní metrik.

Následující příklad ukazuje dokončený yaml kontroleru dat.

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.29.0_2024-04-09
    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

Uložte upravený soubor do místního počítače a spuštěním následujícího příkazu vytvořte kontroler dat:

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

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

Monitorování stavu vytváření

Vytvoření kontroleru bude trvat několik minut. Průběh můžete sledovat v jiném okně terminálu pomocí následujících příkazů:

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

Stav vytvoření nebo protokoly konkrétního podu můžete také zkontrolovat spuštěním příkazu, který je uvedený níže. To je užitečné zejména při řešení jakýchkoli problémů.

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

Řešení potíží s vytvářením

Pokud při vytváření narazíte na nějaké potíže, projděte si průvodce odstraňováním potíží.