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上面 。
- 微信这个功能容易被骗子绑定和利用,教你快速查清并删除
- 删除|Apple watch苹果手表如何更换电池?看完你是不是也学会了呢?
- 删除|被好友悄悄删除?微信右上角这个功能很方便,“黑名单”一清二楚
- 删除|微信朋友圈烦人的内容不想看?教你三招,快速删除!方法很简单
- 小鹏汽车回应盗用图片宣传:素材是供应商提供的,已删除
- 手机浏览“不良网站”,删除历史记录就有用吗?过来人给出答案
- 删除|台积电迎来3个“噩耗”,还能逆转局势吗?
- 软件|Win11要变流氓系统?新版本预装超多软件,还好删除很简单
- 微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了