首页 > 其他分享 >Kubeadm 启动原理之静态 Pod 技术

Kubeadm 启动原理之静态 Pod 技术

时间:2025-01-19 22:13:33浏览次数:1  
标签:静态 manifests Kubelet Kubeadm kube pods Pod

Kubeadm 启动原理之静态 Pod 技术

1. 作用

静态 Pod 是一种特殊的 Kubernetes Pod 类型,允许你在不通过 kubectl 命令来创建 Pod 的情况下,通过直接将 Pod 资源清单放置在 Kubelet 可识别的目录中来创建 Pod。Kubelet 会定期检查该目录并自动管理这些 Pod。对于 kubeadm 部署方式来说,静态 Pod 技术尤为重要,它能够在集群中管理系统级别的 Pod(如 kube-apiserveretcdkube-controller-managerkube-scheduler 等)。

2. 查看 Kubelet 对应的静态 Pod 存储目录

Kubelet 会监控一个静态 Pod 目录,其中存放的是所有静态 Pod 的资源清单文件。你可以通过查看 Kubelet 的配置文件来确认这个目录的位置。例如,运行以下命令查看静态 Pod 路径:

grep staticPodPath /var/lib/kubelet/config.yaml 

输出会显示类似以下内容:

staticPodPath: /etc/kubernetes/manifests

这表示静态 Pod 的文件会存放在 /etc/kubernetes/manifests 目录中。

3. 查看 kubeadm 使用的静态 Pod 文件

Kubeadm 部署的 Kubernetes 集群会在 /etc/kubernetes/manifests 目录下存放相关的静态 Pod 文件。可以使用 kubectl get pods -n kube-system 来查看正在运行的 Pod,通常这些 Pod 由 kubeadm 创建并作为静态 Pod 启动。

示例输出:

kubectl get pods -n kube-system

你会看到类似的输出,其中包含如 etcdkube-apiserverkube-controller-managerkube-scheduler 等系统级别的 Pod。

查看静态 Pod 目录下的 YAML 文件:

ll /etc/kubernetes/manifests

这会列出所有与静态 Pod 相关的文件,例如:

-rw------- 1 root root 2280 Jul 29 16:38 etcd.yaml
-rw------- 1 root root 4025 Jul 29 16:38 kube-apiserver.yaml
-rw------- 1 root root 3546 Jul 29 16:38 kube-controller-manager.yaml
-rw------- 1 root root 1465 Jul 29 16:38 kube-scheduler.yaml

4. 自定义静态 Pod

你可以创建自己的静态 Pod 资源清单并将其放入静态 Pod 目录中。例如,以下是一个自定义的 Pod 配置文件:

apiVersion: v1
kind: Pod
metadata:
  name: xiuxian-v1
spec:
  nodeName: worker232
  containers:
  - image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
    name: xiuxian

将这个文件保存为 /etc/kubernetes/manifests/01-pods-xiuxian-single.yaml。Kubelet 会自动监控这个目录并启动 Pod。

cp /oldboyedu/manifests/pods/01-pods-xiuxian-single.yaml /etc/kubernetes/manifests/

通过 kubectl get pods -o wide 可以查看到新创建的 Pod。

5. 将静态 Pod 部署到多个节点

你可以将静态 Pod 配置文件复制到多个节点,从而在不同的节点上启动相同的静态 Pod。通过 scp 命令将 YAML 文件复制到不同节点的 /etc/kubernetes/manifests/ 目录:

scp /oldboyedu/manifests/pods/01-pods-xiuxian-single.yaml worker232:/etc/kubernetes/manifests/
scp /oldboyedu/manifests/pods/01-pods-xiuxian-single.yaml worker233:/etc/kubernetes/manifests/

然后通过 kubectl get pods -o wide 可以看到这些 Pod 被分配到不同的节点上。

6. 删除静态 Pod 资源

删除静态 Pod 资源文件时,Kubelet 会停止对应的 Pod。如果删除了 /etc/kubernetes/manifests 中的 YAML 文件,Kubelet 会检测到文件缺失并删除该 Pod。比如:

rm -f /etc/kubernetes/manifests/01-pods-xiuxian-single.yaml

删除后,运行 kubectl get pods -o wide 会显示 Pod 状态为 Completed 或不再存在。

7. Kubelet 启动和自启动

静态 Pod 需要通过 Kubelet 自动加载资源,因此在 Kubelet 配置中要确保其自启动并正确运行。否则,集群会因为静态 Pod 的丢失而出现故障。

例如,查看 kube-apiserver 是否启动失败,如果删除了某个关键静态 Pod 文件,集群将无法正常工作。

8. 修改 NodePort 端口范围

默认情况下,NodePort 的端口范围是 30000 到 32767。如果需要修改,可以在 kube-apiserver 的配置中添加 --service-node-port-range 参数,设置新的端口范围。例如,将端口范围改为 3000 到 50000:

containers:
  - command:
    - kube-apiserver
    - --service-node-port-range=3000-50000

修改后,重新加载 kube-apiserver 配置以使更改生效。

总结

通过静态 Pod 技术,Kubelet 可以方便地管理 Kubernetes 集群的基础设施组件(如 etcdkube-apiserver 等)。这种方式不仅简化了 Pod 的创建和管理,而且为 Kubernetes 集群的稳定性提供了保障。

标签:静态,manifests,Kubelet,Kubeadm,kube,pods,Pod
From: https://www.cnblogs.com/leojazz/p/18679897

相关文章

  • 解锁动静态库的神秘力量1:从代码片段到高效程序的蜕变
    本篇博主将带大家基于linux系统方面了解动静态库是什么,怎么创建以及如何使用等一些注意事项,希望能对大家在这方面的学习有所帮助。  欢迎拜访:羑悻的小杀马特.-CSDN博客本篇主题:秒懂百科之探究动静态库第一讲制作日期:2025.01.19隶属专栏:linux之旅目录一·库的含义及......
  • 【python】django-静态资源
    django-静态资源可以利用sphinx生成文档,通过django部署安装必要组件pipinstalldjango#创建django项目django-adminstartprojectmysite.配置就是将url和资源目录对应。├──docs│├──build││├──html│││└──index.......
  • 1. 数码管的静态动态控制
    数码管,我的超级LED![[Pastedimage20250116130225.png]]![[Pastedimage20250116134916.png]]![[Pastedimage20250116130421.png]]多个数码管共引脚连接节省接口在同一个时刻相同引脚的数码管只能显示相同内容动态数码管显示是根据人眼视觉残留与数码管余辉实现的图中C......
  • 使用jsdelivr加速hexo github pages博客的静态资源
    目录使用介绍LoadanyGitHubrelease,commit,orbranch:Loadexactversion:Useaversionrangeinsteadofanexactversion(onlyworkswithvalidsemverversions):使用hexo将博客部署在githubpages上面,有时候访问速度会比较慢,可以将图片等静态资源,使用jsdelivr进行cd......
  • 如何配置伪静态301跳转和自定义404错误页面?
    在网站开发和运维过程中,配置伪静态301跳转和自定义404错误页面是提升用户体验和搜索引擎优化(SEO)的重要步骤。以下是详细的配置方法:一、配置伪静态301跳转伪静态301跳转可以将旧的URL永久重定向到新的URL,确保用户和搜索引擎能够正确访问新页面,避免流量损失。具体步骤如下:选择......
  • caddy的用法 小型静态服务器
    caddy的用法小型静态服务器欢迎使用Caddy安装Caddy的各种方法快速入门使用API使用Caddyfile静态文件命令行......
  • Java反射、静态代理、动态代理
    概述反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。Spring、mybatis、动态代理、注解都是使用了反射。优点:可以让......
  • 深入理解Kubernetes Pod生命周期
    目录前言:1.Pod概述2.Pod生命周期的各个阶段2.1Pending(待定)2.2Running(运行中)2.3Succeeded(成功)2.4Failed(失败)2.5Unknown(未知)3.Pod状态的转变4.Pod的重启策略5.Pod的终止过程6.容器的管理与生命周期6.1容器的生命周期6.2健康检查与容器管理6.3......
  • 代码审计-PHP原生开发&SQL注入&数据库监控&正则搜索&文件定位&静态分析
    知识点1、PHP审计-原生态开发-SQL注入&数据库语句监控2、PHP审计-原生态开发-SQL注入&正则匹配搜索3、PHP审计-原生态开发-SQL注入&功能追踪代码审计分类:1、原生态开发-代码审计源码案例2、框架类开发-代码审计源码案例3、组件类开发-代码审计源码案例4、前端类开发-代码......
  • 网站内容更新后,首页静态页面无法自动刷新
    您好,关于您提到的网站内容更新后,首页静态页面无法自动刷新的问题,我们将为您提供详细的解决方案。静态页面生成是许多内容管理系统(CMS)中常见的功能,确保每次更新内容后,首页能够及时反映最新的信息。以下是针对您使用织梦CMS的具体指导。分析问题原因缓存机制:您的服务器或浏览......