Files
DevOpsLab/docs/kubernetes-commands.md
Сергей Антропов 714ca43d38
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
feat: добавить команды для работы с манифестами, Helm и Helm репозиториями
- Добавлены команды make k8s manifest для работы с манифестами YAML
- Добавлены команды make k8s helm для управления Helm чартами
- Добавлены команды make k8s helmrepo для управления Helm репозиториями
- Создана подробная документация docs/kubernetes-commands.md
- Обновлена справка в Makefile

Поддерживаемые операции:
- manifest: apply, delete, update
- helm: apply, delete, update, rollback, list, status
- helmrepo: add, list, delete, update, packages
2025-10-26 03:33:47 +03:00

396 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Команды для работы с Kubernetes
Автор: Сергей Антропов
Сайт: https://devops.org.ru
## Содержание
- [Работа с манифестами](#работа-с-манифестами)
- [Работа с Helm](#работа-с-helm)
- [Работа с Helm репозиториями](#работа-с-helm-репозиториями)
## Работа с манифестами
Команды для применения, удаления и обновления манифестов YAML в кластере.
### Синтаксис
```bash
make k8s manifest [команда] [пресет] [URL_или_путь_к_файлу]
```
### Команды
#### `apply` - Применение манифеста
Применяет манифест YAML к кластеру.
```bash
make k8s manifest apply kubernetes https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
```
**Примеры:**
```bash
# Применение манифеста из URL
make k8s manifest apply kubernetes https://example.com/deploy.yaml
# Применение локального манифеста
make k8s manifest apply kubernetes ./manifests/my-app.yaml
```
#### `delete` - Удаление ресурсов
Удаляет ресурсы из кластера по манифесту.
```bash
make k8s manifest delete kubernetes https://example.com/deploy.yaml
```
#### `update` - Обновление манифеста
Обновляет ресурсы в кластере, используя манифест.
```bash
make k8s manifest update kubernetes https://example.com/deploy.yaml
```
### Примеры использования
```bash
# Установка NGINX Ingress Controller
make k8s manifest apply kubernetes https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
# Удаление ресурсов
make k8s manifest delete kubernetes https://example.com/deploy.yaml
# Обновление конфигурации
make k8s manifest update kubernetes https://example.com/deploy.yaml --force
```
## Работа с Helm
Команды для установки, обновления и управления Helm чартами в кластере.
### Синтаксис
```bash
make k8s helm [команда] [пресет] [релиз] [чант]
```
### Команды
#### `apply` - Установка/обновление чарта
Устанавливает новый релиз или обновляет существующий.
```bash
make k8s helm apply kubernetes my-nginx nginx/nginx-ingress
```
**Параметры:**
- `пресет` - имя пресета кластера
- `релиз` - имя релиза (например: my-nginx)
- `чарт` - имя чарта (например: nginx/nginx-ingress)
**Примеры:**
```bash
# Установка nginx-ingress
make k8s helm apply kubernetes nginx-ingress nginx/nginx-ingress
# Установка с указанием репозитория
make k8s helm apply kubernetes prometheus prometheus-community/prometheus
```
#### `delete` - Удаление релиза
Удаляет Helm релиз из кластера.
```bash
make k8s helm delete kubernetes my-nginx
```
**Примеры:**
```bash
# Удаление релиза
make k8s helm delete kubernetes nginx-ingress
# Удаление с флагом --keep-history
# (не поддерживается в текущей реализации)
```
#### `update` - Обновление релиза
Обновляет существующий Helm релиз.
```bash
make k8s helm update kubernetes my-nginx nginx/nginx-ingress
```
#### `rollback` - Откат релиза
Откатывает релиз к предыдущей версии.
```bash
make k8s helm rollback kubernetes my-nginx
```
**Примеры:**
```bash
# Откат к предыдущей ревизии
make k8s helm rollback kubernetes my-nginx
# Откат к конкретной ревизии (не поддерживается в текущей реализации)
```
#### `list` - Список релизов
Показывает список всех установленных Helm релизов.
```bash
make k8s helm list kubernetes
```
**Пример вывода:**
```
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx-ingress default 1 2024-01-15 12:00:00.000000 +0000 UTC deployed nginx-ingress-0.1.0 1.0.0
```
#### `status` - Статус релиза
Показывает подробную информацию о статусе релиза.
```bash
make k8s helm status kubernetes my-nginx
```
### Примеры использования
```bash
# 1. Установка NGINX Ingress Controller
make k8s helm apply kubernetes nginx-ingress nginx/nginx-ingress
# 2. Проверка статуса
make k8s helm status kubernetes nginx-ingress
# 3. Обновление релиза
make k8s helm update kubernetes nginx-ingress nginx/nginx-ingress
# 4. Просмотр списка релизов
make k8s helm list kubernetes
# 5. Откат релиза
make k8s helm rollback kubernetes nginx-ingress
# 6. Удаление релиза
make k8s helm delete kubernetes nginx-ingress
```
## Работа с Helm репозиториями
Команды для управления Helm репозиториями.
### Синтаксис
```bash
make k8s helmrepo [команда] [пресет] [имя] [URL]
```
### Команды
#### `add` - Добавление репозитория
Добавляет новый Helm репозиторий.
```bash
make k8s helmrepo add kubernetes stable https://charts.helm.sh/stable
```
**Примеры:**
```bash
# Добавление официального репозитория Helm
make k8s helmrepo add kubernetes stable https://charts.helm.sh/stable
# Добавление репозитория Bitnami
make k8s helmrepo add kubernetes bitnami https://charts.bitnami.com/bitnami
# Добавление репозитория NGINX
make k8s helmrepo add kubernetes nginx https://helm.nginx.com/stable
# Добавление репозитория Prometheus
make k8s helmrepo add kubernetes prometheus-community https://prometheus-community.github.io/helm-charts
# Добавление пользовательского репозитория
make k8s helmrepo add kubernetes my-repo https://charts.example.com
```
#### `list` - Список репозиториев
Показывает список всех добавленных Helm репозиториев.
```bash
make k8s helmrepo list kubernetes
```
**Пример вывода:**
```
NAME URL
stable https://charts.helm.sh/stable
bitnami https://charts.bitnami.com/bitnami
nginx https://helm.nginx.com/stable
```
#### `delete` - Удаление репозитория
Удаляет Helm репозиторий.
```bash
make k8s helmrepo delete kubernetes stable
```
**Примеры:**
```bash
# Удаление репозитория
make k8s helmrepo delete kubernetes stable
```
#### `update` - Обновление репозиториев
Обновляет информацию о всех Helm репозиториях.
```bash
make k8s helmrepo update kubernetes
```
**Примеры:**
```bash
# Обновление всех репозиториев
make k8s helmrepo update kubernetes
```
#### `packages` - Список пакетов
Показывает список пакетов в указанном репозитории.
```bash
make k8s helmrepo packages kubernetes stable
```
**Примеры:**
```bash
# Просмотр пакетов в репозитории stable
make k8s helmrepo packages kubernetes stable
# Просмотр пакетов в репозитории nginx
make k8s helmrepo packages kubernetes nginx
# Поиск конкретного пакета
make k8s helmrepo packages kubernetes stable | grep nginx
```
### Примеры использования
```bash
# 1. Добавление нескольких репозиториев
make k8s helmrepo add kubernetes stable https://charts.helm.sh/stable
make k8s helmrepo add kubernetes bitnami https://charts.bitnami.com/bitnami
make k8s helmrepo add kubernetes nginx https://helm.nginx.com/stable
# 2. Просмотр списка репозиториев
make k8s helmrepo list kubernetes
# 3. Обновление репозиториев
make k8s helmrepo update kubernetes
# 4. Поиск пакетов в репозитории
make k8s helmrepo packages kubernetes stable
# 5. Удаление репозитория
make k8s helmrepo delete kubernetes my-custom-repo
# 6. Установка пакета из добавленного репозитория
make k8s helm apply kubernetes my-nginx nginx/nginx-ingress
```
## Полный рабочий пример
```bash
# 1. Создание кластера
make k8s create kubernetes
# 2. Добавление Helm репозиториев
make k8s helmrepo add kubernetes nginx https://helm.nginx.com/stable
make k8s helmrepo add kubernetes bitnami https://charts.bitnami.com/bitnami
# 3. Обновление репозиториев
make k8s helmrepo update kubernetes
# 4. Просмотр доступных пакетов
make k8s helmrepo packages kubernetes nginx
# 5. Установка NGINX Ingress Controller
make k8s helm apply kubernetes nginx-ingress nginx/nginx-ingress
# 6. Проверка статуса
make k8s helm status kubernetes nginx-ingress
# 7. Просмотр списка релизов
make k8s helm list kubernetes
# 8. Применение манифеста
make k8s manifest apply kubernetes https://example.com/deploy.yaml
# 9. Откат релиза (если нужно)
make k8s helm rollback kubernetes nginx-ingress
# 10. Удаление релиза
make k8s helm delete kubernetes nginx-ingress
# 11. Удаление репозитория
make k8s helmrepo delete kubernetes nginx
# 12. Удаление кластера
make k8s destroy kubernetes
```
## Обработка ошибок
### Ошибка: Контейнер не запущен
```
❌ Контейнер k8s-kubernetes не запущен
💡 Запустите: make k8s create kubernetes
```
**Решение:** Запустите кластер перед выполнением команд.
### Ошибка: Неизвестная команда
```
❌ Неизвестная команда: unknown
💡 Доступные команды: apply, delete, update
```
**Решение:** Используйте правильную команду из списка доступных.
### Ошибка: Не указаны параметры
```
❌ Ошибка: Укажите имя релиза и чарт
💡 Пример: make k8s helm apply kubernetes my-release stable/nginx-ingress
```
**Решение:** Укажите все необходимые параметры команды.
## Дополнительная информация
- Все команды kubectl и helm выполняются внутри контейнера `k8s-[пресет]`
- Вам не нужно устанавливать kubectl или helm локально
- Подключение к кластеру происходит через имя узла control-plane
- Используется флаг `--insecure-skip-tls-verify` для обхода проблем с сертификатами
## Автор
Сергей Антропов
Сайт: https://devops.org.ru