Kubernetes стал фактическим стандартом оркестрации контейнеров и широко используется в отрасли. Для освоения Kubernetes решающее значение имеет практический опыт. Kubernetes Classroom — это мощная онлайн-платформа, предоставляющая практическую среду для изучения и экспериментирования с Kubernetes. В этом сообщении блога мы рассмотрим различные методы, позволяющие максимально эффективно использовать Kubernetes Classroom, дополненные примерами кода. Давайте погрузимся!
Метод 1. Развертывание первого кластера Kubernetes
Чтобы начать работу с Kubernetes Classroom, вам необходимо настроить собственный кластер Kubernetes. Вот пример использования Minikube:
# Install Minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/
# Start Minikube
minikube start
Метод 2: изучение ресурсов Kubernetes
Kubernetes Classroom предоставляет широкий спектр ресурсов для экспериментов. Вы можете создавать развертывания, службы, модули и многое другое и управлять ими. Вот пример развертывания простого веб-сервера Nginx:
# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Примените развертывание с помощью следующей команды:
kubectl apply -f nginx-deployment.yaml
Метод 3: масштабирование и обновление развертываний
Kubernetes Classroom позволяет легко масштабировать развертывания. Вот пример масштабирования развертывания Nginx до пяти реплик:
kubectl scale deployment nginx-deployment --replicas=5
Вы также можете обновить образ развертывания. Давайте обновим образ Nginx до конкретной версии:
kubectl set image deployment/nginx-deployment nginx=nginx:1.21.3
Метод 4: изучение сетевых технологий в Kubernetes
Kubernetes Classroom предлагает сетевые функции для подключения сервисов и предоставления их внешнему миру. Вот пример создания службы для раскрытия развертывания Nginx:
# nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Примените службу с помощью следующей команды:
kubectl apply -f nginx-service.yaml
Метод 5. Постоянное хранилище с помощью Kubernetes
Kubernetes Classroom предоставляет функции постоянного хранилища с использованием PersistentVolumes (PV) и PersistentVolumeClaims (PVC). Вот пример создания и использования PVC:
# storage-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: storage-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Примените PVC с помощью следующей команды:
kubectl apply -f storage-pvc.yaml
Kubernetes Classroom — бесценный ресурс для изучения и практики Kubernetes. В этой статье мы рассмотрели несколько способов максимально эффективно использовать эту платформу, включая развертывание кластеров, управление ресурсами, масштабирование развертываний, работу в сети и постоянное хранилище. Следуя этим примерам, вы продвинетесь на пути к освоению Kubernetes. Приятного обучения!