# Kubernetes

# Создание нового проекта с деплоем в кластер

  1. Авторизация в кластере
  2. Заведение подгруппы.

# 1. Создание подгруппы и репозиториев

Читайте рекомендации на странице /gitlab.

# 2. Подготовка namespace'а в k8s для проекта

Смотрите apliteni/k8s/shared-tools/blob/master/README.md.

# Подготовка рабочего окружения разработчика

# Настройка kubectl

Установите kubectrl.

Для Mac OS: brew install kubernetes-cli.

Создание нового конфига с кластером:

kubectl config set-cluster hz-dev-1 --server=https://K8S_API_URL --insecure-skip-tls-verify=true

Адрес K8s API найдете в репозитории our-clusters

Создание контекста (это связка user + cluster + namespace):

kubectl config set-context hz-dev-1-gdbc --cluster=hz-dev-1 --user=user-ivan-ivanov --namespace=gdbc

Установка пользователя с токеном (токен предварительно создается администратором кластера):

kubectl config set-credentials user-ivan-ivanov --token=...

Переключение на созданный контекст

kubectl config use-context hz-dev-1-gdbc

# Отладка внутри кластера

Для отладки внутри кластера можно запустить терминал через pod:

dnsutils, netcat, net-tools, nmap, jq, curl traceroute

kubectl run --namespace=NAMESPACE -it --rm --image=apliteni/network-utils debug-pod -- bash

psql

kubectl run --namespace=NAMESPACE -it --rm --image=postgres debug-pod -- bash

# Быстрое переключение между контекста и namespace'а

Установите набор утилит kubext, kubens.

# Примеры проектов

Смотрите apliteni/k8s/shared-tools/blob/master/README.md

# Список наших кластеров

Смотрите DevOps.

# Рекомендации

  1. Старайтесь использовать инструментарий shared-tools.

  2. Для dev-окружения предпочитайте описывать контейнеры в Docker Compose пример.

  3. Проверить корректность helm chart можно через --dry-run --debug:

    helm install --dry-run --debug ci/chart --values ci/chart/helm.production.yaml --name RELEASE_NAME