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å:
- Skapa namnområdet och bootstrapper-tjänsten
- 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, oc
eller helm
om du är bekant med dessa verktyg och Kubernetes yaml/json.
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:
- Följ stegen för att hämta containeravbildningarna från Microsoft Container Registry och skicka dem till ett privat containerregister.
- Skapa en pull-hemlighet för avbildningar med namnet
arc-private-registry
för ditt privata containerregister. - Ändra bild-URL:en för bootstrapper-avbildningen i filen bootstrap.yaml.
- Ersätt
arc-private-registry
i filen bootstrap.yaml om ett annat namn användes för avbildningens pull-hemlighet.
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ätterdefault
att det finns en lagringsklass som finns och heterdefault
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.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
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.