У меня есть проект с некоторыми файлами, подобными этому:
# To use Bazel
/home/slackware/tgkj/WORKSPACE
# To use Bazel and https://github.com/bazelbuild/rules_k8s
/home/slackware/tgkj/app/BUILD
# The app to be ran on the kubernetes cluster.
/home/slackware/tgkj/app/main.py
# To deploy EC2 instances using terraform
/home/slackware/tgkj/infra/terraform.tf
# To tell Packer how to build the AMIs (provision using ansible) to deploy to EC2
/home/slackware/tgkj/infra/example.jsonnet
# To tell Ansible how to provision the AMI
# (Install kubernetes master packages for the master AMI
# and node packages for the node AMI)
/home/slackware/tgkj/infra/playbook_template.jsonnet
Я могу создавать свои экземпляры EC2 с помощью terraform и создавать + инициализировать свои AMI с помощью Packer + Ansible.
Теперь я хотел бы развернуть свою программу main.py
в кластере kubernetes.
Примечание. Действительно, мне не хватает некоторого файла kubernetes deployment.yaml
. Он находится в моей файловой системе, но я пока не понимаю, чтобы перечислить его здесь с полной уверенностью, и он не является предметом этого вопроса.
Я нашел https://github.com/bazelbuild/rules_k8s и хотел быиспользовать его, чтобы указать цель сборки для развертывания образа. Я могу использовать py3_image () (из директивы https://github.com/bazelbuild/rules_docker) для создания цели изображения python3.
Путаница в bazelbuild / rules_k8s. Если вы посмотрите на https://github.com/bazelbuild/rules_k8s#aliasing-eg-k8s_deploy илиhttps://github.com/bazelbuild/rules_k8s#k8s_defaults, есть упоминание об указании «кластера».
Мне было интересно, какой kubectl config current-context
контекст будет использовать такую цель сборки? Текущий? Можно ли поставитьфайл kubeconfig
в /home/slackware/tgkj/
, корневой каталог проекта, и kubectl
автоматически используют этот файл конфигурации, когда я использую kubectl
из каталога проекта? Как вы думаете, я должен делать что-то по-другому?