#docker #kubernetes #minikube
#docker #kubernetes #minikube
Вопрос:
В Minikube с использованием KubeCtl я запускаю образ, созданный Docker, с помощью следующей команды:
kubectl run my-service --image=my-service-image:latest --port=8080 --image-pull-policy Never
Но на Minukube к приложению должна быть применена другая конфигурация. Я подготовил некоторые переменные среды в файле развертывания и хочу применить их к образам на Minikube. Есть ли способ указать KubeCtl запускать эти образы, используя данный файл развертывания, или даже другой способ предоставить образам эти значения?
Например, я попробовал использовать глагол apply в KubeCtl, но он пытается создать модуль вместо применения к нему конфигурации.
Комментарии:
1. Можете ли вы показать файл, который пытаетесь использовать? Можете ли вы сказать немного больше о том, что
kubectl apply
делает то, чего вы не ожидаете? (Вы не можете изменять модули после их создания, и, как правило, вам следует избегать прямого создания модулей; предпочитайте объекты более высокого уровня, такие как развертывания.)
Ответ №1:
В minukube / kubernetes вам необходимо применить переменные среды в файле yaml вашего модуля / развертывания.
Вот пример того, как можно настроить переменные среды в спецификации развертывания:
apiVersion: apps/v1
kind: Pod
metadata:
name: envar-demo
labels:
purpose: demonstrate-envars
spec:
containers:
- name: envar-demo-container
image: gcr.io/google-samples/node-hello:1.0
env:
- name: DEMO_GREETING
value: "Hello from the environment"
- name: DEMO_FAREWELL
value: "Such a sweet sorrow"
Здесь вы можете найти дополнительную информацию о переменных среды.
В этом случае, если вы хотите изменить какое-либо значение, вам нужно удалить модуль и применить его снова. Но если вы используете deployment
, все изменения можно выполнить с помощью kubectl apply
команды.