k8s-Pod中容器的初始化

1. 概述

POD的spac下 containers 定义了常规运行的容器,在initContainers中定义了用于初始化的容器(可以是一个也可以是多个)。pod启动时先将initContainers中的容器执行一次。
如果初始化失败仍然按容器重启策略执行。

2. 测试

2.1 yml文件

说明:
container中定义了一个nginx容器。initContainers中定义了一个busybox容器用于初始化nginx容器。
具体初始化方案如下:
1)nginx和busybox共同挂着一个空目录,nginx中指向web家目录。
2)初始化时,busybox给nginx写入一个首页

创建init-test.yml文件,内容如下:

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: init-demo
  name: init-demo
  namespace: test
spec:
  containers:
  - name: nginx
    image:  harborcto.xxx.com.cn/public/nginx  #公司内网镜像打个码,改成公网即可。
    ports:
    - containerPort: 80
    volumeMounts:
    - name: workdir
      mountPath: /usr/share/nginx/html
  initContainers:
  - name: install
    image: harborcto.xxx.com.cn/public/busybox #公司内网镜像打个码,改成公网即可。
    command:
    - /bin/sh
    - "-c"
    - echo "刘备" > /work-dir/index.html
    volumeMounts:
    - name: workdir
      mountPath: "/work-dir"
  dnsPolicy: Default
  volumes:
  - name: workdir
    emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: init-demo
  namespace: test
  labels:
    app: init-demo
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30588
  selector:
    app: init-demo

2.2 启动和测试

[root@DoM01 test]# kubectl create -f init-test.yml
[root@DoM01 test]# kubectl get pod -n test
NAME             READY   STATUS    RESTARTS   AGE
init-demo        1/1     Running   0          10m

访问web页面,可见我们写在index里的“刘备”


在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值