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
- Добавлены команды 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
396 lines
12 KiB
Markdown
396 lines
12 KiB
Markdown
# Команды для работы с 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
|