Как докер запустить изображение с аргументами в кубернетах

Я хочу запустить образ докера без kloudless с помощью приведенной ниже команды в 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

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

containers:
    securityContext:
      privileged: true

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

1 ответ

Решение

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

Другие вопросы по тегам