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