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

12 KiB
Raw Blame History

Команды для работы с Kubernetes

Автор: Сергей Антропов
Сайт: https://devops.org.ru

Содержание

Работа с манифестами

Команды для применения, удаления и обновления манифестов YAML в кластере.

Синтаксис

make k8s manifest [команда] [пресет] [URL_или_путь_к_файлу]

Команды

apply - Применение манифеста

Применяет манифест YAML к кластеру.

make k8s manifest apply kubernetes https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

Примеры:

# Применение манифеста из URL
make k8s manifest apply kubernetes https://example.com/deploy.yaml

# Применение локального манифеста
make k8s manifest apply kubernetes ./manifests/my-app.yaml

delete - Удаление ресурсов

Удаляет ресурсы из кластера по манифесту.

make k8s manifest delete kubernetes https://example.com/deploy.yaml

update - Обновление манифеста

Обновляет ресурсы в кластере, используя манифест.

make k8s manifest update kubernetes https://example.com/deploy.yaml

Примеры использования

# Установка 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 чартами в кластере.

Синтаксис

make k8s helm [команда] [пресет] [релиз] [чант]

Команды

apply - Установка/обновление чарта

Устанавливает новый релиз или обновляет существующий.

make k8s helm apply kubernetes my-nginx nginx/nginx-ingress

Параметры:

  • пресет - имя пресета кластера
  • релиз - имя релиза (например: my-nginx)
  • чарт - имя чарта (например: nginx/nginx-ingress)

Примеры:

# Установка nginx-ingress
make k8s helm apply kubernetes nginx-ingress nginx/nginx-ingress

# Установка с указанием репозитория
make k8s helm apply kubernetes prometheus prometheus-community/prometheus

delete - Удаление релиза

Удаляет Helm релиз из кластера.

make k8s helm delete kubernetes my-nginx

Примеры:

# Удаление релиза
make k8s helm delete kubernetes nginx-ingress

# Удаление с флагом --keep-history
# (не поддерживается в текущей реализации)

update - Обновление релиза

Обновляет существующий Helm релиз.

make k8s helm update kubernetes my-nginx nginx/nginx-ingress

rollback - Откат релиза

Откатывает релиз к предыдущей версии.

make k8s helm rollback kubernetes my-nginx

Примеры:

# Откат к предыдущей ревизии
make k8s helm rollback kubernetes my-nginx

# Откат к конкретной ревизии (не поддерживается в текущей реализации)

list - Список релизов

Показывает список всех установленных Helm релизов.

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 - Статус релиза

Показывает подробную информацию о статусе релиза.

make k8s helm status kubernetes my-nginx

Примеры использования

# 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 репозиториями.

Синтаксис

make k8s helmrepo [команда] [пресет] [имя] [URL]

Команды

add - Добавление репозитория

Добавляет новый Helm репозиторий.

make k8s helmrepo add kubernetes stable https://charts.helm.sh/stable

Примеры:

# Добавление официального репозитория 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 репозиториев.

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 репозиторий.

make k8s helmrepo delete kubernetes stable

Примеры:

# Удаление репозитория
make k8s helmrepo delete kubernetes stable

update - Обновление репозиториев

Обновляет информацию о всех Helm репозиториях.

make k8s helmrepo update kubernetes

Примеры:

# Обновление всех репозиториев
make k8s helmrepo update kubernetes

packages - Список пакетов

Показывает список пакетов в указанном репозитории.

make k8s helmrepo packages kubernetes stable

Примеры:

# Просмотр пакетов в репозитории stable
make k8s helmrepo packages kubernetes stable

# Просмотр пакетов в репозитории nginx
make k8s helmrepo packages kubernetes nginx

# Поиск конкретного пакета
make k8s helmrepo packages kubernetes stable | grep nginx

Примеры использования

# 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

Полный рабочий пример

# 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