当前位置:网站首页>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,实现方式和配置文件的方式一样
边栏推荐
- 测试流程不完善,又遇到不积极的开发怎么办?
- 哪个券商公司开户佣金低又安全,又靠谱
- Is 35 really a career crisis? No, my skills are accumulating, and the more I eat, the better
- An error is reported during the process of setting up ADG. Rman-03009 ora-03113
- Handwriting a simulated reentrantlock
- paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务
- 韦东山第二期课程内容概要
- ReentrantLock 公平锁源码 第0篇
- 腾讯安全发布《BOT管理白皮书》|解读BOT攻击,探索防护之道
- Database query - what is the highest data?
猜你喜欢

3年经验,面试测试岗20K都拿不到了吗?这么坑?

Development of a horse tourism website (optimization of servlet)

1293_FreeRTOS中xTaskResumeAll()接口的实现分析

大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?

Single machine high concurrency model design

QT adds resource files, adds icons for qaction, establishes signal slot functions, and implements

52歲的周鴻禕,還年輕嗎?

【編程題】【Scratch二級】2019.12 飛翔的小鳥
![[programming problem] [scratch Level 2] 2019.09 make bat Challenge Game](/img/81/c84432a7d7c2fe8ef377d8c13991d6.png)
[programming problem] [scratch Level 2] 2019.09 make bat Challenge Game

Development of a horse tourism website (realization of login, registration and exit function)
随机推荐
Qt添加资源文件,为QAction添加图标,建立信号槽函数并实现
Daily question brushing record (16)
C language 001: download, install, create the first C project and execute the first C language program of CodeBlocks
Prompt configure: error: required tool not found: libtool solution when configuring and installing crosstool ng tool
如果在构造函数中抛出异常,最好的做法是防止内存泄漏?
【转载】解决conda安装pytorch过慢的问题
1293_FreeRTOS中xTaskResumeAll()接口的实现分析
Basic principle and usage of dynamic library, -fpic option context
new和delete的底层原理以及模板
CoinDesk评波场去中心化进程:让人们看到互联网的未来
韦东山第二期课程内容概要
Vscode software
玩转Sonar
The standby database has been delayed. Check that the MRP is wait_ for_ Log, apply after restarting MRP_ Log but wait again later_ for_ log
A brief history of information by James Gleick
深潜Kotlin协程(二十三 完结篇):SharedFlow 和 StateFlow
测试流程不完善,又遇到不积极的开发怎么办?
商品的设计等整个生命周期,都可以将其纳入到产业互联网的范畴内
大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?
Coindesk comments on the decentralization process of the wave field: let people see the future of the Internet