Учебное окружение для второго урока по Kubernetes из курса Девмана.
С чего начать работу с окружением:
kubectl
по инструкциям в Облаке Яндекс.Затем установите Lens и исследуйте кластер:
Pod
;Пример манифеста для запуска простого Pod "Hello World". После запуска контейнер выведет в лог приветственное сообщение и сразу завершит свою работу:
apiVersion: v1
kind: Pod
metadata:
name: hello-world
namespace: edu-dmitry-zavyalov
spec:
restartPolicy: OnFailure
containers:
- name: hello-world
image: hello-world
Выделен домен edu-dmitry-zavyalov.yc-sirius-dev.pelid.team
. Запросы обрабатывает Yandex Application Load Balancer.
В кластере K8s создан отдельный namespace edu-dmitry-zavyalov
. К нему выдан полный доступ: можно создавать конфиги и
секреты, запускать поды — делать всё, что потребуется для настройки и запуска веб-сервиса.
В кластере Kubernetes вам также открыт доступ на чтение к чужим окружениям и веб-сервисам. Вы можете
заглянуть в их манифесты ConfigMap
, Deployment
, Service
и скопировать
к себе всё, что считаете полезным. Вам закрыт доступ только к содержимому Secret
.
Установите себе Lens Desktop, чтобы быстро переключаться между проектами, читать их конфигурацию, копировать и тестировать внутри своего K8s namespace. У Lens Desktop есть несколько версий — вам нужна бесплатная.
Кластер K8s, веб-консоль Как подключиться к K8s в Яндекс Облаке Lens Desktop k9sВ Yandex Managed Service for PostgreSQL создана база данных edu-dmitry-zavyalov
.
В БД создан RW пользователь edu-dmitry-zavyalov
.
Доступы лежат в секрете K8s postgres
.
Максимальное количество открытых соединений для RW пользователя: 10
.
Настроены автоматические бекапы.
В секрете postgres
для подключения к БД лежат:
name
— имя БДport
— портroot.crt
— SSL-сертификатdsn
— RW DSNhost
— RW хостusername
— имя RW пользователяpassword
— пароль RW пользователяНастроена обработка входящих HTTP-запросов. Запросы последовательно обрабатывают два веб-сервера: сначала Application Load Balancer (ALB), затем Nginx.
Первый веб-сервер — ALB — настроен через Ingress. Им управляет системный администратор, поэтому самостоятельно менять конфиги Ingress нельзя — все правки будут утеряны при следующем запуске админских скриптов. Свяжитесь с администратором, если хотите перенастроить ALB.
Второй веб-сервер — Nginx — запущен непосредственно в кластере k8s внутри неймспейса и предназначен для самостоятельной настройки пользователем инсталляции.
Для работы Nginx в кластере уже созданы:
- Deployment main-nginx
- ConfigMap main-nginx-config
- Service main-nginx
Чтобы изменить настройки Nginx отредактируйте его конфигурационный файл в ConfigMap и переразверните Deployment:
kubectl rollout restart deployment main-nginx -n edu-dmitry-zavyalov
Адреса спрятаны от поисковых роботов Google, Yandex и пр. с помощью заголовка X-Robots-Tag
в HTTP-ответе.
Схема роутинга на уровне ALB:
edu-dmitry-zavyalov
main-nginx
Храним в корзине и статику, и медиа-файлы. Пользователю даём прямые ссылки для скачивания файлов из Object Storage, чтобы не усложнять схему дополнительным веб-сервером Nginx. Пример прямой ссылки: https://storage.yandexcloud.net/edu-dmitry-zavyalov/test.txt.
Object Storage предлагает удобный веб-интерфейс, через который можно заливать и удалять файлы, проверять содержимое корзины. Это сильно упрощает отладку cкриптов, делает процесс наглядным. Ссылка на веб-интерфейс указана ниже.
Токены и прочие настройки доступа к Object Storage API лежат в секрете K8s bucket
.
Настроен доступ через K8s Persistent Volume Claim bucket
.
Доступ к серверной инфраструктуре имеют: