Configurare Kubernetes in più computer per distribuzioni di cluster Big Data di SQL Server
Si applica a: SQL Server 2019 (15.x)
Importante
Il componente aggiuntivo per i cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.
Questo articolo fornisce un esempio di come usare kubeadm per configurare Kubernetes in più computer per distribuzioni di cluster Big Data di SQL Server. In questo esempio la destinazione è rappresentata da più computer Ubuntu 16.04 o 18.04 LTS (fisici o virtuali). Se la distribuzione viene eseguita in una piattaforma Linux diversa, è necessario modificare alcuni dei comandi per adeguarli al sistema in uso.
Suggerimento
Per gli script di esempio che configurano Kubernetes, vedere Creare un cluster Kubernetes usando Kubeadm in Ubuntu 20.04 LTS.
Per uno script di esempio che automatizza la distribuzione di uno strumento kubeadm per nodo singolo in una macchina virtuale e quindi distribuisce una configurazione predefinita di un cluster Big Data, vedere distribuzione di un cluster kubeadm a nodo singolo.
Prerequisiti
- Almeno tre computer fisici o macchine virtuali Linux
- Configurazione consigliata per singolo computer:
- 8 CPU
- 64 GB di memoria
- 100 GB di spazio di archiviazione
Importante
Prima di avviare la distribuzione del cluster Big Data, assicurarsi che gli orologi siano sincronizzati tra tutti i nodi Kubernetes cui è destinata la distribuzione. Il cluster Big Data include proprietà di stato predefinite per diversi servizi che sono sensibili al tempo e le differenze di orario possono causare errori relativi allo stato.
Preparare i computer
Per ogni computer sono previsti prerequisiti diversi. In ogni computer eseguire i comandi seguenti in un terminale Bash:
Aggiungere il computer corrente al file
/etc/hosts
:echo $(hostname -i) $(hostname) | sudo tee -a /etc/hosts
Disabilitare lo scambio in tutti i dispositivi.
sudo sed -i "/ swap / s/^/#/" /etc/fstab sudo swapoff -a
Importare le chiavi e registrare il repository per Kubernetes.
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo sudo tee /etc/apt/trusted.gpg.d/apt-key.asc echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
Configurare i prerequisiti Docker e Kubernetes nel computer.
KUBE_DPKG_VERSION=1.15.0-00 #or your other target K8s version, which should be at least 1.13. sudo apt-get update && \ sudo apt-get install -y ebtables ethtool && \ sudo apt-get install -y docker.io && \ sudo apt-get install -y apt-transport-https && \ sudo apt-get install -y kubelet=$KUBE_DPKG_VERSION kubeadm=$KUBE_DPKG_VERSION kubectl=$KUBE_DPKG_VERSION && \ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
Impostare
net.bridge.bridge-nf-call-iptables=1
. In Ubuntu 18.04 i comandi seguenti abilitano primabr_netfilter
.. /etc/os-release if [ "$VERSION_CODENAME" == "bionic" ]; then sudo modprobe br_netfilter; fi sudo sysctl net.bridge.bridge-nf-call-iptables=1
Configurare il nodo master Kubernetes
Dopo aver eseguito i comandi precedenti in ogni computer, scegliere uno dei computer come nodo master Kubernetes. Eseguire quindi nel computer i comandi seguenti.
Per prima cosa, creare un file rbac.yaml nella directory corrente usando il comando seguente.
cat <<EOF > rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: default-rbac subjects: - kind: ServiceAccount name: default namespace: default roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io EOF
Inizializzare il nodo master Kubernetes nel computer. Lo script di esempio seguente specifica la versione di Kubernetes
1.15.0
. La versione da usare dipende dal cluster Kubernetes.KUBE_VERSION=1.15.0 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=$KUBE_VERSION
Verrà visualizzato un messaggio per informare l'utente che il nodo master Kubernetes è stato inizializzato correttamente.
Annotare il comando
kubeadm join
da usare negli altri server per unire in join il cluster Kubernetes. Copiare il comando per poterlo usare in seguito.Configurare un file di configurazione di Kubernetes nella home directory.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Configurare il cluster e il dashboard di Kubernetes.
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml helm init kubectl apply -f rbac.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
Configurare gli agenti Kubernetes
Gli altri computer svolgeranno la funzione di agenti Kubernetes nel cluster.
In ognuno degli altri computer eseguire il comando kubeadm join
copiato nella sezione precedente.
Visualizzare lo stato del cluster
Per verificare la connessione al cluster, usare il comando kubectl get per restituire un elenco di nodi del cluster.
kubectl get nodes
Passaggi successivi
La procedura illustrata in questo articolo ha consentito la configurazione di un cluster Kubernetes in più computer Ubuntu. Il passaggio successivo prevede la distribuzione di un cluster Big Data di SQL Server 2019. Per informazioni, vedere l'articolo seguente: