SQL Server 빅 데이터 클러스터 배포에 대해 Kubernetes 구성

적용 대상: SQL Server 2019(15.x)

중요

Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. Software Assurance를 사용하는 SQL Server 2019의 모든 기존 사용자는 플랫폼에서 완전히 지원되며, 소프트웨어는 지원 종료 시점까지 SQL Server 누적 업데이트를 통해 계속 유지 관리됩니다. 자세한 내용은 공지 블로그 게시물Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

이 문서에서는 kubeadm을 사용하여 SQL Server 빅 데이터 클러스터 배포를 위해 여러 컴퓨터에서 Kubernetes를 구성하는 방법의 예제를 제공합니다. 이 예제에서는 여러 Ubuntu 16.04 또는 18.04 LTS 컴퓨터(물리적 또는 가상)가 대상입니다. 다른 Linux 플랫폼에 배포하는 경우 시스템에 맞게 일부 명령을 변경해야 합니다.

Kubernetes를 구성하는 샘플 스크립트는 Ubuntu 20.04 LTS에서 Kubeadm을 사용하여 Kubernetes 클러스터 만들기를 참조하세요.

VM에 단일 노드 kubeadm 배포를 자동화한 이후 그 위에 빅 데이터 클러스터의 기본 구성을 배포하는 샘플 스크립트는 단일 노드 kubeadm 클러스터 배포를 참조하세요.

필수 조건

  • Linux 물리적 머신 또는 가상 머신 3대 이상
  • 컴퓨터당 권장 구성:
    • CPU 8개
    • 64GB 메모리
    • 스토리지 100GB

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. Kubernetes 클러스터를 조인하기 위해 다른 서버에서 사용해야 하는 kubeadm join 명령을 확인합니다. 나중에 사용할 수 있도록 복사합니다.

    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 join agents

클러스터 상태 보기

클러스터에 대한 연결을 확인하려면 kubectl get 명령을 사용하여 클러스터 노드 목록을 반환합니다.

kubectl get nodes

다음 단계

이 문서의 단계에서는 여러 Ubuntu 컴퓨터에서 Kubernetes 클러스터를 구성했습니다. 다음 단계는 SQL Server 2019 빅 데이터 클러스터를 배포하는 것입니다. 자세한 내용은 다음 문서를 참조하세요.

Kubernetes에 SQL Server 배포