我已经阅读了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 Console / 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作业。
答案 0 :(得分:1)
你是对的,使用imperative commands创建卷来创建没有配置文件的卷在Kubernetes中不可用。
但是编写一些配置很容易。基于此blog post和您的要求,“现代”配置可能看起来像。
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