Nasazení kontejneru Azure SQL Edge v Kubernetes
Důležité
Azure SQL Edge bude vyřazeno 30. září 2025. Další informace a možnosti migrace najdete v oznámení o vyřazení.
Poznámka:
Azure SQL Edge už nepodporuje platformu ARM64.
Azure SQL Edge je možné nasadit do clusteru Kubernetes jako modul IoT Edge prostřednictvím Azure IoT Edge spuštěného v Kubernetes nebo jako samostatný pod kontejneru. Ve zbývající části tohoto článku se zaměříme na samostatné nasazení kontejneru v clusteru Kubernetes. Informace o nasazení Azure IoT Edge v Kubernetes najdete v tématu Azure IoT Edge v Kubernetes (Preview).
Tento kurz ukazuje, jak nakonfigurovat vysoce dostupnou instanci Azure SQL Edge v kontejneru v clusteru Kubernetes.
- Vytvoření hesla SA
- Vytvoření úložiště
- Vytvoření nasazení
- Připojení pomocí aplikace SQL Server Management Studio (SSMS)
- Ověření selhání a obnovení
Kubernetes 1.6 a novější podporuje třídy úložiště, trvalé deklarace identity svazku a typ svazku disku Azure. Instance Azure SQL Edge můžete vytvářet a spravovat nativně v Kubernetes. Příklad v tomto článku ukazuje, jak vytvořit nasazení pro dosažení konfigurace s vysokou dostupností podobnou instanci clusteru s podporou převzetí služeb při selhání sdíleného disku. V této konfiguraci hraje Kubernetes roli orchestrátoru clusteru. Když instance Azure SQL Edge v kontejneru selže, orchestrátor spustí další instanci kontejneru, která se připojí ke stejnému trvalému úložišti.
V předchozím diagramu azure-sql-edge
je kontejner v podu. Kubernetes orchestruje prostředky v clusteru. Sada replik zajišťuje, že se pod po selhání uzlu automaticky obnoví. Aplikace se připojují ke službě. V tomto případě služba představuje nástroj pro vyrovnávání zatížení, který hostuje IP adresu, která zůstane stejná po selhání azure-sql-edge
.
V následujícím diagramu došlo k selhání kontejneru azure-sql-edge
. Jako orchestrátor kubernetes zaručuje správný počet instancí, které jsou v pořádku v sadě replik, a podle konfigurace spustí nový kontejner. Orchestrátor spustí nový pod na stejném uzlu a azure-sql-edge
znovu se připojí ke stejnému trvalému úložišti. Služba se připojí k znovu vytvořené azure-sql-edge
službě .
V následujícím diagramu došlo k selhání uzlu hostujícího azure-sql-edge
kontejner. Orchestrátor spustí nový pod na jiném uzlu a azure-sql-edge
znovu se připojí ke stejnému trvalému úložišti. Služba se připojí k znovu vytvořené azure-sql-edge
službě .
Požadavky
Cluster Kubernetes
Tento kurz vyžaduje cluster Kubernetes. Kroky používají ke správě clusteru kubectl .
Pro účely tohoto kurzu používáme službu Azure Kubernetes Service k nasazení Azure SQL Edge. Viz Nasazení clusteru Azure Kubernetes Service (AKS) pro vytvoření a připojení ke clusteru Kubernetes s jedním uzlem v AKS pomocí
kubectl
.
Poznámka:
Kvůli ochraně před selháním uzlu vyžaduje cluster Kubernetes více než jeden uzel.
Azure CLI
- Pokyny v tomto kurzu byly ověřeny v Azure CLI 2.10.1.
Vytvoření oboru názvů Kubernetes pro nasazení SQL Edge
Vytvořte nový obor názvů v clusteru Kubernetes. Tento obor názvů slouží k nasazení SQL Edge a všech požadovaných artefaktů. Další informace o oborech názvů Kubernetes najdete v tématu Obory názvů.
kubectl create namespace <namespace name>
Vytvoření hesla SA
Vytvořte heslo SA v clusteru Kubernetes. Kubernetes může spravovat citlivé informace o konfiguraci, jako jsou hesla jako tajné kódy.
Následující příkaz vytvoří heslo pro účet SA:
kubectl create secret generic mssql --from-literal=MSQL_SA_PASSWORD="<password>" -n <namespace name>
Nahraďte MyC0m9l&xP@ssw0rd
složitým heslem.
Vytvoření úložiště
Nakonfigurujte trvalý svazek a trvalou deklaraci identity svazku v clusteru Kubernetes. Proveďte následující kroky:
Vytvořte manifest pro definování třídy úložiště a trvalé deklarace identity svazku. Manifest určuje zřizovací nástroj úložiště, parametry a zásady uvolnění paměti. Cluster Kubernetes používá tento manifest k vytvoření trvalého úložiště.
Následující příklad yaml definuje třídu úložiště a trvalou deklaraci identity svazku. Zřizování tříd úložiště je
azure-disk
, protože tento cluster Kubernetes je v Azure. Typ účtu úložiště jeStandard_LRS
. Deklarace trvalého svazku má názevmssql-data
. Metadata deklarace identity trvalého svazku obsahují poznámku, která ji připojí zpět ke třídě úložiště.kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: azure-disk provisioner: kubernetes.io/azure-disk parameters: storageaccounttype: Standard_LRS kind: managed --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mssql-data annotations: volume.beta.kubernetes.io/storage-class: azure-disk spec: accessModes: - ReadWriteOnce resources: requests: storage: 8Gi
Uložte soubor (například pvc.yaml).
Vytvořte v Kubernetes trvalou deklaraci identity svazku.
kubectl apply -f <Path to pvc.yaml file> -n <namespace name>
<Path to pvc.yaml file>
je umístění, kam jste soubor uložili.Trvalý svazek se automaticky vytvoří jako účet úložiště Azure a vázaný na trvalou deklaraci identity svazku.
Ověřte trvalou deklaraci identity svazku.
kubectl describe pvc <PersistentVolumeClaim> -n <name of the namespace>
<PersistentVolumeClaim>
je název deklarace trvalého svazku.V předchozím kroku má deklarace trvalého svazku název
mssql-data
. Pokud chcete zobrazit metadata o trvalé deklaraci identity svazku, spusťte následující příkaz:kubectl describe pvc mssql-data -n <namespace name>
Vrácená metadata obsahují hodnotu s názvem
Volume
. Tato hodnota se mapuje na název objektu blob.Ověřte trvalý svazek.
kubectl describe pv -n <namespace name>
kubectl
vrátí metadata o trvalém svazku, který byl automaticky vytvořen a svázán s trvalou deklarací identity svazku.
Vytvoření nasazení
V tomto příkladu se kontejner hostující instanci Azure SQL Edge popisuje jako objekt nasazení Kubernetes. Nasazení vytvoří sadu replik. Sada replik vytvoří pod.
V tomto kroku vytvořte manifest pro popis kontejneru na základě image Dockeru Azure SQL Edge. Manifest odkazuje na trvalou mssql-data
deklaraci identity svazku a tajný mssql
klíč, který jste už použili v clusteru Kubernetes. Manifest také popisuje službu. Tato služba je nástroj pro vyrovnávání zatížení. Nástroj pro vyrovnávání zatížení zaručuje, že IP adresa přetrvává po obnovení instance Azure SQL Edge.
Vytvořte manifest (soubor YAML), který popisuje nasazení. Následující příklad popisuje nasazení, včetně kontejneru založeného na imagi kontejneru Azure SQL Edge.
apiVersion: apps/v1 kind: Deployment metadata: name: sqledge-deployment spec: replicas: 1 selector: matchLabels: app: sqledge template: metadata: labels: app: sqledge spec: volumes: - name: sqldata persistentVolumeClaim: claimName: mssql-data containers: - name: azuresqledge image: mcr.microsoft.com/azure-sql-edge:latest ports: - containerPort: 1433 volumeMounts: - name: sqldata mountPath: /var/opt/mssql env: - name: MSSQL_PID value: "Developer" - name: ACCEPT_EULA value: "Y" - name: MSSQL_SA_PASSWORD valueFrom: secretKeyRef: name: mssql key: MSSQL_SA_PASSWORD - name: MSSQL_AGENT_ENABLED value: "TRUE" - name: MSSQL_COLLATION value: "SQL_Latin1_General_CP1_CI_AS" - name: MSSQL_LCID value: "1033" terminationGracePeriodSeconds: 30 securityContext: fsGroup: 10001 --- apiVersion: v1 kind: Service metadata: name: sqledge-deployment spec: selector: app: sqledge ports: - protocol: TCP port: 1433 targetPort: 1433 name: sql type: LoadBalancer
Zkopírujte předchozí kód do nového souboru s názvem
sqldeployment.yaml
. Aktualizujte následující hodnoty:value: "Developer"
MSSQL_PID: Nastaví kontejner pro spuštění edice Azure SQL Edge Developer. Edice developer není licencovaná pro produkční data. Pokud je nasazení určené pro produkční použití, nastavte edici naPremium
hodnotu .Poznámka:
Další informace najdete v tématu Jak licencovat Azure SQL Edge.
persistentVolumeClaim
: Tato hodnota vyžaduje položku,claimName:
která se mapuje na název použitý pro trvalou deklaraci identity svazku. Tento kurz používá oblastmssql-data
.name: MSSQL_SA_PASSWORD
: Nakonfiguruje image kontejneru tak, aby nastavil heslo SA, jak je definováno v této části.valueFrom: secretKeyRef: name: mssql key: MSSQL_SA_PASSWORD
Když Kubernetes nasadí kontejner, odkazuje na tajný kód s názvem
mssql
získat hodnotu hesla.
Poznámka:
LoadBalancer
Pomocí typu služby je instance Azure SQL Edge přístupná vzdáleně (přes internet) na portu 1433.Uložte soubor (například
sqledgedeploy.yaml
).Vytvořte nasazení.
kubectl apply -f <Path to sqledgedeploy.yaml file> -n <namespace name>
<Path to sqldeployment.yaml file>
je umístění, kam jste soubor uložili.Vytvoří se nasazení a služba. Instance Azure SQL Edge je v kontejneru připojeném k trvalému úložišti.
Chcete-li zobrazit stav podu, zadejte
kubectl get pod -n <namespace name>
.Na předchozím obrázku má pod stav
Running
. Tento stav označuje, že kontejner je připravený. To může trvat několik minut.Poznámka:
Po vytvoření nasazení může trvat několik minut, než se pod zobrazí. Zpoždění spočívá v tom, že cluster načítá image kontejneru Azure SQL Edge z centra Dockeru. Po prvním načítání image může být následné nasazení rychlejší, pokud je nasazení na uzel, který už má image uloženou v mezipaměti.
Ověřte, že jsou služby spuštěné. Spusťte následující příkaz:
kubectl get services -n <namespace name>
Tento příkaz vrátí služby, které jsou spuštěné, a také interní a externí IP adresy služeb. Poznamenejte si externí IP adresu služby
mssql-deployment
. Pomocí této IP adresy se připojte k Azure SQL Edge.Další informace o stavu objektů v clusteru Kubernetes potřebujete spustit:
az aks browse --resource-group <MyResourceGroup> --name <MyKubernetesClustername>
Připojení k instanci Azure SQL Edge
Pokud jste kontejner nakonfigurovali podle popisu, můžete se připojit k aplikaci mimo virtuální síť Azure. sa
Použijte účet a externí IP adresu pro službu. Použijte heslo, které jste nakonfigurovali jako tajný klíč Kubernetes. Další informace o připojení k instanci Azure SQL Edge najdete v tématu Připojení k Azure SQL Edge.
Ověření selhání a obnovení
Pokud chcete ověřit selhání a obnovení, můžete pod odstranit. Proveďte následující kroky:
Vypíše pod se spuštěným Azure SQL Edgem.
kubectl get pods -n <namespace name>
Poznamenejte si název podu, na kterém běží Azure SQL Edge.
Odstraňte pod.
kubectl delete pod sqledge-deployment-7df66c9999-rc9xl
sqledge-deployment-7df66c9999-rc9xl
je hodnota vrácená z předchozího kroku pro název podu.
Kubernetes automaticky znovu vytvoří pod pro obnovení instance Azure SQL Edge a připojí se k trvalému úložišti. Slouží kubectl get pods
k ověření nasazení nového podu. Slouží kubectl get services
k ověření, že IP adresa nového kontejneru je stejná.
Shrnutí
V tomto kurzu jste zjistili, jak nasadit kontejnery Azure SQL Edge do clusteru Kubernetes pro zajištění vysoké dostupnosti.
- Vytvoření hesla SA
- Vytvoření úložiště
- Vytvoření nasazení
- Připojení pomocí Azure SQL Edge Management Studios (SSMS)
- Ověření selhání a obnovení