小编Mar*_*Mei的帖子

如何在kubernetes的每个节点而不是daemonset中运行作业

有一个具有 100 个节点的 kubernetes 集群,我必须手动清理特定图像,我知道 kubelet 垃圾收集可能会有所帮助,但它不适用于我的情况。浏览互联网后,我找到了一个解决方案——docker in docker,解决了我的问题。

我只想删除每个节点中的图像一次,有什么方法可以在每个节点中运行一次作业吗?

我检查了 kubernetes 标签和 podaffinity,但仍然没有想法,任何人都可以提供帮助吗?

另外,我尝试使用 daemonset 来解决问题,但事实证明它只能删除部分节点的图像,而不是所有节点,我不知道可能是什么问题......

这是守护程序集示例:

kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: test-ds
  labels:
    k8s-app: test
spec:
  selector:
    matchLabels:
      k8s-app: test
  template:
    metadata:
      labels:
        k8s-app: test
    spec:
      containers:
      - name: test
        env:
        - name: DELETE_IMAGE_NAME
          value: "nginx"
        image: busybox
        command: ['sh', '-c', 'curl --unix-socket /var/run/docker.sock -X DELETE http://localhost/v1.39/images/$(DELETE_IMAGE_NAME)']
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /var/run/docker.sock
          name: docker-sock-volume
        ports:
        - containerPort: 80
      volumes:
      - name: docker-sock-volume
        hostPath:
          # location …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes daemonset kubernetes-jobs

5
推荐指数
1
解决办法
4299
查看次数

标签 统计

daemonset ×1

docker ×1

kubernetes ×1

kubernetes-jobs ×1