当前位置:网站首页>Kubernetes Static Pod (静态Pod)
Kubernetes Static Pod (静态Pod)
2022-07-07 22:30:00 【富士康质检员张全蛋】
堆叠etcd集群:一个集群里面有3个master,每个master里面都有etcd这个pod,这个pod通常通过kubelet自管理。
kubelet会去读取一个config,这个config定义了static pod path,kubelet它本身的作用是维护pod的生命周期,他有几种方式来加载pod的清单,一种方式是监听api server,还有一种方式是它会去扫描本地的static pod path,扫描这个目录,它要去看这个目录里面有没有pod清单,如果有的话就直接加载。
这种模式就是etcd会在每个master上面部署,它是以静态的方式去部署。
堆叠式好处:apiserver和etcd之间是紧绑定的,所有apiserver的请求以loopback方式发送到etcd,读操作可以直接读走,读操作不需要经过master,读操作不需要经过网络调用的,本地就走了,其次这些组件放在一起好管理维护,不需要网络调用就可以读取数据。还有etcd是一个重落盘的,它对disk io是有要求的,其他的应用没有那么高的要求,那么放在一起也是ok的。
什么是 Static Pod
静态 Pod 在指定的节点上由 kubelet 守护进程直接管理,不需要 API 服务器 监管。 与由控制面管理的 Pod(例如,Deployment) 不同;kubelet 监视每个静态 Pod(在它崩溃之后重新启动)。
静态 Pod 永远都会绑定到一个指定节点上的 Kubelet。
kubelet 会尝试通过 Kubernetes API 服务器为每个静态 Pod 自动创建一个 镜像 Pod。 这意味着节点上运行的静态 Pod 对 API 服务来说是可见的,但是不能通过 API 服务器来控制。 Pod 名称将把以连字符开头的节点主机名作为后缀。
最常见的 Static Pod
- etcd
- kube-apiserver
- kube-controller-manager
- kube-scheduler
如何创建 Static Pod
静态文件
通过查看kubelet的service文件可以看到:
运行中的 kubelet 会定期扫描配置的目录(比如例子中的 /etc/kubernetes/manifests 目录)中的变化, 并且根据文件中出现/消失的 Pod 来添加/删除 Pod。
Http请求
kubelet 周期地从 –manifest-url= 参数指定的地址下载⽂件,并且把它翻译成 Json/Yaml 格式的
pod 定义。此后的操作⽅式与 –pod-manifest-path= 相同,kubelet 会不时地重新下载该⽂件,当⽂件变化时对应地终止或启动静态 pod;过程和原理都是一样的这里就不再详细介绍了。
静态Pod是由kubelet进行管理的仅存在特定的Node上的Pod。这些Pod不能通过API Server进行管理,也无法和RC、Deployment或者DaemonSet关联,并且不存在健康检查,该类型的Pod由kubelet创建的,并且只在kubelet所在的Node上运行。
创建静态Pod的方式有两种:
配置文件
HTTP
一、配置文件
首先需要时设定kubelet启动参数“--podmainifest-path”,或者在kubelet的配置文件中设定staticPodPath,指定的路径是kubelet监控的路径(如果k8s集群由kubeadm搭建,那默认存储在目录/etc/kubernetes/manifests下),kubelet会定期检查该目录,并根据该目录下的yaml文件和json文件进行创建Pod操作。
例如:配置目录为/etc/kubelet.d,配置启动参数为--podmainifest-path=/etc/kubelet.d,然后重启kubelet。
在/etc/kubelet.d目录下放static_pod.yaml文件,内容如下:
---
apiVersion: v1
kind: Pod
metadata:
name: static-pod
labels:
name: static-pod
spec:
containers:
- name: static-pod
image: nginx
ports:
- name: web
containerPort: 80
稍等片刻,便能够发现集群启动了一个pod(如长时间未启动,查看系统日志、var/log/messages)
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default static-pod-host-192-168-100-121 1/1 Running 0 8s
该pod无法使用API Server删除,如果尝试删除会使该pod处于pending状态,并且一直不会被删除。如果要删除该pod,只需要到之前存放yaml文件的目录下,删除相关的yaml文件即可
二、HTTP方式
同通过设定kubelet的启动参数‘--manifest-url’,kubelet将会定期从该URL地址下载Pod的定义文件,并以yanl或者json文件的格式进行解析,然后创建pod,实现方式和配置文件的方式一样
边栏推荐
- Use filters to count URL request time
- Scrapy framework
- 韦东山第三期课程内容概要
- Teach you to make a custom form label by hand
- 【编程题】【Scratch二级】2019.03 绘制方形螺旋
- QT establish signal slots between different classes and transfer parameters
- What is load balancing? How does DNS achieve load balancing?
- 面试题详解:用Redis实现分布式锁的血泪史
- How to put recyclerview in nestedscrollview- How to put RecyclerView inside NestedScrollView?
- Play sonar
猜你喜欢
Qt不同类之间建立信号槽,并传递参数
从服务器到云托管,到底经历了什么?
[OBS] the official configuration is use_ GPU_ Priority effect is true
52歲的周鴻禕,還年輕嗎?
【GO记录】从零开始GO语言——用GO语言做一个示波器(一)GO语言基础
2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
Tencent security released the white paper on BOT Management | interpreting BOT attacks and exploring ways to protect
【编程题】【Scratch二级】2019.12 飞翔的小鸟
Development of a horse tourism website (realization of login, registration and exit function)
应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设
随机推荐
应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
他们齐聚 2022 ECUG Con,只为「中国技术力量」
Go learning notes (2) basic types and statements (1)
Installation and configuration of sublime Text3
【编程题】【Scratch二级】2019.09 绘制雪花图案
Detailed explanation of interview questions: the history of blood and tears in implementing distributed locks with redis
Is Zhou Hongyi, 52, still young?
Qt添加资源文件,为QAction添加图标,建立信号槽函数并实现
【编程题】【Scratch二级】2019.12 绘制十个正方形
Robomaster visual tutorial (1) camera
Common selectors are
35岁真就成了职业危机?不,我的技术在积累,我还越吃越香了
STM32F1与STM32CubeIDE编程实例-旋转编码器驱动
在网页中打开展示pdf文件
What if the testing process is not perfect and the development is not active?
Operating system principle --- summary of interview knowledge points
手写一个模拟的ReentrantLock
How can CSDN indent the first line of a paragraph by 2 characters?
Reading notes 004: Wang Yangming's quotations