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
 |