共用方式為


在多部計算機上設定 Kubernetes 以進行 SQL Server 巨量數據叢集部署

適用於:SQL Server 2019 (15.x)

Important

MICROSOFT SQL Server 2019 巨量數據叢集已淘汰。 SQL Server 2019 巨量數據叢集的支援已於 2025 年 2 月 28 日結束。 如需詳細資訊,請參閱 Microsoft SQL Server 平臺上的公告部落格文章和巨量數據選項。

本文提供如何使用 kubeadm 在多部計算機上設定 Kubernetes 以進行 SQL Server 巨量數據叢集部署的範例。 在此範例中,多個Ubuntu16.04或18.04 LTS機器(實體或虛擬)是目標。 如果您要部署到不同的 Linux 平臺,您必須改變一些命令以符合您的系統。

Tip

如需設定 Kubernetes 的範例腳本,請參閱 在 Ubuntu 20.04 LTS 上使用 Kubeadm 建立 Kubernetes 叢集

如需將 VM 上單一節點 kubeadm 部署自動化部署的範例腳本,然後在其上部署巨量數據叢集的預設組態,請參閱 部署單一節點 kubeadm 叢集

Prerequisites

  • 至少三部Linux實體機器或虛擬機
  • 每部機器的建議設定:
    • 8 CPUs
    • 64 GB 的記憶體
    • 100 GB 的記憶體

Important

開始巨量數據叢集部署之前,請確定這些時鐘會跨部署目標的所有 Kubernetes 節點進行同步處理。 巨量數據叢集具有各種服務內建的健康情況屬性,這些服務會區分時間,而時鐘扭曲可能會導致不正確的狀態。

準備機器

在每部計算機上,有數個必要條件。 在bash終端機中,在每個電腦上執行下列命令:

  1. 將目前的電腦新增至 /etc/hosts 檔案:

    echo $(hostname -i) $(hostname) | sudo tee -a /etc/hosts
    
  2. 停用所有裝置上的交換。

    sudo sed -i "/ swap / s/^/#/" /etc/fstab
    sudo swapoff -a
    
  3. 匯入金鑰並註冊 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
    
  4. 在機器上設定 docker 和 Kubernetes 必要條件。

    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
    
  5. 設定 net.bridge.bridge-nf-call-iptables=1。 在 Ubuntu 18.04 上,下列命令會先啟用 br_netfilter

    . /etc/os-release
    if [ "$VERSION_CODENAME" == "bionic" ]; then sudo modprobe br_netfilter; fi
    sudo sysctl net.bridge.bridge-nf-call-iptables=1
    

設定 Kubernetes 主機

在每部計算機上執行先前的命令之後,請選擇其中一部計算機做為 Kubernetes 主機。 然後在該電腦上執行下列命令。

  1. 首先,使用下列命令,在您的目前目錄中建立 rbac.yaml 檔案。

    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
    
  2. 在此計算機上初始化 Kubernetes 主機。 下列範例文稿會指定 Kubernetes 版本 1.15.0。 您使用的版本取決於您的 Kubernetes 叢集。

    KUBE_VERSION=1.15.0
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=$KUBE_VERSION
    

    您應該會看到已成功初始化 Kubernetes 主機的輸出。

  3. kubeadm join請注意您需要在其他伺服器上用來加入 Kubernetes 叢集的命令。 複製此專案以供稍後使用。

    kubeadm join

  4. 設定您的主目錄的 Kubernetes 組態檔。

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  5. 設定叢集和 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
    

設定 Kubernetes 代理程式

其他機器將做為叢集中的 Kubernetes 代理程式。

在每個其他計算機上,執行 kubeadm join 您在上一節中複製的命令。

kubeadm 聯結代理程式

檢視叢集狀態

若要驗證針對您叢集的連線,請使用 kubectl get 命令來傳回叢集節點的清單。

kubectl get nodes

Next steps

本文中的步驟會在多部 Ubuntu 計算機上設定 Kubernetes 叢集。 下一個步驟是部署 SQL Server 2019 巨量數據叢集。 如需指示,請參閱下列文章:

在 Kubernetes 上部署 SQL Server