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里的“刘备”


在这里插入图片描述

posted on   运维开发玄德公  阅读(26)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示