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里的“刘备”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」