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上面 。
相关经验推荐
- 删除|苹果要求App必须内置删除账号功能!6月30日是最后期限,网友:必须支持
- 微信|微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 华为|微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了
- 删除|人教Pad定价超四千元,由学校统一采购,官网删除价格,配置停留在七年前
- 删除|别再清理手机垃圾了,只需删除这4个文件夹,手机用多久都不会卡
- iPod|iPod 彻底被结束,页面也被悉数删除丨iPhone14 Max 被曝延迟生产
- 删除|红米K50大幅度降价,登顶销量榜首!卢伟冰这招绝了
- 微信|微信这个地方不删除,陌生人就能随意登录你微信,手把手教您删除
- 删除|3060高刷游戏本该选谁?这三款包你满意
- 删除|绿厂618购机活动有多狠?最高直降1500,数十款产品给足惊喜