Как создать контейнер с несколькими контейнерами без конфигурации модуля 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)"
Другие вопросы по тегам