Kubernetes — это наш подарок. Однако он все равно отпугивает своей сложностью. С чего мне вообще начать? Как установить Кубернет? Что такое миникуб? Какой тип кластера Kubernetes выбрать?

Если какой-либо из этих вопросов касается вас, вы пришли в нужное место. Оставайтесь с нами и следите за лучшими вариантами создания вашего первого кластера в этом руководстве по Kubernetes.

Игровая площадка Kubernetes — это самый простой способ установить кластер Kubernetes. По сути, вы даже ничего не устанавливаете. Вместо этого вы запускаете свой кластер Kubernetes прямо на вкладке браузера.


Плюсы

Легко начать. Не требуется сложной настройки. Кластер Kubernetes доступен одним нажатием кнопки.

Запускается в браузере. Не потребляет ресурсов вашего ноутбука и может быть запущен из любого места и любой операционной системы.

Свободно. Вы можете использовать его без каких-либо обязательств. Вам даже не нужно указывать свой адрес электронной почты! Это так просто — бесплатный кластер Kubernetes, с которым вы можете поиграть.


Минусы

Ограниченная функциональность. Очевидно, что это просто песочница, которая приемлема только тогда, когда вы начинаете работать с Kubernetes. Вы не можете настраивать среду, масштабировать кластер или развертывать какую-либо значимую рабочую нагрузку на этой платформе.

Развертывания не сохраняются. Каждый раз, когда вы закрываете или перезапускаете браузер, прогресс будет потерян.


Действия по развертыванию

Просто откройте

Minikube — это инструмент, который упрощает локальный запуск Kubernetes. Minikube запускает кластер Kubernetes с одним узлом внутри виртуальной машины на вашем ноутбуке.


Плюсы

Легко начать. Несмотря на то, что он требует дополнительной настройки, установить minikube относительно просто.

Свободно. Minikube — это инструмент с открытым исходным кодом. Это означает, что вы можете загружать, использовать и даже изменять его по своему усмотрению без каких-либо ограничений.


Минусы

Ограниченная функциональность. Это намного лучше, чем браузерная платформа Kubernetes. Однако все еще есть функции, которые не поддерживаются или плохо работают в миникубе.

Потребляет ресурсы. Он работает на вашем ноутбуке и в некоторых случаях требует достаточного количества ресурсов, таких как процессор и память.

Не готовое к производству решение. Minikube — идеальный вариант для локальной разработки. Однако вы не можете отправить свой ноутбук клиенту. Для случаев использования на уровне производства вам понадобится что-то еще.


Действия по развертыванию


Вот как установить minikube на Ubuntu (или любую аналогичную систему Linux):

curl -LO 
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minkube start
Войти в полноэкранный режим

Выйти из полноэкранного режима


Вот как установить minikube на Mac:

curl -LO 
sudo install minikube-darwin-amd64 /usr/local/bin/minikube
minikube start
Войти в полноэкранный режим

Выйти из полноэкранного режима


Вот как установить minikube на Windows:

winget install minikube
minikube start
Войти в полноэкранный режим

Выйти из полноэкранного режима

Лучший способ проверить, установлен ли Kubernetes, — попытаться подключиться к вашему кластеру и выполнить несколько команд kubectl:

kubectl get nodes
Войти в полноэкранный режим

Выйти из полноэкранного режима

Kubeadm — это инструмент, предназначенный для начальной загрузки полномасштабного кластера Kubernetes. Он берет на себя всю тяжелую работу, связанную с инициализацией кластера, и полностью автоматизирует процесс.


Плюсы

Поддерживает все функции Kubernetes. Кластеры, созданные с помощью kubeadm, полностью функциональны и соответствуют всем передовым практикам Kubernetes.

Решение производственного уровня. Кластеры, созданные kubeadm, абсолютно безопасно использовать не только в песочницах и домашних проектах, но и в реальных производственных сценариях использования.


Минусы

Требуют дополнительных ресурсов. Несмотря на то, что вы можете создать кластер из одного узла на своем ноутбуке, kubeadm обычно запускается на нескольких узлах. Самый очевидный выбор — арендовать серверы у облачного провайдера. Однако, если на вашей полке есть запасное оборудование, вы можете перепрофилировать его и построить из него свою лабораторию Kubernetes.

Сложный процесс установки. Процесс подготовки может быть сложным. Вам нужно установить сам kubeadm, а также kubectl, среду выполнения контейнера и несколько вспомогательных пакетов.

Трудно управлять. Kubeadm не является декларативным. Вы не можете сохранить примененную конфигурацию в любом месте. Если ваш узел исчезнет, ​​вам придется создать замену и снова выполнить ручное соединение (если вы не автоматизировали его дальше). Кроме того, несмотря на то, что процесс создания автоматизирован, вам все равно придется справляться со всеми трудностями, связанными с обслуживанием самостоятельно размещенного кластера Kubernetes (поддержание кворума, резервное копирование и т. д.).


Действия по развертыванию

Шаг 1. Подготовьте свои узлы

Шаг 2. Установите kubeadm, kubelet и kubectl

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg 
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg]  kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Войти в полноэкранный режим

Выйти из полноэкранного режима

Шаг 3. Установите среду выполнения контейнера

sudo apt-get remove -y docker docker-engine docker.io containerd runc
sudo apt-get update -y
sudo apt-get install -y \
   ca-certificates \
   curl \
   gnupg \
   lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]  \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl stop containerd
echo "" | sudo tee /etc/containerd/config.toml
sudo systemctl start containerd
Войти в полноэкранный режим

Выйти из полноэкранного режима

Шаг 4. Инициализируйте свой кластер (только при создании нового кластера)

sudo kubeadm init
Войти в полноэкранный режим

Выйти из полноэкранного режима

Шаг 5. Примените плагин CNI

kubectl apply -f " version | base64 | tr -d '\n')"
Step 6. For each additional node that you want to join to the existing cluster – repeat steps 2 and 3 and run the kubeadm join command that was output by kubeadm init.
Войти в полноэкранный режим

Выйти из полноэкранного режима


Плюсы

Решение производственного уровня. Однако это не лучший вариант, некоторые компании используют его в качестве метода подготовки своей инфраструктуры Kubernetes. Его можно масштабировать до определенной степени, однако для этого требуются дополнительные сценарии и настройка.

Легко начать. Создание базового кластера занимает секунды. Это идеальный вариант, когда нужно быстро построить кластер.


Минусы

Требуется облачная учетная запись. Если вы еще не начали свое путешествие в облако, этот вариант потребует дополнительных шагов для создания вашей облачной учетной записи.

Не ремонтопригоден. CLI или любой скрипт, основанный на CLI, не является декларативным и не выделяет состояние вашей инфраструктуры. Это означает, что вам потребуются дополнительные усилия, чтобы автоматизация применялась идемпотентным образом.

Может быть дорого. Управляемые кластеры Kubernetes относительно дороги. Например, один кластер Amazon EKS в регионе us-east-1 будет стоить вам 73 доллара в месяц. Поэтому вы никогда не должны забывать выключать свою инфраструктуру, когда вы не работаете в своей лаборатории. В AWS вы платите не за то, что используете, а за то, что забыли прекратить.


Действия по развертыванию


Чтобы развернуть кластер AWS EKS:

Шаг 1. Установите eksctl: https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html
Шаг 2. Создайте кластер:

eksctl create cluster --name my-cluster --region us-east-1
Войти в полноэкранный режим

Выйти из полноэкранного режима

Шаг 3. Создайте учетные данные kubectl и подключитесь к своему кластеру

aws eks update-kubeconfig --name my-cluster –region us-east-1
kubectl get nodes
Войти в полноэкранный режим

Выйти из полноэкранного режима


Чтобы развернуть кластер GKE:

Шаг 1. Включите Google Kubernetes Engine API
Шаг 2. Создайте кластер:

gcloud container clusters create example-cluster \
    --zone us-central1-a \
    --node-locations us-central1-a,us-central1-b,us-central1-c
Войти в полноэкранный режим

Выйти из полноэкранного режима

Шаг 3. Сгенерируйте учетные данные kubectl и подключитесь к вашему кластеру:

gcloud container clusters get-credentials hello-cluster
kubectl get nodes
Войти в полноэкранный режим

Выйти из полноэкранного режима


Чтобы развернуть кластер AKS:

Шаг 1. Создайте кластер:

az group create --name myResourceGroup --location eastus
az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-monitoring  --generate-ssh-keys
Войти в полноэкранный режим

Выйти из полноэкранного режима

Шаг 2. Сгенерируйте учетные данные kubectl и подключитесь к своему кластеру:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
kubectl get nodes
Войти в полноэкранный режим

Выйти из полноэкранного режима

Terraform, без сомнения, является одним из лучших инструментов Infrastructure as Code на сегодняшний день. Концепция повторно используемых модулей позволяет быстро пробовать новые вещи. Что вам нужно сделать, так это просто клонировать репозиторий модулей и запустить terraform apply.


Плюсы

Решение производственного уровня. Известные бренды и крупные компании полагаются на Terraform для развертывания своей критически важной инфраструктуры. Terraform предоставляет огромный набор функций, позволяющих эффективно управлять инфраструктурой в огромных масштабах.

Идеальная ремонтопригодность. Terraform полностью идемпотент. Он отслеживает развертываемые ресурсы с помощью файла состояния, который может храниться локально или удаленно. Вы также можете внедрить передовые методы управления своей инфраструктурой, например, GitOps.


Минусы

Требуется знание Terraform. Если вы раньше не работали с Terraform, вам потребуются некоторые усилия, чтобы установить Terraform и понять, как его использовать. Это делает этот вариант немного сложным для тех, кто только начинает.

Требуется облачная учетная запись, и это может быть дорого. Аналогично предыдущему варианту. Запуск Kubernetes как сервиса требует некоторых предварительных требований с точки зрения облака и может быть дорогостоящим, если вы забудете его вовремя уничтожить.


Действия по развертыванию


Чтобы развернуть кластер EKS, выполните следующие команды:

git clone 
cd learn-terraform-provision-eks-cluster
terraform init
terraform apply
aws eks --region $(terraform output -raw region) update-kubeconfig \
    --name $(terraform output -raw cluster_name)
kubectl get nodes
Войти в полноэкранный режим

Выйти из полноэкранного режима


Чтобы развернуть кластер GKE, выполните следующие команды:

git clone 
cd learn-terraform-provision-gke-cluster
terraform init
terraform apply
gcloud container clusters get-credentials $(terraform output -raw kubernetes_cluster_name) --region $(terraform output -raw region)
kubectl get nodes
Войти в полноэкранный режим

Выйти из полноэкранного режима


Чтобы развернуть кластер AKS, выполните следующие команды:

git clone 
cd learn-terraform-provision-aks-cluster
terraform init
terraform apply
az aks get-credentials --resource-group $(terraform output -raw resource_group_name) --name $(terraform output -raw kubernetes_cluster_name)
kubectl get nodes
This was an overview of major techniques to install a Kubernetes cluster.
Don’t wait any further, pick an option that you like and start your Kubernetes journey immediately!
Войти в полноэкранный режим

Выйти из полноэкранного режима


Если вам понравилась эта статья, пожалуйста, поддержите нас, поделившись ею в социальных сетях.

Другие интересные статьи вы можете найти в нашем блоге:

Подать заявку на индивидуальное наставничество здесь:

Свяжитесь с автором в LinkedIn: