Как в докере запустить образ с аргументами в кубернетес - PullRequest
1 голос
/ 10 октября 2019

Я хочу запустить образ докера без ключа с помощью команды ниже в kubernetes. Просто хотел знать, что было какое-то простое решение.

docker run -d \
  --privileged
  --tmpfs /run  --tmpfs /run/lock  --tmpfs /tmp \
  --volume /sys/fs/cgroup:/sys/fs/cgroup:ro \
  --ulimit nofile=1024000:1024000 \
  --sysctl net.ipv4.ip_local_port_range='1025 65535' \
  --name kenterprise \
  --env KLOUDLESS_CONFIG="$(cat kloudless.yml)" \
  # [ports,/data volume|db config] \
  docker.kloudless.com/prod:1.29.0  docker_entry

Я знаю, что мы можем запустить образ docker в kubernetes с аналогичной конфигурацией, настроив контейнер в pod yaml. Например, если бы я хотел дать аргумент --privileged, я мог бы

containers:
    securityContext:
      privileged: true

Просто хотел узнать, есть ли какой-нибудь прямой способ.

1 Ответ

4 голосов
/ 10 октября 2019

kubectl run используется для существования. Это было, вероятно, то, что вы искали. Но теперь он устарел .

kubectl run -i --tty load-generator --image=busybox /bin/sh

Самое близкое к запуску модуля / развертывания из командной строки без создания файла, который я могу найти, это kubectl create

kubectl create deployment prod --image=busybox -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: prod
  name: prod
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prod
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: prod
    spec:
      containers:
      - image: busybox
        name: busybox
        resources: {}
status: {}

Хотя я бы настоятельно рекомендовал не запускать подобные команды, как это, поскольку это противоречит концепции инфраструктуры как кода , который Kubernetes поощряет с помощью манифестов.

Использование манифестов в системе управления версиями, такой как git, позволяет вам с легкостью исследовать историю ваших команд и развертываний и управлять ветвями изменений в вашем развертывании.

Однако, если вы хотите сделатьабстрагируем ваше развертывание, чтобы пользователям не приходилось запачкать свои внутренние ресурсы, тогда я бы порекомендовал такой инструмент, как Helm , который позволяет вам создавать диаграммы и изменять простые значения во время выпуска, вот так:

helm install --set foo=bar ./mychart

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...