В предыдущем блоге мы изучили основы Kubernetes и провели семинар-тренинг с использованием установки Minikube на CentOs. Сейчас мы узнаем, как использовать Kubernetes на Google Cloud Platform, Microsoft Azure и Amazon Web Services.
Запуск Kubernetes на Google Cloud
Google Cloud Platform предлагает размещенный Kubernetes-as-a-Service под названием Google Kubernetes Engine (GKE). Чтобы начать работу с GKE, необходимо иметь учетную запись Google Cloud Platform с включенным биллингом и установить инструмент gcloud на локальной машине или использовать оболочку Cloud shell на Google Cloud Platform.
После установки gcloud сначала установите зону по умолчанию:
gcloud config set compute/zone us-west1-a
Убедитесь, что вы активировали Kubernetes API Engine
затем можно создать кластер с помощью следующей команды:
gcloud container clusters create cluster-1
и кластер будет доступен на Google Cloud Platform.
Это займет несколько минут. Когда кластер будет готов, вы сможете получить учетные данные для него, используя:
gcloud auth application-default login
а затем для учетных данных кластера используйте следующую команду
gcloud container clusters get-credentials <cluster-1> --zone us-west1-a --project <diesel-environs-321507>
и с помощью дальнейшей команды можно проверить, успешно ли теперь установлен kubectl в нашем Google SDK.
kubectl get all
Давайте развернем сервер Nginx на кластере, который мы создали ранее. Для развертывания образа Nginx используйте команду
kubectl create deployment g-nginx --image=nginx
и с помощью команды kubectl get pod
или kubectl get all
можно получить результат
Чтобы получить описание подов, используйте команду
kubectl describe pod <pod-name>
Запуск Kubernetes на Amazon Web Services
Создание кластера Kubernetes на Amazon Web Services является сложной задачей по сравнению с Google Kubernetes Service и Amazon Kubernetes Service, поэтому мы будем использовать eksctl для Amazon Web Services. Самый простой способ создания кластера EKS - это использование инструмента командной строки eksctl с открытым исходным кодом.
Руководство по установке инструмента командной строки eksctl
После установки инструмента командной строки eksctl настройте учетные данные AWS и убедитесь, что срок действия токена для доступа к AWS не истек, а затем введите следующую команду. Eksctl запустит процесс развертывания с помощью шаблона формирования облака (cloud formation).
eksctl create cluster
Зайдите на портал AWS и перейдите к CloudFormation, вы увидите, что стек создан.
Теперь вы можете использовать службу Elastic Kubernetes. Чтобы создать кластер на AWS Elastic Kubernetes Service, выполните следующую команду
eksctl create cluster -f g-nginx.yaml
и файл g-nginx.yaml будет выглядеть следующим образом
apiVersion: v1
kind: Pod
metadata:
name: nginx-cm
labels:
role: web
spec:
containers:
- name: nginx-cm
image: nginx
volumeMounts:
- name: conf
mountPath: /etc/nginx/conf.d
volumes:
- name: conf
configMap:
name: nginx-cm
items:
- key: nginx-custom-config.conf
path: default.conf
После создания кластера вы обнаружите, что его учетные данные были добавлены в ~/.kube/config
. Если у вас в PATH есть kubectl
v1.10.x, а также команды aws-iam-authenticator
, то вы должны иметь возможность использовать kubectl
.
Дополнительная документация доступна здесь
Запуск Kubernetes на Microsoft Azure
Чтобы начать работу с Microsoft Azure Kubernetes Service, нам необходимо установить Azure CLI на локальную машину, чтобы с помощью команд мы могли создавать кластеры и поды. Также можете попробовать выполнить команды из оболочки Azure Portal Cloud Shell.
Когда оболочка установлена и работает, можете запускать:
az group create --name=kuberRG --location=eastus
Теперь мы развернем кластер Kubernetes в этом регионе.
az aks create --resource-group=kuberRG --name=cluster-1 --node-count=2 --generate-ssh-keys
Кластер создан внутри группы ресурсов, давайте подключимся к нему.
Установите идентификатор подписки, выполнив следующую команду
az account set --subscription <ID>
После настройки подписок запросите учетные данные кластера следующей командой
az aks get-credentials --resource-group <RESOURCE_GROUP_NAME> --name <CLUSTER_NAME>
Теперь AKS успешно работает, и вы можете создавать поды и устанавливать в них образы.
Заключение
Я надеюсь, что этот блог окажется полезным для вас. Вы можете посмотреть мои различные блоги о Kubernetes и облачных вычислениях, а также следить за мной на Medium и Linkedin. Если у вас есть какие-либо вопросы или предложения, свяжитесь со мной.
Материал подготовлен в рамках курса «Инфраструктурная платформа на основе Kubernetes». Если вам интересно узнать подробнее о формате обучения и программе, познакомиться с преподавателем курса — приглашаем на день открытых дверей онлайн. Регистрация здесь.