15、 DaemonSet资源对象的特性?DaemonSet这种资源对象会在每个k8s集群中的节点上运行 , 并且每个节点只能运行一个pod , 这是它和deployment资源对象的最大也是唯一的区别 。 所以 , 在其yaml文件中 , 不支持定义replicas , 除此之外 , 与Deployment、RS等资源对象的写法相同 。
它的一般使用场景如下:
- 在去做每个节点的日志收集工作;
- 监控每个节点的的运行状态;
#提高Job执行效率的方法:
spec:
parallelism: 2 #一次运行2个
completions: 8 #最多运行8个
template:
metadata:
17、描述一下pod的生命周期有哪些状态?
- Pending:表示pod已经被同意创建 , 正在等待kube-scheduler选择合适的节点创建 , 一般是在准备镜像;
- Running:表示pod中所有的容器已经被创建 , 并且至少有一个容器正在运行或者是正在启动或者是正在重启;
- Succeeded:表示所有容器已经成功终止 , 并且不会再启动;
- Failed:表示pod中所有容器都是非0(不正常)状态退出;
- Unknown:表示无法读取Pod状态 , 通常是kube-controller-manager无法与Pod通信 。
- 客户端提交Pod的配置信息(可以是yaml文件定义好的信息)到kube-apiserver;
- Apiserver收到指令后 , 通知给controller-manager创建一个资源对象;
- Controller-manager通过api-server将pod的配置信息存储到ETCD数据中心中;
- Kube-scheduler检测到pod信息会开始调度预选 , 会先过滤掉不符合Pod资源配置要求的节点 , 然后开始调度调优 , 主要是挑选出更适合运行pod的节点 , 然后将pod的资源配置单发送到node节点上的kubelet组件上 。
- Kubelet根据scheduler发来的资源配置单运行pod , 运行成功后 , 将pod的运行信息返回给scheduler , scheduler将返回的pod运行状况的信息存储到etcd数据中心 。
关闭流程如下:
- pod从service的endpoint列表中被移除;
- 如果该pod定义了一个停止前的钩子 , 其会在pod内部被调用 , 停止钩子一般定义了如何优雅的结束进程;
- 进程被发送TERM信号(kill -14)
- 当超过优雅退出的时间后 , Pod中的所有进程都会被发送SIGKILL信号(kill -9) 。
Service的Endpoint列表通常绑定了一组相同配置的pod , 通过负载均衡的方式把外界请求分配到多个pod上
21、 k8s是怎么进行服务注册的?答:Pod启动后会加载当前环境所有Service信息 , 以便不同Pod根据Service名进行通信 。
22、 k8s集群外流量怎么访问Pod?答:可以通过Service的NodePort方式访问 , 会在所有节点监听同一个端口 , 比如:30000 , 访问节点的流量会被重定向到对应的Service上面 。
- 删除|拼多多商品转化率低有什么影响?多少正常?
- 删除|曾经的苹果iPhone高攀不起,现在对比国产机,反成性价比?
- 删除|国产手机,靠前缀装饰而来的冠军,能否捍卫尊严?
- 删除|Excel工作表之行、列、单元格(一)
- 删除|一体机渐成趋势,宏碁联想两款酷睿12机型降价,最低3999元
- 删除|100%的中国制造,这一大国重器不输光刻机,掌握主要工业消耗品
- 删除|6 件在你的电脑上占用太多空间的东西
- 删除|5G+亮相,iPhone14系列另一项重大提升曝光,事关你的亮码速度!
- 删除|小米这App炸了,百万米粉在线求救
- 删除|卡里两毛钱被赋红码后,网友发问:阿里马云和银行究竟谁风险更大
