k8s #1
164
Makefile
164
Makefile
@@ -1197,6 +1197,158 @@ k8s:
|
|||||||
echo "❌ Контейнер $$CONTAINER_NAME не запущен"; \
|
echo "❌ Контейнер $$CONTAINER_NAME не запущен"; \
|
||||||
echo "💡 Запустите: make k8s create $$PRESET_ARG"; \
|
echo "💡 Запустите: make k8s create $$PRESET_ARG"; \
|
||||||
fi;; \
|
fi;; \
|
||||||
|
manifest) \
|
||||||
|
echo "📄 Работа с манифестами..."; \
|
||||||
|
MANIFEST_CMD="$(word 3, $(MAKECMDGOALS))"; \
|
||||||
|
PRESET_ARG="$(word 4, $(MAKECMDGOALS))"; \
|
||||||
|
MANIFEST_ARG="$(word 5, $(MAKECMDGOALS))"; \
|
||||||
|
if [ -z "$$MANIFEST_CMD" ] || [ -z "$$PRESET_ARG" ] || [ -z "$$MANIFEST_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите команду, пресет и путь к манифесту"; \
|
||||||
|
echo "💡 Пример: make k8s manifest apply kubernetes https://example.com/manifest.yaml"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
CONTAINER_NAME=k8s-$$PRESET_ARG; \
|
||||||
|
if ! docker ps | grep -q $$CONTAINER_NAME; then \
|
||||||
|
echo "❌ Контейнер $$CONTAINER_NAME не запущен"; \
|
||||||
|
echo "💡 Запустите: make k8s create $$PRESET_ARG"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
CLUSTER_NAME=$$(docker exec $$CONTAINER_NAME kind get clusters | head -1); \
|
||||||
|
case "$$MANIFEST_CMD" in \
|
||||||
|
apply) \
|
||||||
|
echo "📥 Применение манифеста: $$MANIFEST_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG";; \
|
||||||
|
delete) \
|
||||||
|
echo "🗑️ Удаление ресурсов из манифеста: $$MANIFEST_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify delete -f $$MANIFEST_ARG";; \
|
||||||
|
update) \
|
||||||
|
echo "🔄 Обновление манифеста: $$MANIFEST_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG --force";; \
|
||||||
|
*) \
|
||||||
|
echo "❌ Неизвестная команда: $$MANIFEST_CMD"; \
|
||||||
|
echo "💡 Доступные команды: apply, delete, update"; \
|
||||||
|
exit 1;; \
|
||||||
|
esac;; \
|
||||||
|
helm) \
|
||||||
|
echo "📦 Работа с Helm..."; \
|
||||||
|
HELM_CMD="$(word 3, $(MAKECMDGOALS))"; \
|
||||||
|
PRESET_ARG="$(word 4, $(MAKECMDGOALS))"; \
|
||||||
|
RELEASE_ARG="$(word 5, $(MAKECMDGOALS))"; \
|
||||||
|
CHART_ARG="$(word 6, $(MAKECMDGOALS))"; \
|
||||||
|
if [ -z "$$HELM_CMD" ] || [ -z "$$PRESET_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите команду и пресет"; \
|
||||||
|
echo "💡 Пример: make k8s helm list kubernetes"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
CONTAINER_NAME=k8s-$$PRESET_ARG; \
|
||||||
|
if ! docker ps | grep -q $$CONTAINER_NAME; then \
|
||||||
|
echo "❌ Контейнер $$CONTAINER_NAME не запущен"; \
|
||||||
|
echo "💡 Запустите: make k8s create $$PRESET_ARG"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
CLUSTER_NAME=$$(docker exec $$CONTAINER_NAME kind get clusters | head -1); \
|
||||||
|
case "$$HELM_CMD" in \
|
||||||
|
apply) \
|
||||||
|
if [ -z "$$RELEASE_ARG" ] || [ -z "$$CHART_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя релиза и чарт"; \
|
||||||
|
echo "💡 Пример: make k8s helm apply kubernetes my-release stable/nginx-ingress"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "📦 Установка Helm чарта: $$CHART_ARG как $$RELEASE_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm upgrade --install $$RELEASE_ARG $$CHART_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
delete) \
|
||||||
|
if [ -z "$$RELEASE_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя релиза"; \
|
||||||
|
echo "💡 Пример: make k8s helm delete kubernetes my-release"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "🗑️ Удаление Helm релиза: $$RELEASE_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm uninstall $$RELEASE_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
update) \
|
||||||
|
if [ -z "$$RELEASE_ARG" ] || [ -z "$$CHART_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя релиза и чарт"; \
|
||||||
|
echo "💡 Пример: make k8s helm update kubernetes my-release stable/nginx-ingress"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "🔄 Обновление Helm релиза: $$RELEASE_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm upgrade $$RELEASE_ARG $$CHART_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
rollback) \
|
||||||
|
if [ -z "$$RELEASE_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя релиза"; \
|
||||||
|
echo "💡 Пример: make k8s helm rollback kubernetes my-release"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "⏪ Откат Helm релиза: $$RELEASE_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm rollback $$RELEASE_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
list) \
|
||||||
|
echo "📋 Список Helm релизов:"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm list --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy --all-namespaces 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
status) \
|
||||||
|
if [ -z "$$RELEASE_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя релиза"; \
|
||||||
|
echo "💡 Пример: make k8s helm status kubernetes my-release"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "📊 Статус Helm релиза: $$RELEASE_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm status $$RELEASE_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
*) \
|
||||||
|
echo "❌ Неизвестная команда: $$HELM_CMD"; \
|
||||||
|
echo "💡 Доступные команды: apply, delete, update, rollback, list, status"; \
|
||||||
|
exit 1;; \
|
||||||
|
esac;; \
|
||||||
|
helmrepo) \
|
||||||
|
echo "🏪 Работа с Helm репозиториями..."; \
|
||||||
|
REPO_CMD="$(word 3, $(MAKECMDGOALS))"; \
|
||||||
|
PRESET_ARG="$(word 4, $(MAKECMDGOALS))"; \
|
||||||
|
NAME_ARG="$(word 5, $(MAKECMDGOALS))"; \
|
||||||
|
URL_ARG="$(word 6, $(MAKECMDGOALS))"; \
|
||||||
|
if [ -z "$$REPO_CMD" ] || [ -z "$$PRESET_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите команду и пресет"; \
|
||||||
|
echo "💡 Пример: make k8s helmrepo list kubernetes"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
CONTAINER_NAME=k8s-$$PRESET_ARG; \
|
||||||
|
if ! docker ps | grep -q $$CONTAINER_NAME; then \
|
||||||
|
echo "❌ Контейнер $$CONTAINER_NAME не запущен"; \
|
||||||
|
echo "💡 Запустите: make k8s create $$PRESET_ARG"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
case "$$REPO_CMD" in \
|
||||||
|
add) \
|
||||||
|
if [ -z "$$NAME_ARG" ] || [ -z "$$URL_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя и URL репозитория"; \
|
||||||
|
echo "💡 Пример: make k8s helmrepo add kubernetes stable https://charts.helm.sh/stable"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "➕ Добавление Helm репозитория: $$NAME_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "helm repo add $$NAME_ARG $$URL_ARG 2>&1 | grep -v '^WARNING' || true; helm repo update";; \
|
||||||
|
list) \
|
||||||
|
echo "📋 Список Helm репозиториев:"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "helm repo list 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
delete) \
|
||||||
|
if [ -z "$$NAME_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя репозитория"; \
|
||||||
|
echo "💡 Пример: make k8s helmrepo delete kubernetes stable"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "🗑️ Удаление Helm репозитория: $$NAME_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "helm repo remove $$NAME_ARG 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
update) \
|
||||||
|
echo "🔄 Обновление Helm репозиториев"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "helm repo update 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
packages) \
|
||||||
|
if [ -z "$$NAME_ARG" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите имя репозитория"; \
|
||||||
|
echo "💡 Пример: make k8s helmrepo packages kubernetes stable"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "📦 Пакеты в репозитории: $$NAME_ARG"; \
|
||||||
|
docker exec $$CONTAINER_NAME bash -c "helm search repo $$NAME_ARG 2>&1 | grep -v '^WARNING' || true";; \
|
||||||
|
*) \
|
||||||
|
echo "❌ Неизвестная команда: $$REPO_CMD"; \
|
||||||
|
echo "💡 Доступные команды: add, list, delete, update, packages"; \
|
||||||
|
exit 1;; \
|
||||||
|
esac;; \
|
||||||
*) \
|
*) \
|
||||||
echo "☸️ Доступные команды:"; \
|
echo "☸️ Доступные команды:"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
@@ -1234,6 +1386,18 @@ k8s:
|
|||||||
echo " 💡 Для: ручного управления kubectl/kind"; \
|
echo " 💡 Для: ручного управления kubectl/kind"; \
|
||||||
echo " 💡 Пример: make k8s shell kubernetes"; \
|
echo " 💡 Пример: make k8s shell kubernetes"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
|
echo " make k8s manifest [cmd] [preset] [url] - работа с манифестами"; \
|
||||||
|
echo " 💡 Команды: apply, delete, update"; \
|
||||||
|
echo " 💡 Пример: make k8s manifest apply kubernetes https://example.com/deploy.yaml"; \
|
||||||
|
echo ""; \
|
||||||
|
echo " make k8s helm [cmd] [preset] [release] [chart] - работа с Helm"; \
|
||||||
|
echo " 💡 Команды: apply, delete, update, rollback, list, status"; \
|
||||||
|
echo " 💡 Пример: make k8s helm apply kubernetes nginx stable/nginx-ingress"; \
|
||||||
|
echo ""; \
|
||||||
|
echo " make k8s helmrepo [cmd] [preset] [name] [url] - работа с Helm репозиториями"; \
|
||||||
|
echo " 💡 Команды: add, list, delete, update, packages"; \
|
||||||
|
echo " 💡 Пример: make k8s helmrepo add kubernetes stable https://charts.helm.sh/stable"; \
|
||||||
|
echo ""; \
|
||||||
echo "💡 Примеры:"; \
|
echo "💡 Примеры:"; \
|
||||||
echo " make k8s create # создать минимальный кластер"; \
|
echo " make k8s create # создать минимальный кластер"; \
|
||||||
echo " make k8s create kubernetes # создать кластер с аддонами"; \
|
echo " make k8s create kubernetes # создать кластер с аддонами"; \
|
||||||
|
|||||||
395
docs/kubernetes-commands.md
Normal file
395
docs/kubernetes-commands.md
Normal file
@@ -0,0 +1,395 @@
|
|||||||
|
# Команды для работы с 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
|
||||||
Reference in New Issue
Block a user