1

我想在 kubernetes 中使用以下命令运行一个 kloudless docker 映像。只是想知道它有任何简单的解决方案。

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 中配置容器,在 kubernetes 中使用类似的配置运行 docker 镜像。例如,如果我想给出 --privileged 论点,我可以

containers:
    securityContext:
      privileged: true

只是想知道是否有任何直接的方法。

4

1 回答 1

4

kubectl run曾经存在。这可能就是你要找的东西。但它现在被贬低了

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

在不创建我能找到的文件的情况下从命令行运行 pod/deployment 最接近的方法是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

于 2019-10-10T09:26:22.300 回答