Creare Azure SQL'istanza gestita usando gli strumenti Kubernetes

Nota

In quanto funzionalità di anteprima, la tecnologia presentata in questo articolo è soggetta alle condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Gli aggiornamenti più recenti sono disponibili nelle note sulla versione.

Per l'aggiornamento corrente, la distribuzione del controller dati Arc in modalità di connettività diretta è supportata solo da portale di Azure.

Prerequisiti

È necessario avere già creato un controller Azure Arc dati.

Per creare un'istanza gestita di SQL usando gli strumenti Kubernetes, è necessario aver installato gli strumenti kubernetes. Gli esempi in questo articolo useranno , ma approcci simili potrebbero essere usati con altri strumenti Kubernetes, ad esempio il dashboard di Kubernetes, o se si ha familiarità con tali strumenti e kubectl oc helm yaml/json di Kubernetes.

Installare lo strumento kubectl

Panoramica

Per creare un'istanza gestita di SQL, è necessario creare un segreto Kubernetes per archiviare l'account di accesso e la password dell'amministratore di sistema in modo sicuro e una risorsa personalizzata dell'istanza gestita di SQL in base alla definizione di risorsa personalizzata sqlmanagedinstance.

Creare un file yaml

È possibile usare il file yaml del modello come punto di partenza per creare un file YAML personalizzato dell'istanza gestita di SQL. Scaricare questo file nel computer locale e aprirlo in un editor di testo. È utile usare un editor di testo, ad esempio un VS Code che supporta l'evidenziazione della sintassi e la linting per i file yaml.

Questo è un file yaml di esempio:

apiVersion: v1
data:
  password: <your base64 encoded password>
  username: <your base64 encoded user name. 'sa' is not allowed>
kind: Secret
metadata:
  name: sql1-login-secret
type: Opaque
---
apiVersion: sql.arcdata.microsoft.com/v1alpha1
kind: sqlmanagedinstance
metadata:
  name: sql1
spec:
  limits:
    memory: 4Gi
    vcores: "4"
  requests:
    memory: 2Gi
    vcores: "1"
  service:
    type: LoadBalancer
  storage:
    data:
      className: default
      size: 5Gi
    logs:
      className: default
      size: 1Gi

Personalizzazione dell'account di accesso e della password

Un segreto Kubernetes viene archiviato come stringa con codifica Base64, una per il nome utente e una per la password. Sarà necessario codificare in base64 un account di accesso e una password dell'amministratore di sistema e posizionarli nel percorso segnaposto data.password in e data.username . Non includere i < simboli e forniti nel > modello.

Nota

Per una sicurezza ottimale, l'uso del valore 'sa' non è consentito per l'account di accesso . Seguire i criteri di complessità delle password.

È possibile usare uno strumento online per codificare il nome utente e la password in base 64 oppure usare gli strumenti dell'interfaccia della riga di comando predefiniti a seconda della piattaforma.

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

Personalizzazione del nome

Il modello ha il valore 'sql1' per l'attributo name. È possibile modificare questa impostazione, ma devono essere caratteri che seguono gli standard di denominazione DNS. È anche necessario modificare il nome del segreto in modo che corrisponda. Ad esempio, se si modifica il nome dell'istanza gestita di SQL in "sql2", è necessario modificare il nome del segreto da "sql1-login-secret" a "sql2-login-secret"

Personalizzazione dei requisiti delle risorse

È possibile modificare i requisiti delle risorse, i limiti e le richieste di RAM e core, in base alle esigenze.

Nota

Altre informazioni sulla governance delle risorse di Kubernetes.

Requisiti per i limiti e le richieste delle risorse:

  • Il valore limite dei core è obbligatorio a scopo di fatturazione.
  • Il resto delle richieste e dei limiti delle risorse è facoltativo.
  • Il limite e la richiesta dei core devono essere un valore intero positivo, se specificato.
  • Il minimo di 2 core è necessario per la richiesta core, se specificato.
  • Il formato del valore di memoria segue la notazione Kubernetes.
  • Per la richiesta di memoria è necessario almeno 2Gi, se specificato.
  • Come linea guida generale, è necessario avere 4 GB di RAM per ogni 1 core per i casi d'uso di produzione.

Personalizzazione del tipo di servizio

Se lo si desidera, il tipo di servizio può essere modificato in NodePort. Verrà assegnato un numero di porta casuale.

Personalizzazione dell'archiviazione

È possibile personalizzare le classi di archiviazione per l'archiviazione in modo che corrispondano all'ambiente. Se non si è certi delle classi di archiviazione disponibili, è possibile eseguire il comando kubectl get storageclass per visualizzarle. Il modello ha un valore predefinito "default". Ciò significa che è presente una classe di archiviazione denominata "default" e non una classe di archiviazione che rappresenta l'impostazione predefinita. Facoltativamente, è anche possibile modificare le dimensioni dello spazio di archiviazione. Per altre informazioni sulla configurazione dell'archiviazione, vedere.

Creazione dell'istanza gestita di SQL

Dopo aver personalizzato il file YAML dell'istanza gestita di SQL, è possibile creare l'istanza gestita di SQL eseguendo il comando seguente:

kubectl create -n <your target namespace> -f <path to your yaml file>

#Example
#kubectl create -n arc -f C:\arc-data-services\sqlmi.yaml

Monitoraggio dello stato di creazione

La creazione dell'istanza gestita di SQL può richiedere alcuni minuti. È possibile monitorare lo stato di avanzamento in un'altra finestra del terminale con i comandi seguenti:

Nota

I comandi di esempio seguenti presuppongono che siano state create un'istanza gestita di SQL denominata 'sql1' e uno spazio dei nomi Kubernetes con il nome 'arc'. Se è stato usato uno spazio dei nomi o un nome di istanza gestita di SQL diverso, è possibile sostituire "arc" e "sqlmi" con i propri nomi.

kubectl get sqlmi/sql1 --namespace arc
kubectl get pods --namespace arc

È anche possibile controllare lo stato di creazione di qualsiasi pod specifico eseguendo un comando simile al seguente. Ciò è particolarmente utile per la risoluzione di eventuali problemi.

kubectl describe po/<pod name> --namespace arc

#Example:
#kubectl describe po/sql1-0 --namespace arc

Risoluzione dei problemi di creazione

Se si verificano problemi durante la creazione, vedere la guida alla risoluzione dei problemi.

Passaggi successivi

Connettersi a istanza gestita di SQL abilitata per Azure Arc