Настройка Kubernetes на нескольких компьютерах для развертываний кластера больших данных SQL Server
Область применения: SQL Server 2019 (15.x)
Внимание
Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.
В этой статье приведен пример использования kubeadm для настройки Kubernetes на нескольких компьютерах для развертываний SQL Server Кластеры больших данных. В этом примере целевым объектом являются несколько компьютеров с Ubuntu 16.04 или 18.04 LTS (физических или виртуальных). При развертывании на другой платформе Linux нужно изменить некоторые команды в соответствии с вашей системой.
Совет
Примеры скриптов для настройки Kubernetes см. в статье Создание кластера Kubernetes с использованием Kubeadm в Ubuntu 20.04 LTS.
Пример скрипта, который автоматизирует развертывание kubeadm из одного узла на виртуальной машине, а затем поверх него развертывает конфигурацию по умолчанию кластера больших данных, см в статье Развертывание в кластере kubeadm с одним узлом с помощью скрипта bash.
Необходимые компоненты
- Не менее трех физических компьютеров или виртуальных машин с Linux.
- Рекомендуемая конфигурация для каждого компьютера:
- 8 ЦП
- 64 ГБ памяти
- 100 ГБ хранилища
Внимание
Перед развертыванием кластера больших данных необходимо убедиться, что часы во всех узлах Kubernetes, участвующих в развертывании, синхронизированы. Кластер больших данных имеет встроенные свойства обеспечения работоспособности разных служб, которые зависят от времени, поэтому любые отклонения во времени могут привести к неправильной работе системы.
Подготовка компьютеров
На каждом компьютере нужно выполнить несколько предварительных условий. Выполните следующие команды в терминале bash на каждом компьютере:
Добавьте текущий компьютер в файл
/etc/hosts
:echo $(hostname -i) $(hostname) | sudo tee -a /etc/hosts
Отключите подкачку на всех устройствах.
sudo sed -i "/ swap / s/^/#/" /etc/fstab sudo swapoff -a
Импортируйте ключи и зарегистрируйте репозиторий для 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
Настройте на компьютере необходимые компоненты 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
Задайте
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. Затем выполните на этом компьютере указанные ниже команды.
Сначала создайте файл 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
Инициализируйте главный узел 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.
Обратите внимание на команду
kubeadm join
, которую нужно использовать на других серверах для присоединения к кластеру Kubernetes. Скопируйте ее для последующего использования.Настройте файл конфигурации Kubernetes в домашнем каталоге.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Настройте кластер и панель мониторинга 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
, скопированную в предыдущем разделе.
Просмотр состояния кластера
Чтобы проверить подключение к кластеру, используйте команду kubectl get для получения списка узлов кластера.
kubectl get nodes
Следующие шаги
Действия, описанные в этой статье, обеспечивают настройку кластера Kubernetes на нескольких компьютерах Ubuntu. Следующим шагом является развертывание кластера больших данных SQL Server 2019. Инструкции см. в следующей статье: