Azure SQL Edge-tároló üzembe helyezése a Kubernetesben
Fontos
Az Azure SQL Edge 2025. szeptember 30-án megszűnik. További információkért és a migrálási lehetőségekért tekintse meg a kivonásról szóló közleményt.
Feljegyzés
Az Azure SQL Edge már nem támogatja az ARM64 platformot.
Az Azure SQL Edge üzembe helyezhető Kubernetes-fürtön IoT Edge-modulként is a Kubernetesen futó Azure IoT Edge-en keresztül, vagy önálló tároló podként. A cikk további részében a Kubernetes-fürtök különálló tárolótelepítésére összpontosítunk. Az Azure IoT Edge Kubernetesen való üzembe helyezéséről további információt az Azure IoT Edge-ben a Kubernetesen (előzetes verzió) talál.
Ez az oktatóanyag bemutatja, hogyan konfigurálhat magas rendelkezésre állású Azure SQL Edge-példányt egy Kubernetes-fürt tárolójában.
- Sa-jelszó létrehozása
- Tároló létrehozása
- Az üzembe helyezés létrehozása
- Csatlakozás az SQL Server Management Studióval (SSMS)
- Hiba és helyreállítás ellenőrzése
A Kubernetes 1.6-os és újabb verziói támogatják a tárosztályokat, az állandó kötet jogcímeit és az Azure-lemezkötet típusát. Az Azure SQL Edge-példányokat natív módon hozhatja létre és kezelheti a Kubernetesben. A cikkben szereplő példa bemutatja, hogyan hozhat létre üzembe helyezést a megosztott lemez feladatátvevő fürtpéldányához hasonló magas rendelkezésre állású konfiguráció eléréséhez. Ebben a konfigurációban a Kubernetes a fürt vezénylője. Ha egy tárolóban egy Azure SQL Edge-példány meghibásodik, a vezénylő elindítja a tároló egy másik példányát, amely ugyanahhoz az állandó tárolóhoz csatlakozik.
Az előző ábrán azure-sql-edge
egy pod tárolója látható. A Kubernetes vezényli a fürt erőforrásait. A replikakészlet biztosítja, hogy a pod egy csomóponthiba után automatikusan helyreálljon. Az alkalmazások csatlakoznak a szolgáltatáshoz. Ebben az esetben a szolgáltatás egy terheléselosztót jelöl, amely egy IP-címet üzemeltet, amely a hiba után azure-sql-edge
is ugyanaz marad.
Az alábbi ábrán a azure-sql-edge
tároló sikertelen volt. Vezénylőként a Kubernetes garantálja a replikakészlet kifogástalan állapotú példányainak megfelelő számát, és a konfigurációnak megfelelően elindít egy új tárolót. A vezénylő elindít egy új podot ugyanazon a csomóponton, és azure-sql-edge
újra csatlakozik ugyanahhoz az állandó tárhoz. A szolgáltatás az újra létrehozott azure-sql-edge
szolgáltatáshoz csatlakozik.
Az alábbi ábrán a tárolót üzemeltető azure-sql-edge
csomópont meghiúsult. A vezénylő elindítja az új podot egy másik csomóponton, és azure-sql-edge
újra csatlakozik ugyanahhoz az állandó tárhoz. A szolgáltatás az újra létrehozott azure-sql-edge
szolgáltatáshoz csatlakozik.
Előfeltételek
Kubernetes-fürt
Az oktatóanyaghoz Kubernetes-fürt szükséges. A lépések a kubectl használatával kezelik a fürtöt.
Az oktatóanyag célja az Azure Kubernetes Service használata az Azure SQL Edge üzembe helyezéséhez. Lásd: Azure Kubernetes Service-fürt üzembe helyezése egy egycsomópontos Kubernetes-fürt létrehozásához és az AKS-hez való csatlakozáshoz
kubectl
az AKS-ben.
Feljegyzés
A csomóponthibák elleni védelemhez egy Kubernetes-fürtnek több csomópontra van szüksége.
Azure CLI
- Az oktatóanyag utasításait az Azure CLI 2.10.1-ben ellenőriztük.
Kubernetes-névtér létrehozása az SQL Edge üzembe helyezéséhez
Hozzon létre egy új névteret a Kubernetes-fürtben. Ez a névtér az SQL Edge és az összes szükséges összetevő üzembe helyezésére szolgál. További információ a Kubernetes-névterekről: névterek.
kubectl create namespace <namespace name>
Sa-jelszó létrehozása
Hozzon létre egy SA-jelszót a Kubernetes-fürtben. A Kubernetes bizalmas konfigurációs információkat, például titkos jelszavakat kezelhet.
A következő parancs létrehoz egy jelszót az SA-fiókhoz:
kubectl create secret generic mssql --from-literal=MSQL_SA_PASSWORD="MyC0m9l&xP@ssw0rd" -n <namespace name>
Cserélje le MyC0m9l&xP@ssw0rd
egy összetett jelszóra.
Tároló létrehozása
Konfiguráljon állandó kötetre és állandó kötetre vonatkozó jogcímet a Kubernetes-fürtben. Végezze el a következő lépéseket:
Hozzon létre egy jegyzékfájlt a tárolási osztály és az állandó kötet jogcímének meghatározásához. A jegyzék meghatározza a tárkiépítési szolgáltatót, a paramétereket és a visszaigénylési szabályzatot. A Kubernetes-fürt ezt a jegyzékfájlt használja az állandó tároló létrehozásához.
Az alábbi yaml-példa egy tárolási osztályt és egy állandó mennyiségi jogcímet határoz meg. A tárosztály-kiépítés azért van
azure-disk
, mert ez a Kubernetes-fürt az Azure-ban található. A tárfiók típusa a következőStandard_LRS
: . Az állandó kötet jogcím nevemssql-data
. Az állandó mennyiségi jogcím metaadatai egy megjegyzést tartalmaznak, amely visszakapcsozza a tárosztályhoz.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
Mentse a fájlt (például pvc.yaml).
Hozza létre az állandó mennyiségi jogcímet a Kubernetesben.
kubectl apply -f <Path to pvc.yaml file> -n <namespace name>
<Path to pvc.yaml file>
az a hely, ahová a fájlt mentette.Az állandó kötet automatikusan azure-tárfiókként jön létre, és az állandó kötet jogcíméhez van kötve.
Ellenőrizze az állandó mennyiségi jogcímet.
kubectl describe pvc <PersistentVolumeClaim> -n <name of the namespace>
<PersistentVolumeClaim>
az állandó kötet jogcímének neve.Az előző lépésben az állandó mennyiségi jogcím neve
mssql-data
. Az állandó kötet jogcímével kapcsolatos metaadatok megtekintéséhez futtassa a következő parancsot:kubectl describe pvc mssql-data -n <namespace name>
A visszaadott metaadatok egy úgynevezett
Volume
értéket tartalmaznak. Ez az érték a blob nevére lesz leképzve.Ellenőrizze az állandó kötetet.
kubectl describe pv -n <namespace name>
kubectl
az állandó kötetre vonatkozó metaadatokat adja vissza, amely automatikusan létre lett hozva, és az állandó kötet jogcíméhez van kötve.
Az üzembe helyezés létrehozása
Ebben a példában az Azure SQL Edge-példányt üzemeltető tároló kubernetes-üzembehelyezési objektumként van leírva. Az üzembe helyezés létrehoz egy replikakészletet. A replikakészlet létrehozza a podot.
Ebben a lépésben hozzon létre egy jegyzékfájlt, amely az Azure SQL Edge Docker-rendszerkép alapján írja le a tárolót. A jegyzék az mssql-data
állandó kötet jogcímére és a mssql
Kubernetes-fürtre már alkalmazott titkos kódra hivatkozik. A jegyzék egy szolgáltatást is ír le. Ez a szolgáltatás egy terheléselosztó. A terheléselosztó garantálja, hogy az IP-cím megmarad az Azure SQL Edge-példány helyreállítása után.
Hozzon létre egy jegyzékfájlt (egy YAML-fájlt) az üzembe helyezés leírásához. Az alábbi példa egy üzembe helyezést mutat be, beleértve az Azure SQL Edge-tárolórendszerképen alapuló tárolót is.
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
Másolja az előző kódot egy új, névvel ellátott
sqldeployment.yaml
fájlba. Frissítse a következő értékeket:value: "Developer"
MSSQL_PID: Beállítja a tárolót az Azure SQL Edge Developer Edition futtatására. A fejlesztői kiadás nincs éles adatokhoz licencelve. Ha az üzembe helyezés éles használatra készült, állítsa a kiadást a következőrePremium
: .Feljegyzés
További információ: Az Azure SQL Edge licenceléséhez.
persistentVolumeClaim
: Ehhez az értékhez egy bejegyzésreclaimName:
van szükség, amely megfelel az állandó kötet jogcíméhez használt névnek. Ebben az oktatóanyagban a következőt használjuk:mssql-data
.name: MSSQL_SA_PASSWORD
: Konfigurálja a tárolórendszerképet az sa-jelszó beállításához az ebben a szakaszban meghatározott módon.valueFrom: secretKeyRef: name: mssql key: MSSQL_SA_PASSWORD
Amikor a Kubernetes telepíti a tárolót, az a jelszó értékének lekéréséhez elnevezett
mssql
titkos kódra hivatkozik.
Feljegyzés
A szolgáltatástípus használatával
LoadBalancer
az Azure SQL Edge-példány távolról (az interneten keresztül) elérhető az 1433-es porton.Mentse a fájlt (például
sqledgedeploy.yaml
).Hozza létre az üzembe helyezést.
kubectl apply -f <Path to sqledgedeploy.yaml file> -n <namespace name>
<Path to sqldeployment.yaml file>
az a hely, ahová a fájlt mentette.Létrejön az üzembe helyezés és a szolgáltatás. Az Azure SQL Edge-példány egy tárolóban található, és állandó tárolóhoz van csatlakoztatva.
A pod állapotának megtekintéséhez írja be a következőt
kubectl get pod -n <namespace name>
:Az előző képen a pod állapota
Running
. Ez az állapot azt jelzi, hogy a tároló készen áll. A folyamat befejezése eltarthat néhány percig.Feljegyzés
Az üzembe helyezés létrehozása után eltarthat néhány percig, amíg a pod látható lesz. A késés az, hogy a fürt lekéri az Azure SQL Edge-tárolórendszerképet a Docker Hubról. A rendszerkép első lekérése után a későbbi üzembe helyezések gyorsabbak lehetnek, ha az üzembe helyezés olyan csomóponton történik, amelyen már gyorsítótárazott a rendszerkép.
Ellenőrizze, hogy futnak-e a szolgáltatások. Futtassa az alábbi parancsot:
kubectl get services -n <namespace name>
Ez a parancs a futó szolgáltatásokat, valamint a szolgáltatások belső és külső IP-címét adja vissza. Jegyezze fel a szolgáltatás külső IP-címét
mssql-deployment
. Ezzel az IP-címmel csatlakozhat az Azure SQL Edge-hez.A Kubernetes-fürt objektumainak állapotával kapcsolatos további információkért futtassa a következőt:
az aks browse --resource-group <MyResourceGroup> --name <MyKubernetesClustername>
Csatlakozás az Azure SQL Edge-példányhoz
Ha a leírtak szerint konfigurálta a tárolót, az Azure-beli virtuális hálózaton kívülről csatlakozhat egy alkalmazáshoz. Használja a szolgáltatás fiókját sa
és külső IP-címét. Használja a Kubernetes-titkos kódként konfigurált jelszót. További információ az Azure SQL Edge-példányhoz való csatlakozásról: Csatlakozás az Azure SQL Edge-hez.
Hiba és helyreállítás ellenőrzése
A hiba és a helyreállítás ellenőrzéséhez törölheti a podot. Hajtsa végre a következő lépéseket:
Az Azure SQL Edge-t futtató pod listázása.
kubectl get pods -n <namespace name>
Jegyezze fel az Azure SQL Edge-t futtató pod nevét.
Törölje a podot.
kubectl delete pod sqledge-deployment-7df66c9999-rc9xl
sqledge-deployment-7df66c9999-rc9xl
A podnév előző lépéséből visszaadott érték.
A Kubernetes automatikusan újra létrehozza a podot egy Azure SQL Edge-példány helyreállításához, és csatlakozik az állandó tárolóhoz. Az új pod üzembe helyezésének ellenőrzésére használható kubectl get pods
. Annak ellenőrzésére, kubectl get services
hogy az új tároló IP-címe megegyezik-e.
Összegzés
Ebben az oktatóanyagban megtanulta, hogyan helyezhet üzembe Azure SQL Edge-tárolókat egy Kubernetes-fürtön a magas rendelkezésre állás érdekében.
- Sa-jelszó létrehozása
- Tároló létrehozása
- Az üzembe helyezés létrehozása
- Csatlakozás az Azure SQL Edge Management Studioshoz (SSMS)
- Hiba és helyreállítás ellenőrzése