Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server – Linux
Ez a rövid útmutató bemutatja, hogyan konfigurálhat magas rendelkezésre állású SQL Server-példányt egy állandó tárterülettel rendelkező tárolóban az Azure Kubernetes Service-ben (AKS) vagy a Red Hat OpenShiftben. Ha az SQL Server-példány meghibásodik, az orchestration rendszer automatikusan újra létrehozza azt egy új podban. A fürtszolgáltatás rugalmasságot is biztosít a csomóponthibák ellen.
Ez a gyorsindítás az alábbi parancssori eszközöket használja a fürt kezeléséhez.
| Klaszter szolgáltatás | Parancssori eszköz |
|---|---|
| Azure Kubernetes Service (AKS) | kubectl (Kubernetes CLI) |
| Azure Red Hat OpenShift | oc (OpenShift CLI) |
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Fiók létrehozása ingyenes.
Egy Kubernetes-fürt. További információ a Kubernetes-fürtök
kubectl-val való létrehozásáról és az AKS-hez való csatlakozásról: Azure Kubernetes Service-fürt üzembe helyezése.Megjegyzés
A csomóponthibák elleni védelemhez egy Kubernetes-fürtnek több csomópontra van szüksége.
Azure parancssori felület (CLI). Tekintse meg Az Azure CLI telepítése a legújabb verzió telepítéséhez.
Sa-jelszó létrehozása
A rendszergazdai (sa) fiókot erős jelszóval kell védeni. A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
Hozzon létre egy
sajelszót a Kubernetes-fürtben. A Kubernetes bizalmas konfigurációs információkat, például titkos jelszavakat kezelhet.Ha egy
mssqlnevű titkos kulcsot szeretne létrehozni a Kubernetesben, amely a<password>MSSQL_SA_PASSWORDértéket tartalmazza, futtassa a következő parancsot. Cserélje le<password>összetett jelszóval.Fontos
A
SA_PASSWORDkörnyezeti változó elavult. AMSSQL_SA_PASSWORDhasználható helyette.kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Tároló létrehozása
Kubernetes-fürtön lévő adatbázisokhoz tartós tárterületet kell használnia. Konfigurálhat állandó kötet és állandó kötet jogcím a Kubernetes-fürtben az alábbi lépésekkel:
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ó kötet jogcímet határoz meg. A tárolási osztály biztosító
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: 8GiMentse a fájlt (például
pvc.yaml).Hozza létre az állandó mennyiségi jogcímet a Kubernetesben, ahol
<path to pvc.yaml file>a fájl mentési helye:kubectl apply -f <path to pvc.yaml file>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.
storageclass "azure-disk" created persistentvolumeclaim "mssql-data" createdEllenőrizze az állandó kötetre vonatkozó jogcímet, amelyben a
<persistentVolumeClaim>az állandó kötet jogcímének neve:kubectl describe pvc <persistentVolumeClaim>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-dataA visszaadott metaadatok egy úgynevezett
Volumeértéket tartalmaznak. Ez az érték a blob nevére van térképezve.Name: mssql-data Namespace: default StorageClass: azure-disk Status: Bound Volume: pvc-d169b88e-f26d-11e7-bc3e-0a58ac1f09a4 Labels: ‹none> Annotations: kubectl.kubernetes.io/last-applied-configuration-{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{"volume.beta. kubernetes.io/storage-class":"azure-disk"},"name":"mssq1-data... pv.kubernetes.io/bind-completed-yes pv.kubernetes.io/bound-by-controller=yes volume.beta.kubernetes.io/storage-class=azure-disk volume.beta.kubernetes.io/storage-provisioner=kubernetes.io/azure-disk Capacity: 8Gi Access Modes: RWO Events: <none>A térfogat értéke megegyezik a blob nevének egy részével az Azure portálon.
Ellenőrizze az állandó kötetet.
kubectl describe pvkubectlaz állandó kötetre vonatkozó metaadatokat adja vissza, amely automatikusan létre lett hozva, és az állandó kötet jogcíméhez van kötve.
Hozza létre az üzembe helyezést
Az SQL Server-példányt üzemeltető tároló kubernetes-üzembehelyezési objektumként. Az üzembe helyezés létrehoz egy replikakészletet. A replikakészlet létrehozza a pod.
Létrehoz egy jegyzékfájlt a tároló leírásához az SQL Server mssql-server-linux Docker-rendszerkép alapján.
- A jegyzék az
mssql-serverállandó kötet jogcímére és amssqlKubernetes-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 SQL Server-példány helyreállítása után.
- A jegyzék ismerteti az erőforrás-kéréseket és korlátokat. Ezek a minimális rendszerkövetelményekenalapulnak.
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 ír le, beleértve az SQL Server tárolólemezképén alapuló tárolót is.
apiVersion: apps/v1 kind: Deployment metadata: name: mssql-deployment spec: replicas: 1 selector: matchLabels: app: mssql template: metadata: labels: app: mssql spec: terminationGracePeriodSeconds: 30 hostname: mssqlinst securityContext: fsGroup: 10001 containers: - name: mssql image: mcr.microsoft.com/mssql/server:2022-latest resources: requests: memory: "2G" cpu: "2000m" limits: memory: "2G" cpu: "2000m" ports: - containerPort: 1433 env: - name: MSSQL_PID value: "Developer" - name: ACCEPT_EULA value: "Y" - name: MSSQL_SA_PASSWORD valueFrom: secretKeyRef: name: mssql key: MSSQL_SA_PASSWORD volumeMounts: - name: mssqldb mountPath: /var/opt/mssql volumes: - name: mssqldb persistentVolumeClaim: claimName: mssql-data --- apiVersion: v1 kind: Service metadata: name: mssql-deployment spec: selector: app: mssql ports: - protocol: TCP port: 1433 targetPort: 1433 type: LoadBalancerMásolja az előző kódot egy új, névvel ellátott
sqldeployment.yamlfájlba. Frissítse a következő értékeket:MSSQL_PID
value: "Developer": Beállítja a tárolót az SQL Server Developer Edition futtatására. A fejlesztői kiadás nincs éles adat használatára licencelve. Ha az üzembe helyezés éles használatra készült, állítsa be a megfelelő kiadást (Enterprise,StandardvagyExpress). További információért lásd a(z) "Hogyan licenceljük a SQL Server-t"részt.Ha az SQL Server 2025 -höz (17.x) vagy egy újabb verzióhoz helyez üzembe tárolót, használja
MSSQL_PID=DeveloperStandarda Standard Developer kiadáshoz ésMSSQL_PID=Developeraz Enterprise Developer kiadáshoz.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. Ez az oktatóanyag a(z)mssql-data-et használja.name: MSSQL_SA_PASSWORD: Konfigurálja a tárolórendszerképet a jelen szakaszban meghatározottsajelszó beállításához.valueFrom: secretKeyRef: name: mssql key: MSSQL_SA_PASSWORDAmikor a Kubernetes telepíti a tárolót, az a jelszó értékének lekéréséhez elnevezett
mssqltitkos kódra hivatkozik.securityContext: Egy pod vagy tároló jogosultsági és hozzáférés-vezérlési beállításait határozza meg. Ebben az esetben a pod szintjén van megadva, így az összes tároló megfelel ennek a biztonsági környezetnek. A biztonsági környezetben afsGroupa10001értékkel határozzuk meg, amely amssqlcsoport csoportazonosítója (GID). Ez az érték azt jelenti, hogy a tároló összes folyamata a kiegészítő GID-10001(mssql) részét képezi. A kötet/var/opt/mssqlés a kötetben létrehozott fájlok tulajdonosa a GID10001(amssqlcsoport).
Figyelmeztetés
A
LoadBalancerszolgáltatástípus használatával az SQL Server-példány távolról (az interneten keresztül) érhető el az 1433-es porton.Mentse a fájlt. Például:
sqldeployment.yaml.Hozza létre az üzembe helyezést, ahol
<path to sqldeployment.yaml file>a fájl mentési helye:kubectl apply -f <path to sqldeployment.yaml file>Az üzembe helyezés és a szolgáltatás elkészült. Az SQL Server-példány egy tárolóban található, és állandó tárolóhoz van csatlakoztatva.
deployment "mssql-deployment" created service "mssql-deployment" createdAz üzembe helyezés és a szolgáltatás elkészült. Az SQL Server-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:NAME READY STATUS RESTARTS AGE mssql-deployment-3813464711-h312s 1/1 Running 0 17mA pod állapota
Running. Ez az állapot azt jelzi, hogy a tároló készen áll. 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 oka, hogy a fürt lekéri a mssql-server-linux képet a Microsoft Artifact Registrybő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 a következő parancsot:
kubectl get servicesEz 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 SQL Serverhez.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 52m mssql-deployment LoadBalancer 10.0.113.96 52.168.26.254 1433:30619/TCP 2mA Kubernetes-fürt objektumainak állapotával kapcsolatos további információkért futtassa a következő parancsot. Ne felejtse el az
<MyResourceGroup>és<MyKubernetesClustername>helyére beírni az erőforráscsoportot és a Kubernetes-fürt nevét:az aks browse --resource-group <MyResourceGroup> --name <MyKubernetesClustername>Az alábbi parancs futtatásával azt is ellenőrizheti, hogy a tároló nem gyökérként fut-e, ahol
<nameOfSqlPod>az SQL Server-pod neve:kubectl.exe exec <nameOfSqlPod> -it -- /bin/bashHa a
mssql-et futtatja, a felhasználónévwhoami-ként látható.mssqlnem root felhasználó.whoami
Csatlakozás az SQL Server-példányhoz
Az Azure-beli virtuális hálózaton kívülről is csatlakozhat egy alkalmazáshoz a szolgáltatás sa fiókjával és külső IP-címével. Használja az OpenShift-titkos kódként konfigurált jelszót.
Az alábbi alkalmazásokkal csatlakozhat az SQL Server-példányhoz.
- MSSQL-bővítmény a Visual Studio Code-hoz
- SQL Server Management Studio (SSMS)
- SQL Server Data Tools (SSDT)
Csatlakozás sqlcmd használatával
A sqlcmdvaló csatlakozáshoz futtassa a következő parancsot.
sqlcmd -S <External IP address> -U sa -P "<password>"
Cserélje le <External IP address> a mssql-deployment szolgáltatás IP-címére, és <password> az összetett jelszóra.
Figyelmeztetés
A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
Hiba és helyreállítás ellenőrzése
A hiba és a helyreállítás ellenőrzéséhez törölje a podot az alábbi lépésekkel:
Sorolja fel az SQL Servert futtató podot.
kubectl get podsJegyezze fel az SQL Servert futtató pod nevét.
Törölje a podot.
kubectl delete pod mssql-deployment-0mssql-deployment-0a pod nevének előző lépéséből visszaadott érték.
A Kubernetes automatikusan újra létrehozza a podot egy SQL Server-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 . Az kubectl get services használatával ellenőrizze, hogy az új tároló IP-címe megegyezik-e.
Erőforrások tisztítása
Ha nem tervezi végigvenni az alábbi oktatóanyagokat, törölje a felesleges erőforrásokat. Az az group delete paranccsal távolítsa el az erőforráscsoportot, a tárolószolgáltatást és az összes kapcsolódó erőforrást. Cserélje le a <MyResourceGroup> a fürtöt tartalmazó erőforráscsoport nevére.
az group delete --name <MyResourceGroup> --yes --no-wait