Google Container Engine, теперь известный как Google Kubernetes Engine (GKE), — это управляемая система оркестрации контейнеров, предоставляемая Google Cloud. Он построен на базе популярной платформы оркестрации контейнеров с открытым исходным кодом Kubernetes. GKE упрощает развертывание, управление и масштабирование контейнерных приложений, позволяя разработчикам использовать возможности контейнеров и микросервисов.
В этой статье мы рассмотрим различные методы и примеры кода для работы с Google Kubernetes Engine.
- Создание кластера Kubernetes:
Чтобы начать использовать GKE, вам необходимо создать кластер Kubernetes. Вот пример создания кластера GKE с помощью инструмента командной строки gcloud:
gcloud container clusters create my-cluster \
--zone us-central1-a \
--num-nodes 3
Эта команда создает кластер с именем my-clusterс тремя узлами в зоне us-central1-a.
- Развертывание контейнеров:
После создания кластера вы можете развертывать контейнерные приложения в 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.
- Масштабирование приложений:
GKE позволяет легко масштабировать ваши приложения в зависимости от спроса. Вы можете масштабировать количество реплик, обновляя развертывание. Вот пример увеличения количества реплик до пяти:
kubectl scale deployment my-app --replicas=5
Эта команда масштабирует развертывание my-appдо пяти реплик.
- Последовательные обновления:
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, по одной реплике за раз.
- Балансировка нагрузки:
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, разработчики могут эффективно управлять и масштабировать свои контейнерные приложения в облаке.