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:
- Vytvoření oboru názvů a služby bootstrapperu
- 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, oc
nebo helm
pokud znáte tyto nástroje a Kubernetes yaml/json.
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:
- Postupujte podle kroků pro vyžádání imagí kontejneru ze služby Microsoft Container Registry a nasdílejte je do privátního registru kontejneru.
- Vytvořte tajný klíč pro vyžádání image s názvem
arc-private-registry
pro váš privátní registr kontejneru. - Změňte adresu URL image pro image bootstrapperu v souboru bootstrap.yaml.
- Nahraďte
arc-private-registry
soubor bootstrap.yaml, pokud byl pro tajný kód pro vyžádání image použit jiný název.
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.
- skladování.. 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í hodnotadefault
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.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
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íží.