部署

# docker.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: docker-api
  namespace: gaea-op
  annotations:
    k8s.gaea.me/workload: app
  labels:
    k8s.gaea.me/name: docker-api
spec:
  replicas: 1
  template:
    metadata:
      labels:
        k8s.gaea.me/name: docker-api
    spec:
      containers:
        - name: dockerd
          image: 'docker:18.09.9-dind'
          securityContext:
            privileged: true
        - name: docker-cli
          image: 'docker:18.09.9'
          env:
            - name: DOCKER_HOST
              value: tcp://127.0.0.1:2375
          command: ["/bin/sh"]
          args: ["-c", "docker info >/dev/null 2>&1; while [ $? -ne 0 ] ; do sleep 3; docker info >/dev/null 2>&1; done; docker pull library/busybox:latest; docker save -o busybox-latest.tar library/busybox:latest; docker rmi library/busybox:latest; while true; do sleep 86400; done"]
  selector:
    matchLabels:
      k8s.gaea.me/name: docker-api
  serviceName: docker-api
---
apiVersion: v1
kind: Service
metadata:
  name: docker-api
  namespace: gaea-op
spec:
  ports:
    - name: tcp-2375
      port: 2375
  clusterIP: None
  selector:
    k8s.gaea.me/name: docker-api
kubectl apply -f docker.yaml

使用

# docker api地址: docker-api-0.docker-api.gaea-op.svc.cluster.local
kubectl exec -it pods/docker-api-0   -n gaea-op -c docker-cli -- ash
/ # docker info

go api操作