Google Kubernetes Engine (GKE): подробное руководство по оркестрации контейнеров

Google Container Engine, теперь известный как Google Kubernetes Engine (GKE), — это управляемая система оркестрации контейнеров, предоставляемая Google Cloud. Он построен на базе популярной платформы оркестрации контейнеров с открытым исходным кодом Kubernetes. GKE упрощает развертывание, управление и масштабирование контейнерных приложений, позволяя разработчикам использовать возможности контейнеров и микросервисов.

В этой статье мы рассмотрим различные методы и примеры кода для работы с Google Kubernetes Engine.

  1. Создание кластера Kubernetes:

Чтобы начать использовать GKE, вам необходимо создать кластер Kubernetes. Вот пример создания кластера GKE с помощью инструмента командной строки gcloud:

gcloud container clusters create my-cluster \
    --zone us-central1-a \
    --num-nodes 3

Эта команда создает кластер с именем my-clusterс тремя узлами в зоне us-central1-a.

  1. Развертывание контейнеров:

После создания кластера вы можете развертывать контейнерные приложения в GKE. Вот пример развертывания контейнера с использованием файла развертывания:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: gcr.io/my-project/my-app:v1
        ports:
        - containerPort: 8080

Этот файл YAML описывает развертывание с тремя репликами контейнерного приложения. Образ контейнера gcr.io/my-project/my-app:v1будет извлечен из реестра контейнеров Google.

  1. Масштабирование приложений:

GKE позволяет легко масштабировать ваши приложения в зависимости от спроса. Вы можете масштабировать количество реплик, обновляя развертывание. Вот пример увеличения количества реплик до пяти:

kubectl scale deployment my-app --replicas=5

Эта команда масштабирует развертывание my-appдо пяти реплик.

  1. Последовательные обновления:

GKE поддерживает последовательные обновления, которые позволяют обновлять приложение без простоев. Вот пример выполнения скользящего обновления:

kubectl set image deployment/my-app my-app=gcr.io/my-project/my-app:v2

Эта команда обновляет образ контейнера развертывания my-appдо gcr.io/my-project/my-app:v2, по одной реплике за раз.

  1. Балансировка нагрузки:

GKE обеспечивает встроенную балансировку нагрузки для ваших приложений. Вы можете предоставить доступ к своему развертыванию с помощью службы с балансировщиком нагрузки. Вот пример создания службы балансировки нагрузки:

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  type: LoadBalancer
  selector:
    app: my-app
  ports:
  - port: 80
    targetPort: 8080

Этот файл YAML описывает службу, которая предоставляет развертывание my-appна порту 80, при этом трафик распределяется балансировщиком нагрузки.

Google Kubernetes Engine (GKE) – мощная платформа для управления контейнерными приложениями. В этой статье мы рассмотрели различные методы и примеры кода для работы с GKE, включая создание кластера Kubernetes, развертывание контейнеров, масштабирование приложений, выполнение последовательных обновлений и настройку балансировки нагрузки. Используя возможности GKE, разработчики могут эффективно управлять и масштабировать свои контейнерные приложения в облаке.