Nasazení služby SQL Managed Instance povolené službou Azure Arc pomocí nástrojů Kubernetes
Tento článek ukazuje, jak nasadit službu Azure SQL Managed Instance pro Azure Arc pomocí nástrojů Kubernetes.
Požadavky
Už byste měli vytvořit kontroler dat.
Pokud chcete vytvořit spravovanou instanci SQL 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.
Přehled
Pokud chcete vytvořit spravovanou instanci SQL, musíte:
- Vytvoření tajného kódu Kubernetes pro bezpečné uložení přihlašovacího jména a hesla správce systému
- Vytvoření vlastního prostředku služby SQL Managed Instance na základě definice vlastního
SqlManagedInstance
prostředku
Definujte obě tyto položky v souboru yaml.
Vytvoření souboru yaml
Soubor yaml šablony použijte jako výchozí bod k vytvoření vlastního souboru YAML spravované instance SQL. Stáhněte si tento soubor do místního počítače a otevřete ho v textovém editoru. Použijte textový editor, jako je VS Code , který podporuje zvýrazňování syntaxe a lintování souborů yaml.
Poznámka:
Počínaje verzí ReadWriteMany
z února 2022 musí být pro zálohy zadána třída úložiště podporující RWX. Přečtěte si další informace o režimech přístupu.
Pokud pro zálohy není zadaná žádná třída úložiště, použije se výchozí třída úložiště v Kubernetes. Pokud výchozí nastavení nepodporuje RWX, instalace služby SQL Managed Instance nemusí být úspěšná.
Příklad souboru yaml
Podívejte se na následující příklad souboru yaml:
apiVersion: v1
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
kind: Secret
metadata:
name: sql1-login-secret
type: Opaque
---
apiVersion: sql.arcdata.microsoft.com/v12
kind: SqlManagedInstance
metadata:
name: sql1
annotations:
exampleannotation1: exampleannotationvalue1
exampleannotation2: exampleannotationvalue2
labels:
examplelabel1: examplelabelvalue1
examplelabel2: examplelabelvalue2
spec:
dev: true #options: [true, false]
licenseType: LicenseIncluded #options: [LicenseIncluded, BasePrice]. BasePrice is used for Azure Hybrid Benefits.
tier: GeneralPurpose #options: [GeneralPurpose, BusinessCritical]
security:
adminLoginSecret: sql1-login-secret
scheduling:
default:
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "1"
memory: 2Gi
services:
primary:
type: LoadBalancer
storage:
#backups:
# volumes:
# - className: azurefile # Backup volumes require a ReadWriteMany (RWX) capable storage class
# size: 5Gi
data:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
datalogs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
logs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
Přizpůsobení přihlášení a hesla
Tajný kód Kubernetes je uložený jako řetězec kódovaný jako base64 – jeden pro uživatelské jméno a druhý pro heslo. Budete muset base64 zakódovat přihlašovací jméno a heslo správce systému a umístit je do zástupného umístění na data.password
adrese a data.username
. Nezahrnujte symboly <
a >
symboly uvedené v šabloně.
Poznámka:
Pro optimální zabezpečení není použití hodnoty sa
pro přihlášení povoleno .
Postupujte podle zásad složitosti hesla.
K kódování požadovaného uživatelského jména a hesla můžete použít online nástroj base64 nebo můžete použít 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
Přizpůsobení názvu
Šablona má hodnotu sql1
atributu name. Tuto hodnotu můžete změnit, ale musí obsahovat znaky, které splňují standardy pojmenování DNS. Musíte také změnit název tajného kódu tak, aby odpovídal. Pokud například změníte název spravované instance SQL na sql2
, musíte změnit název tajného klíče z sql1-login-secret
na sql2-login-secret
Přizpůsobení požadavků na prostředky
Podle potřeby můžete změnit požadavky na prostředky – omezení paměti RAM a jádra a požadavky.
Požadavky na limity a požadavky na prostředky:
- Hodnota limitu počtu jader se vyžaduje pro účely fakturace.
- Zbývající požadavky a limity prostředků jsou volitelné.
- Limit počtu jader a požadavek musí být kladné celé číslo, pokud je zadáno.
- Pro požadavek na jádra je vyžadováno minimálně 1 jádro, pokud je zadáno.
- Formát hodnoty paměti se řídí zápisem Kubernetes.
- V případě zadání požadavku na paměť se vyžaduje minimálně 2 GB.
- Obecně platí, že pro každý 1 jádro pro případy použití v produkčním prostředí byste měli mít 4 GB paměti RAM.
Přizpůsobení typu služby
V případě potřeby je možné typ služby změnit na NodePort. Přiřadí se náhodné číslo portu.
Přizpůsobení úložiště
Třídy úložiště můžete přizpůsobit tak, aby odpovídaly vašemu prostředí. Pokud si nejste jistí, které třídy úložiště jsou k dispozici, spusťte příkaz kubectl get storageclass
, který je zobrazí.
Šablona má výchozí hodnotu default
.
Například
storage:
data:
volumes:
- className: default
Tento příklad znamená, že existuje třída úložiště s názvem default
, ne že existuje třída úložiště, která je výchozí. Volitelně můžete také změnit velikost úložiště. Další informace najdete v tématu Konfigurace úložiště.
Vytvoření spravované instance SQL
Teď, když jste přizpůsobili soubor yaml spravované instance SQL, můžete spravovanou instanci SQL vytvořit spuštěním následujícího příkazu:
kubectl create -n <your target namespace> -f <path to your yaml file>
#Example
#kubectl create -n arc -f C:\arc-data-services\sqlmi.yaml
Monitorování stavu vytváření
Vytvoření spravované instance SQL bude trvat několik minut. Průběh můžete sledovat v jiném okně terminálu pomocí následujících příkazů:
Poznámka:
Následující ukázkové příkazy předpokládají, že jste vytvořili spravovanou instanci SQL s názvem sql1
arc
a oborem názvů Kubernetes. Pokud jste použili jiný název oboru názvů nebo spravované instance SQL, můžete názvy nahradit arc
a sqlmi
zadávat.
kubectl get sqlmi/sql1 --namespace arc
kubectl get pods --namespace arc
Můžete také zkontrolovat stav vytvoření libovolného konkrétního podu. Spusťte kubectl describe pod ...
. Tento příkaz použijte k řešení potíží. Příklad:
kubectl describe pod/<pod name> --namespace arc
#Example:
#kubectl describe pod/sql1-0 --namespace arc
Řešení potíží s nasazením
Pokud při nasazení narazíte na nějaké potíže, projděte si průvodce odstraňováním potíží.
Související obsah
Připojení ke službě SQL Managed Instance povolené službou Azure Arc