В дверь постучали n раз. "Византия победила" - подумал Штирлиц
Должен быть отдельно поднят сервер с инфр-ой из compose файла исключая flight-, gateway-, bonus-, ticket-service. В helm чарте должен быть указан адрес этого хоста.
cosign verify $IMAGE_NAME --certificate-oidc-issuer https://accounts.google.com --certificate-identity [email protected]
Для тестовой сборки:
cd deployment
export $(cat .env.template | xargs)
В кластере определяется hpa ресурс, поэтому должны быть выполнены соответствующие требования. Если используется minikube с уже установленным metrics-server, то следует изменить спеку контейнера:
kubectl edit deployments.apps metrics-server
# Найти:
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
# Добавить/заменить на:
- --secure-port=4443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
Тестовая сборка:
cd deployment
docker-compose -f docker-compose.test.yml build
cd deployment
docker-compose -f docker-compose.test.yml up -d
cd deployment
helm install dsc ./k8s-homelab
Приложения разворачиваются в пространстве имен rsoi
. Для удобства смените текущее пространство имен k8s:
kubectl config set-context --current --namespace=rsoi
- Настроить ноды на кластере под Spin runtime
- Добавить .hcl для opentofu
- Прежде чем использовать чарт для СУБД, очередей, хранилищ секретов, логов, метрик подумайте об аренде виртуальной машины под инфраструктуру (~10 рублей за 24 часа). Это сэкономит силы и время + позволит подумать об IaaS (OpenTofu, Ansible, Terraform), как обеспечить безопасность (где хранить секреты) + покажет зачем нужен LXC/LXD, когда есть Docker + как настроить VPN сервер + узнаете про Kinsing и Fail2Bun. Это практичный, безопасный и надежный подход.
- Создавайте make-файлы для operations команд (docker build бла-бла-бла)
- Лучше использовать один большой чарт с большим value файлом, чем несколько подчартов со своими value файлами в тех случаях, когда эти подчарты широко разделяют одни и те же конфигурационные параметры. Создание чартов это больше про хранение переменных окружения в одном месте, чем про конфигурацию кластера k8s: в этом проекте больше конф-х параметров приложения, чем кластера.
- Для уменьшение размера образа стоит использовать cargo-chef
- Axum будет поприятней actix засчет интеграции с tower стеком
- Под WASM можно собрать контейнер < 5 MB
- Как же долго стартует zookeper и kafka...