最新要闻
- garage两种读音_garage怎么读有几种读法是对的
- 观焦点:女子醉酒吐车上 20元都不肯赔 司机怒骂不要脸:网友力挺
- 环球快报:再获11亿美元投资:蔚来“长期主义”的底气
- 距离今年“召回王”又进一步 本田海外召回超百万辆汽车
- 法媒:罗马准备听取对贝洛蒂的报价,意甲英超西甲多队有意
- 腾讯两大国民APP账号又打通了!QQ悄然支持微信登陆 有了微信为啥仍离不开QQ?
- 2023年端午小长假收官:1.06亿人次出游 满血超越2019-当前热讯
- 女生发烧考出618分:一蹦三尺高 挨个房间报喜
- 每日消息!ChatGPT漏洞 讲故事送Window11激活Key!
- 世界快播:刘慈欣谈ChatGPT:人类的无能反而是人类最后的屏障
- 今日热议:关于高考志愿填报,这些热点问题需要关注
- 推出长达7年:任天堂股东质疑Switch已逼近极限
- 实时焦点:苹果前总监炮轰App Store存在灰色地带 标准随心所欲
- 三乙醇胺油酸皂商品报价动态(2023-06-24)
- 救命一声吼!山洪暴发女子大喊提醒救下多名游客 世界讯息
- 索尼PS5串流掌机价格曝光:最高2100元能接受么?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
k8s 深入篇———— pod 实战[六]
前言
pod 实战一下,主要是一些例子。
正文
例子一
pod 实例的选择:
NodeSelector:是一个供用户将 Pod 与 Node 进行绑定的字段
(资料图)
NodeName:一旦 Pod 的这个字段被赋值,Kubernetes 项目就会被认为这个 Pod 已经经过了调度,调度的结果就是赋值的节点名字。
所以,这个字段一般由调度器负责设置,但用户也可以设置它来“骗过”调度器,当然这个做法一般是在测试或者调试的时候才会用到。
HostAliases:定义了 Pod 的 hosts 文件(比如 /etc/hosts)里的内容:
例如:
在这个 Pod 的 YAML 文件中,我设置了一组 IP 和 hostname 的数据。这样,这个 Pod启动后,/etc/hosts 文件的内容将如下所示:
127.0.0.1 localhost...10.244.135.10 hostaliases-pod10.1.2.3 foo.remote10.1.2.3 bar.remote
如果设置:shareProcessNamespace=true.
这就意味着这个 Pod 里的容器要共享 PID Namespace。
而在这个 YAML 文件中,我还定义了两个容器:一个是 nginx 容器,一个是开启了 tty 和stdin 的 shell 容器。
然后就运行成功了。
kubectl exec -it nginx /bin/bash
如果一个 Pod 中有多个容器,使用 kubectl exec 进入容器时需要指定容器名称。可以使用以下命令指定容器名称:
kubectl exec -it -c sh其中,`` 是 Pod 的名称,`` 是容器名称。如果不指定容器名称,默认进入第一个容器。
那么我们进入第二个容器看下,因为第一个容器没有安装ps等一些基本的命令。
stdin 是 Kubernetes 中容器的一个属性,用于指定容器是否需要一个标准输入(stdin)。当 stdin 属性设置为 true 时,容器会打开一个 STDIN 文件描述符,并等待输入。这通常用于在容器中运行交互式应用程序,例如 bash shell。当 stdin 属性设置为 false 时,容器不会打开 STDIN 文件描述符,并且不会等待输入。这通常用于在容器中运行后台进程,例如 Web 服务器或数据库。需要注意的是,如果 stdin 属性设置为 true,而容器本身没有能力处理输入,那么容器将会无限期地等待输入,直到手动停止容器。因此,在使用 stdin 属性时,需要确保容器本身能够处理输入。
使用:
kubectl attach -it nginx -c shell
这里我们可以看到infra 程序,并且可以看到nginx,是因为shareProcessNamespace 为true了。
默认情况下,只有网络namespace 是共享的。
在这个 Pod 中,我定义了共享宿主机的 Network、IPC 和 PID Namespace。这就意味着,这个 Pod 里的所有容器,会直接使用宿主机的网络、直接与宿主机进行 IPC 通信、看到宿主机里正在运行的所有进程。
首先,是 ImagePullPolicy 字段。它定义了镜像拉取的策略。而它之所以是一个Container 级别的属性,是因为容器镜像本来就是 Container 定义中的一部分。
ImagePullPolicy 的值默认是 Always,即每次创建 Pod 都重新拉取一次镜像。另外,当容器的镜像是类似于 nginx 或者 nginx:latest 这样的名字时,ImagePullPolicy 也会被认为Always。而如果它的值被定义为 Never 或者 IfNotPresent,则意味着 Pod 永远不会主动拉取这个镜像,或者只在宿主机上不存在这个镜像时才拉取
其次,是 Lifecycle 字段。它定义的是 Container Lifecycle Hooks。顾名思义,Container Lifecycle Hooks 的作用,是在容器状态发生变化时触发一系列“钩子”。
我们来看这样一个例子:
这是一个来自 Kubernetes 官方文档的 Pod 的 YAML 文件。它其实非常简单,只是定义了一个 nginx 镜像的容器。
不过,在这个 YAML 文件的容器(Containers)部分,你会看到这个容器分别设置了一个 postStart 和 preStop 参数。
这是什么意思呢?先说 postStart 吧。它指的是,在容器启动后,立刻执行一个指定的操作。需要明确的是,postStart 定义的操作,虽然是在 Docker 容器 ENTRYPOINT 执行之后,但它并不严格保证顺序。
也就是说,在 postStart 启动时,ENTRYPOINT 有可能还没有结束。
当然,如果 postStart 执行超时或者错误,Kubernetes 会在该 Pod 的 Events 中报出该容器启动失败的错误信息,导致 Pod 也处于失败的状态。
而类似地,preStop 发生的时机,则是容器被杀死之前(比如,收到了 SIGKILL 信号)。
而需要明确的是,preStop 操作的执行,是同步的。所以,它会阻塞当前的容器杀死流程,直到这个 Hook 定义操作完成之后,才允许容器被杀死,这跟 postStart 不一样。
所以,在这个例子中,我们在容器成功启动之后,在 /usr/share/message 里写入了一句“欢迎信息”(即 postStart 定义的操作)。
而在这个容器被删除之前,我们则先调用了nginx 的退出指令(即 preStop 定义的操作),从而实现了容器的“优雅退出”。
Pod 生命周期的变化,主要体现在 Pod API 对象的Status 部分,这是它除了 Metadata和 Spec 之外的第三个重要字段。
其中,pod.status.phase,就是 Pod 的当前状态,它有
如下几种可能的情况:
Pending。这个状态意味着,Pod 的 YAML 文件已经提交给了 Kubernetes,API 对象已经被创建并保存在 Etcd 当中。但是,这个 Pod 里有些容器因为某种原因而不能被顺利创建。比如,调度不成功。
Running。这个状态下,Pod 已经调度成功,跟一个具体的节点绑定。它包含的容器都已经创建成功,并且至少有一个正在运行中。
Succeeded。这个状态意味着,Pod 里的所有容器都正常运行完毕,并且已经退出了。这种情况在运行一次性任务时最为常见。
Failed。这个状态下,Pod 里至少有一个容器以不正常的状态(非 0 的返回码)退出。
这个状态的出现,意味着你得想办法 Debug 这个容器的应用,比如查看 Pod 的 Events和日志。
- Unknown。这是一个异常状态,意味着 Pod 的状态不能持续地被 kubelet 汇报给kube-apiserver,这很有可能是主从节点(Master 和 Kubelet)间的通信出现了问题。
更进一步地,Pod 对象的 Status 字段,还可以再细分出一组 Conditions。这些细分状态的值包括:PodScheduled、Ready、Initialized,以及 Unschedulable。
它们主要用于描述造成当前 Status 的具体原因是什么。
比如,Pod 当前的 Status 是 Pending,对应的 Condition 是 Unschedulable,这就意味着它的调度出现了问题。
而其中,Ready 这个细分状态非常值得我们关注:它意味着 Pod 不仅已经正常启动(Running 状态),而且已经可以对外提供服务了。这两者之间(Running 和 Ready)是有区别的,你不妨仔细思考一下。
Pod 的这些状态信息,是我们判断应用运行情况的重要标准,尤其是 Pod 进入了非“Running”状态后,你一定要能迅速做出反应,根据它所代表的异常情况开始跟踪和定位,而不是去手忙脚乱地查阅文档
结
下一节k8s,进阶例子。
关键词:
k8s 深入篇———— pod 实战[六]
garage两种读音_garage怎么读有几种读法是对的
观焦点:女子醉酒吐车上 20元都不肯赔 司机怒骂不要脸:网友力挺
环球快报:再获11亿美元投资:蔚来“长期主义”的底气
距离今年“召回王”又进一步 本田海外召回超百万辆汽车
法媒:罗马准备听取对贝洛蒂的报价,意甲英超西甲多队有意
腾讯两大国民APP账号又打通了!QQ悄然支持微信登陆 有了微信为啥仍离不开QQ?
2023年端午小长假收官:1.06亿人次出游 满血超越2019-当前热讯
【世界独家】word安装(ppt、excel),以及word的常用设置
【当前独家】Blazor开发小游戏?趁热打铁上!!!
当前热门:火狐主页diy设置以及常用的扩展
DZY Loves Math|全球即时看
女生发烧考出618分:一蹦三尺高 挨个房间报喜
每日消息!ChatGPT漏洞 讲故事送Window11激活Key!
世界快播:刘慈欣谈ChatGPT:人类的无能反而是人类最后的屏障
今日热议:关于高考志愿填报,这些热点问题需要关注
缓存一致性如何保障
推出长达7年:任天堂股东质疑Switch已逼近极限
实时焦点:苹果前总监炮轰App Store存在灰色地带 标准随心所欲
三乙醇胺油酸皂商品报价动态(2023-06-24)
救命一声吼!山洪暴发女子大喊提醒救下多名游客 世界讯息
索尼PS5串流掌机价格曝光:最高2100元能接受么?
全球视点!泰坦号观光潜艇“打破常规留名后世”,老板一语成谶片受热议
DLang 与 C 语言交互
Apollo2.1.0+Springboot使用OpenApI
邮箱:微信企业域名邮箱给gmail或hotmail等域外邮箱发邮件被退回问题如何解决? 环球观焦点
今日热门!Stable Diffusion模型发布新版本:生成图像以假乱真
钻石价格,突发“跳水”!未来还会更便宜?
使用python发送sip协议的OPTIONS 热门
k8s 深入篇———— k8s 的pod[五]-全球播资讯
8. Java-AOP 面向切面编程
文心一言 VS 讯飞星火 VS chatgpt (46)-- 算法导论6.1 4题|全球热点评
泰坦号事故后:加拿大将展开事故调查
车主自曝差点被闷死在特斯拉Model X里 车门锁死 原因揭晓
蔡徐坤巡演新加坡站开票 《Hug me(remix版)》同日上线
来一打自建IP Proxy玩玩之Majora
kafka学习之五_多个磁盘的性能验证 世界快看点
Go——常用函数
每日速递:卷福的十年同学会
每日简讯:4亿票房端午黑马:《消失的她》官宣海外定档
冲入球场拥抱梅西小伙获释后道歉:我真不是没素质的人
世界观天下!新会绿美生态园票价(新会绿美生态园票价多少钱)
腾讯两大国民APP账号又打通了?QQ悄然支持微信登陆 环球精选
环球快报:调查称安卓更易上手:iPhone用户遇到问题概率高出58%
java 异常处理,事务管理,事务共用,事务传递 天天微头条
Go-闭包和defer|最新资讯
环球热资讯!Zen3清库存?突然冒出个很特别的锐龙5 5700
虚幻5打造!腾讯动漫《斗罗大陆2》今日两集首播 霍雨浩初入星斗大森林|每日观察
“空中出租车”亮相巴黎航展:可降落空间直径仅需15米-环球速递
古力娜扎曾遭换脸视频威胁勒索:不给钱就毁了你!
男生单曲循环《好运来》查出593分大哭:比平时多出50分 超常发挥
全球钻石价格较峰值暴跌18%:人造钻石市场规模不断扩大_全球视点
环球最新:甲亢遇到异食癖:法国男子一顿吃15人份 急了还吃石头木塞
全球热点评!公鸡突然从背后“偷袭”萌娃 飞起两脚踹倒在地 第二天端午节就被炖了
泰国和美国两地大量鱼类死亡 或与海洋升温有关 快看点
【技术积累】C语言中的指针【一】_世界百事通
Go-自定义数据类型(函数类型)详解
行业风险管理需求强烈
焦点信息:AMD RX 7800被逼急了!硬塞进去个“大胖子”
世界视点!一考生查分 全家一起喊出“666”:打算冲击复旦、交大
Kafka学习之四_Grafana监控相关的学习
一天吃透MySQL面试八股文 环球微速讯
什么是大模型? 每日热讯
内马尔在足球界的地位_内马尔的盘带水平在足球史上处于什么地位 全球要闻
【环球财经】伦敦金属交易所基本金属23日多数下跌_全球信息
白玉兰奖完整名单出炉 年初大热电视剧《狂飙》挂零陪跑-天天实时
中国高空开伞试验运载器发射连续成功:木星、天王星我们来了! 今日热讯
男子微信回了个“OK”表情 结果竟成被告!一点都不冤 速读
环球报道:尼康Z8新故障导致无法锁定镜头:官方承诺免费维修
【天天新要闻】读发布!设计与部署稳定的分布式系统(第2版)笔记10_自动化和缓慢的响应
无线路由器怎么连接电视(无线路由器怎么连接)
【环球新要闻】要考北大!汶川“敬礼娃娃”郎铮高考637分:15年前被埋20小时
关注:OPPO突然放弃自研芯片 真是因为没钱了?3000哲库人不信
看热讯:四川学霸女生高考712分查完分就睡觉、汶川“敬礼娃娃”郎铮637分
微软承认输掉“主机战争”:Xbox难以与竞争对手抗衡 每日头条
环球微动态丨特斯拉AI账号悄然上线:Dojo超级计算机下月开始生产
pro e
无牌产品硬刚国际大牌 就因为带货主播们买地建厂?
复兴号开进青藏铁路 提速至160公里/时 全程不到6小时
微软终于认怂!重新恢复Win11文件管理器经典功能
《人世间》赢麻!成最佳中国电视剧 雷佳音吴越分获白玉兰最佳男女主角_当前热门
“泰坦”号悲剧隐患早已埋下
2023年 年轻人被迫流行功能机了?-每日快看
全球快资讯丨【技术积累】Git中的基础知识【一】
世界信息:登录验证,JWT,过滤器,拦截器使用总结 2023
全球资讯:索尼时隔10年公布全新PS掌机Q!价格够低
焦点资讯:女孩没考好 和妈妈吵架后竟被丢高速:网友观点出奇一致
“4S店之王”破产离场 斯巴鲁中国重大变更:开始独资|当前焦点
大超险些成为007 环球快资讯
南漳县属于哪个省市_南漳县属于哪个市|每日速讯
今日快看!电影相约2000年(相约2000年)
imessage怎么设置不要钱_imessage怎么设置
Springboot web 项目开发流程梳理总结|世界讯息
今日热门!模型剪枝:让深度学习模型更好地应对不同的任务和环境
WEB安全-渗透测试-waf绕过信息收集_世界快看点
【独家焦点】“超人”亨利卡维尔有望成为007新片邦德扮演者:试镜效果棒极了
长安欧尚Z6新能源半年降价3万多 车主集体投诉
天天讯息:ASP.NET Core MVC 从入门到精通之缓存
全球时讯:文心一言 VS 讯飞星火 VS chatgpt (45)-- 算法导论6.1 3题
当前头条:【后端面经-Spring】Spring 中 bean 的生命周期)