定期从一个容器中删除 pod 中的文件

Delete file in pod from one container priodically

我有两个容器,一个正在创建一个文件,一个正在删除它,我能够创建文件但不能删除它。我希望它每 2 小时删除一次文件,我怎样才能让它以干净的方式工作?我们不想使用 cron 作业...

apiVersion: v1
    kind: Pod
    metadata:
      name: its
    spec:
      volumes:
      - name: common
        emptyDir: {}
      containers:
      - name: 1st
        image: nginx
        volumeMounts:
        - name: common
          mountPath: /usr/share/nginx/html
      - name: 2nd
        image: debian
        volumeMounts:
        - name: common
          mountPath: /html
        command: ["/bin/sh", "-c"]
        args:
          - while true; do
              date >> /html/index.html;
              sleep 7200;
            done

使用带有 alpine base 的 nginx 容器你需要安装 crond,这里是一个例子:Enable crond in an Alpine container

现在,您可以 运行 在具有文件的同一容器中执行 cron 任务,因此您只需要 1 个容器用于 pod。

此外,这是另一个关于如何 运行 在高山 docker 容器中进行 crond 的示例:

https://devopsheaven.com/cron/docker/alpine/linux/2017/10/30/run-cron-docker-alpine.html

这对我有用

apiVersion: v1
kind: Pod
metadata:
  name: mc1
spec:
  volumes:
  - name: html
    emptyDir: {}
  containers:
  - name: 1st
    image: nginx
    command: ["/bin/sh", "-c"]
    args:
      - while true; do
          touch /usr/share/nginx/html/test.txt;
          ls /usr/share/nginx/html/;
          echo "file created cotnainer 1";
          sleep infinity;
        done
    volumeMounts:
    - name: html
      mountPath: /usr/share/nginx/html
  - name: 2nd
    image: debian
    volumeMounts:
    - name: html
      mountPath: /html
    command: ["/bin/sh", "-c"]
    args:
      - while true; do
          ls /html;
          rm /html/test.txt;
          echo "container 2 - file removed";
          ls /html;
          sleep 7200;
        done

我正在从 container 1 创建一个文件并被 container 2 删除,你遇到了什么错误?