Развертывание Kubernetes-кластера может осуществляться различными способами, каждый из которых имеет свои преимущества и оптимальные сценарии использования. В этой статье мы детально разберем три основных подхода: официальный инструмент Kubeadm, Ansible-решение Kubespray и managed-решения от облачных провайдеров.
Kubeadm — это минималистичный инструмент, разрабатываемый Kubernetes SIG Cluster Lifecycle. Он предоставляет базовые команды для инициализации control plane и присоединения worker-нод.
Типичный workflow:
# На master-ноде
kubeadm init --pod-network-cidr=10.244.0.0/16
# На worker-нодах
kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash <hash>
Преимущества
Ограничения
Идеально подходит для:
Kubespray — это решение от Kubernetes SIG, использующее Ansible для полного цикла развертывания кластера.
Типичный workflow:
git clone https://github.com/kubernetes-sigs/kubespray
cd kubespray
pip install -r requirements.txt
cp -r inventory/sample inventory/mycluster
declare -a IPS=(node1_ip node2_ip node3_ip)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml
Преимущества
Ограничения
Идеально подходит для:
Основные варианты:
Преимущества
Ограничения
Идеально подходит для: