CC00204.CloudKubernetes——|KuberNetes高级调度.V07|——|初始化容器|InitContainer操作|
### --- InitContainer概述~~~ # InitContainer:
~~~ 初始化容器:预处理、预判断、与执行命令操作;在我应用容器启动之前做的一些舒适化操作。
~~~ # postStart:
~~~ 在容器启动之前做一些操作。不能保证在你的container的EntryPoint
### --- 为什么不适用postStart而是使用InitContainer呢?~~~ 两者都是在容器启动之前执行一些操作
~~~ 使用InitContainer的原因:因为postStart不能保证在EntryPoint之前在运行,
~~~ 但是InitContainer可以保证一定会在容器启动之前去运行,
~~~ 因为它运行完成之后,才能运行我们的应用容器。
### --- InitContainer预处理操作:~~~ 验证在初始化之前进行执行InitContainer的参数,若是InitContainer执行成功,在执行启动。
### --- 添加InitContainers参数在容器启动之前执行一些操作[root@k8s-master01 ~]# kubectl edit deploy demo-nginxspec: # 在spec之下添加如下内容initContainers:- image: nginximagePullPolicy: IfNotPresentcommand: ["sh", "-c", "echo InitContainer"]name: init1containers: # 在containers之上添加如上内容
### --- 查看容器是否被初始化操作
~~~ # 正在进行初始化操作[root@k8s-master01 ~]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
demo-nginx-7d5fb74f4-splmz 0/2 Init:0/1 0 5s <none> k8s-node02 <none> <none>
demo-nginx-7d5fb74f4-tn7xk 0/2 Init:0/1 0 6s <none> k8s-master01 <none> <none>
~~~ # 初始化完成[root@k8s-master01 ~]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
demo-nginx-7d5fb74f4-splmz 2/2 Running 0 45s 172.27.14.206 k8s-node02 <none> <none>
demo-nginx-7d5fb74f4-tn7xk 2/2 Running 0 46s 172.25.244.241 k8s-master01 <none> <none>
### --- 挂载nfs卷进去,写入内容,查看是否执行[root@k8s-master01 ~]# kubectl edit deploy demo-nginx initContainers:- command:- sh- -c- echo "InitContainer" > /tmp/nfs/init // 输出一行内容image: nginximagePullPolicy: IfNotPresentname: init1resources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts: // 挂载一个nfs进去- mountPath: /tmp/nfsname: nfs-test
[root@k8s-master01 ~]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
demo-nginx-7d847948d8-8h8kt 2/2 Running 0 24s 172.25.92.85 k8s-master02 <none> <none>
demo-nginx-7d847948d8-jtvtr 2/2 Running 0 22s 172.27.14.207 k8s-node02 <none> <none>
### --- 查看文件是否被写入进去
~~~ 启动它是被执行了2次初始化操作的root@demo-nginx-7d847948d8-8h8kt:/# cat /tmp/nfs/init
InitContainer // 文件已经被写入进来
### --- 再次更改,它的输入内容[root@k8s-master01 ~]# kubectl edit deploy demo-nginx initContainers:- command:- sh- -c- echo "InitContainer" >> /tmp/nfs/init // 输出内容应该是3行是正确的
### --- 验证;是否输入3行内容[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
demo-nginx-7648bb7d-75vhx 2/2 Running 0 13s
demo-nginx-7648bb7d-9sdb7 2/2 Running 0 14s
~~~ 所以说是每一个pod上面会挂一个InitContainer,InitContainer会执行我们的命令,
~~~ InitContainer在使用非常广泛,主要是做一些预处理的工作。比postStart使用好一些。[root@k8s-master01 ~]# kubectl exec -ti demo-nginx-7648bb7d-75vhx -- bash
root@demo-nginx-7648bb7d-75vhx:/# cat /tmp/nfs/init // 输入了3行内容
InitContainer
InitContainer
InitContainer
CC00204.CloudKubernetes——|KuberNetes高级调度.V07|——|初始化容器|InitContainer操作|相关推荐
- CC00210.CloudKubernetes——|KuberNetes高级调度.V13|——|Pod亲和力反亲和力.v01|pod亲和力_同namespace|
一.Pod亲和力和反亲和力概述 ### --- pod亲和力说明~~~ Pod亲和力:尽量将Pod部署在一起 ~~~ Pod反亲和力:不尽量将Pod部署在一起 ### --- 官方地址:~~~ htt ...
- CC00211.CloudKubernetes——|KuberNetes高级调度.V14|——|Pod亲和力反亲和力.v02|pod亲和力_跨namespace|
一.pod的亲和力:跨namespace: ### --- pod亲和力实验说明~~~ 与指定pod部署在一块,是可以块namespace的: ~~~ 把demo-nginx和kube-systemn ...
- CC00212.CloudKubernetes——|KuberNetes高级调度.V15|——|Pod亲和力反亲和力.v03|pod反亲和力|
一.Pod的反亲和力: ### --- 编辑yaml文件:编写pod的反亲和力的参数 ~~~ # 编辑yaml文件 ~~~ 就是尽量不和namespace下的kube-system,key:k8s-a ...
- Kubernetes(k8s)四、Pod生命周期(初始化容器的应用,探针liveness、readliness应用,)
Pod生命周期 学习目标:初始化容器的应用及两个探针的应用 探针 是由 kubelet 对容器执行的定期诊断: Kubelet 可以选择是否执行在容器上运行的三种探针执行和做出反应: liveness ...
- kubernetes之初始化容器
参考:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ 初始化容器是什么? 在kubernetes中,一个pod可 ...
- Kubernetes 初始化容器顺序启动
最近工作中需要保证容器启动之前PostgreSQL先启动,然后Apollo再启动,不然会出现配置加载错误的问题.Kubernetes的初始化容器就能够满足这种场景. InitContainers能够按 ...
- 运行支持kubernetes原生调度的Spark程序
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Spark 概念说明 Apache Spark 是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLa ...
- Kubernetes集群搭建及容器化部署
Kubernetes集群搭建及容器化部署 目录 一.k8s 集群部署 2 1.k8s 快速入门 2 2.k8s 集群安装 10 二.k8s 容器化部署 18 1.Kubectl命令行部署 18 2.K ...
- k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
pod结构 Pause容器 Pause容器是每个Pod都会有的一个根容器,它的作用有两个 可以以它为根据,评估整个pod的健康状态 可以在根容器上设置IP地址,其他容器都以此IP(Pod IP),以实 ...
最新文章
- C/C++刷题知识点总结
- Android4.0添加底层核心服务
- seata 集群_【视频】 聊聊分布式事务解决方案seata
- win10专业版关闭smartscreen
- Quartz集成到 Spring
- android转web,Android 转 web app 笔记一:Touch事件
- FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_F
- 使用 pyinstaller 打包 py 文件成 exe 程序
- TableView Within Alert
- 配置maven使用阿里云仓库
- 网络百科——网络接口卡
- 网络管理(课程总结3)Week12 澳大利亚维多利亚大学VIT1104 Computer Networks
- HDU - 5773 贪心 + LIS
- 阿里云网盘内测申请_最新阿里云网盘官方申请地址,哪里可以获得阿里网盘内测码?9月23日截至...
- 国产工业机器人目前发展到了什么水平?
- PeopleSoft如何配置SMTP邮件服务
- 天天爱跑步【NOIP2016 T4】
- (转)业务知识_电子商务知识
- ultraedit15.00.0.1046注册码
- 家族查询系统c语言源程序,家谱管理系统(含源代码).docx