Как создать контейнер с несколькими контейнерами без конфигурации модуля yaml или развертывания
Пытаюсь понять, как создать контейнер с несколькими контейнерами из терминала с помощью kubectl без конфигурации yaml для любого ресурса. kubectl run --image=redis --image=nginx
но второй --image просто отменяет первый..:)
3 ответа
Решение
Вы не можете сделать это за один раз kubectl
команду, но вы можете сделать это двумя способами: используя kubectl run
команда, за которой следует kubectl patch
команда:
kubectl run mypod --image redis && kubectl patch deploy mypod --patch '{"spec": {"template": {"spec": {"containers": [{"name": "patch-demo", "image": "nginx"}]}}}}'
Kubectl запуска для запуска 1 или более экземпляров в контейнере изображения в кластере
см. https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
Перейти с файлом конфигурации yaml
Выполните следующие шаги
создать patch-demo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: patch-demo
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: nginx
image: nginx
----
deploy patch-demo.yaml
create patch-containers.yaml as below
---
spec:
template:
spec:
containers:
- name: redis
image: redis
---
patch the above yaml to include redis container
kubectl patch deployment patch-demo --patch "$(cat patch-containers.yaml)"