静态Pod
静态Pod
kubernetes 除了我们常用的普通Pod外,还有一种特殊的Pod,叫静态Pod。
概念
静态Pod是直接由节点kubelet进程来管理的,不能通过apiserver的master节点控制。无法与我们常用的控制器daemonset 和 deployment 联合使用,它由kubelet进程负责监控,当Pod崩溃时重启该Pod,kubelet也无法对静态Pod进行健康检查。静态Pod始终绑定在某一个kubelet节点上,并且始终运行在同一个节点。kubelet会自动为每一个静态Pod在kubernetes的apiserver上创建一个镜像Pod(Mirror Pod),因此我们可以通过apiserver看到静态Pod,但是不能通过apiserver控制。
创建静态Pod的方式有两种: 配置文件、HTTP
配置文件
以配置文件方式部署静态Pod,需要开启kubelet组件的 --pod-manifest-path=
如果在已经启动的kubelet组件上,没有添加 --pod-manifest-path=
比如--pod-manifest-path=/etc/kubernetes/manifests 而用kubeadm部署的集群,在这个目录下,可以看到kube-apiserver.yaml 、kube-controller-manager.yaml 、kube-scheduler.yaml三个静态Pod yaml文件
模板:
/etc/kubernetes/manifest/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
name: static-web
labels:
app: static
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
HTTP方式创建静态Pod
kubelet 周期地从–manifest-url=
参数指定的地址下载文件,并且把它翻译成 JSON/YAML 格式的 pod 定义。此后的操作方式与–pod-manifest-path=
相同,kubelet 会不时地重新下载该文件,当文件变化时对应地终止或启动静态 pod。
静态Pod的作用
由于静态Pod只受所在节点的kubelet控制,可以有效预防通过kubectl、或管理工具操作的误删除,可以用来部署核心组件应用。保障应用服务总是运行稳定数量和提供稳定服务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端