我如何启动一个简单的容器?
how do I start a simple container?
我已经阅读了 quick start guide 并且我已经了解了
- 我有一个集群
- 我可以看到我需要输入
kubectl run
命令来启动我的容器。
我想启动一个公开可用的 docker 容器,我可以使用此命令在任何启用 docker 的机器上启动它
docker run -d \
-e DRONE_SERVER=wss://ci.fommil.com/ws/broker \
-e DRONE_SECRET=<redacted> \
-e DOCKER_MAX_PROCS=1 \
-e DRONE_TIMEOUT=30m \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
--name=drone-agent \
drone/drone:0.5 agent
什么是等效的 Google 控制台/cubectl 命令?我已经达到
kubectl run agent \
--image=drone/drone:0.5 \
--env="DRONE_SERVER=wss://ci.fommil.com/ws/broker" \
--env="DRONE_SECRET=<redacted>" \
--env="DOCKER_MAX_PROCS=1" \
--env="DRONE_TIMEOUT=30m" \
-v /var/run/docker.sock:/var/run/docker.sock
但是这 -v
行不太正确。我需要确保 /var/run/docker.sock
已安装在容器中,因为它的唯一目的是在 docker 到 运行 CI 作业中启动子进程。
你是对的,使用 imperative commands 创建卷来创建没有配置文件的卷在 Kubernetes 中不可用。
但是写一些配置还是很容易的。基于此 blog post 和您的要求,"modern" 配置可能如下所示。
deployment.yml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: agent
spec:
replicas: 1
template:
metadata:
labels:
app: agent
spec:
containers:
- env:
- name: DRONE_SERVER
value: "wss://ci.fommil.com/ws/broker"
- name: DRONE_SECRET
value: <redacted>
- name: DOCKER_MAX_PROCS
value: "1"
- name: DRONE_TIMEOUT
value: 30m
image: drone/drone:0.5
name: agent
args: ["agent"]
securityContext:
privileged: true
volumeMounts:
- mountPath: /var/run/docker.sock
name: docker-sock
- mountPath: /var/lib/docker
name: docker-lib
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: docker-lib
hostPath:
path: /var/lib/docker
这现在可以与 kubectl create -f deployment.yml
一起使用并在 kubectl delete deployments -l app=agent
下停止
我已经阅读了 quick start guide 并且我已经了解了
- 我有一个集群
- 我可以看到我需要输入
kubectl run
命令来启动我的容器。
我想启动一个公开可用的 docker 容器,我可以使用此命令在任何启用 docker 的机器上启动它
docker run -d \
-e DRONE_SERVER=wss://ci.fommil.com/ws/broker \
-e DRONE_SECRET=<redacted> \
-e DOCKER_MAX_PROCS=1 \
-e DRONE_TIMEOUT=30m \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
--name=drone-agent \
drone/drone:0.5 agent
什么是等效的 Google 控制台/cubectl 命令?我已经达到
kubectl run agent \
--image=drone/drone:0.5 \
--env="DRONE_SERVER=wss://ci.fommil.com/ws/broker" \
--env="DRONE_SECRET=<redacted>" \
--env="DOCKER_MAX_PROCS=1" \
--env="DRONE_TIMEOUT=30m" \
-v /var/run/docker.sock:/var/run/docker.sock
但是这 -v
行不太正确。我需要确保 /var/run/docker.sock
已安装在容器中,因为它的唯一目的是在 docker 到 运行 CI 作业中启动子进程。
你是对的,使用 imperative commands 创建卷来创建没有配置文件的卷在 Kubernetes 中不可用。
但是写一些配置还是很容易的。基于此 blog post 和您的要求,"modern" 配置可能如下所示。
deployment.yml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: agent
spec:
replicas: 1
template:
metadata:
labels:
app: agent
spec:
containers:
- env:
- name: DRONE_SERVER
value: "wss://ci.fommil.com/ws/broker"
- name: DRONE_SECRET
value: <redacted>
- name: DOCKER_MAX_PROCS
value: "1"
- name: DRONE_TIMEOUT
value: 30m
image: drone/drone:0.5
name: agent
args: ["agent"]
securityContext:
privileged: true
volumeMounts:
- mountPath: /var/run/docker.sock
name: docker-sock
- mountPath: /var/lib/docker
name: docker-lib
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: docker-lib
hostPath:
path: /var/lib/docker
这现在可以与 kubectl create -f deployment.yml
一起使用并在 kubectl delete deployments -l app=agent