Работа с Kubernetes локально
🔹 Этап 3: Работа с Kubernetes локально¶
3.1 Установка локального кластера¶
Есть несколько вариантов для локальной практики:
-
Minikube — полноценный локальный кластер, запускается на виртуальной машине (VirtualBox, Hyper-V, Docker)
-
kind (Kubernetes in Docker) — легковесный кластер внутри Docker-контейнеров
-
k3s — облегчённый Kubernetes для локальной и слабой инфраструктуры
Для простоты и универсальности рекомендую Minikube или kind.
3.1.1 Установка Minikube (на примере macOS/Linux/Windows)¶
-
Установи kubectl (CLI для управления Kubernetes):
-
macOS (brew):
- Linux:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
-
Установи Minikube:
-
macOS (brew):
- Linux:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
- Запусти кластер:
- Проверь состояние:
3.1.2 Установка kind (опционально)¶
- Требует Docker, запускает Kubernetes в контейнерах:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
- Создать кластер:
3.2 Развёртывание простого приложения (nginx)¶
Создай файл deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
И файл service.yaml:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
type: NodePort
3.3 Запусти приложение в Kubernetes:¶
Проверь, что поды запустились:
Проверь сервисы:
3.4 Доступ к приложению¶
- Для Minikube:
Это откроет в браузере страницу nginx.
- Для kind — доступ сложнее, нужно пробрасывать порты вручную.
3.5 Основные команды для работы с кластером¶
- Просмотр ресурсов:
- Просмотр деталей:
- Удаление ресурсов: