kubernetes - 我的 initContainers 的 "alpine"图像有问题

标签 kubernetes yaml containers microk8s

人们, 我正在尝试使用 initContainers 创建一个简单的文件 /tmp/tarte.test。我有一个限制,使用 alpine 图像作为容器。请让我知道这个简单的 yaml 文件中没有什么。

apiVersion: v1
kind: Pod
metadata:
  name: initonpod
  namespace: prod
  labels:
    app: myapp
spec:
  containers:
  - name: mycont-nginx
    image: alpine
  initContainers:
    - name: myinit-cont
      image: alpine
      imagePullPolicy: IfNotPresent
      command: 
      - touch
      - "/tmp/tarte.test"
      - sleep 200

pod的描述

Events:
  Type     Reason     Age              From                 Message
  ----     ------     ----             ----                 -------
  Normal   Scheduled  9s               default-scheduler    Successfully assigned prod/initonpod to k8s-node-1
  Normal   Pulled     8s               kubelet, k8s-node-1  Container image "alpine" already present on machine
  Normal   Created    8s               kubelet, k8s-node-1  Created container
  Normal   Started    7s               kubelet, k8s-node-1  Started container
  Normal   Pulling    4s (x2 over 7s)  kubelet, k8s-node-1  pulling image "alpine"
  Normal   Pulled     1s (x2 over 6s)  kubelet, k8s-node-1  Successfully pulled image "alpine"
  Normal   Created    1s (x2 over 5s)  kubelet, k8s-node-1  Created container
  Normal   Started    1s (x2 over 5s)  kubelet, k8s-node-1  Started container
  Warning  BackOff    0s               kubelet, k8s-node-1  Back-off restarting failed container

如果我为 nginx 图像容器更改 alpine 图像......它工作得很好。

最佳答案

由于您的容器规范而退避重启失败的容器

spec:
  containers:
  - name: mycont-nginx
    image: alpine

这个 alpine 容器不会永远运行。在 kubernetes 中,容器必须永远运行。这就是你出错的原因。当您使用 nginx 图像时,它会永远运行。因此,要使用 alpine 图像,请按以下方式更改规范:

apiVersion: v1
kind: Pod
metadata:
  name: busypod
  labels:
    app: busypod
spec:
  containers:
  - name: busybox
    image: alpine
    command:
    - "sh"
    - "-c"
    - >
      while true; do
        sleep 3600;
      done
  initContainers:
  - name: myinit-cont
    image: alpine
    imagePullPolicy: IfNotPresent
    command:
    - touch
    - "/tmp/tarte.test"
    - sleep 200

关于kubernetes - 我的 initContainers 的 "alpine"图像有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386022/

相关文章:

ubuntu - 无法在 docker 容器中安装软件包

docker - 如何使用 Kubernetes 将主目录文件复制到新的持久卷中?

kubernetes - dask.distributed集群可以独立自动缩放不同的工作线程吗?

docker - 对于在 GCE 上的 CoreOS 上的 Kubernetes 上运行 Aerospike 有什么建议吗?

yaml - Ansible lineinfile insertafter 在文件末尾注入(inject)行

azure-devops - 部署作业的检查(批准)阻碍了整个阶段

docker - Docker微型容器

kubernetes - Istio:sidecar EnvoyFilter workloadSelector 未过滤

json - 无法反序列化结构 ("value of type is not assignable to type")

java - 我如何从 springboot 应用程序中分离集成的 tomcat