当前位置: 首页 > news >正文

云原生俱乐部-k8s知识点归纳(7)

计划是再更两篇就完结k8s系列,其中CRD客户端资源定义会单独列一篇,或许会讲一讲operator。不过当前的k8s并没有细讲operator,因为涉及到很多的go语言内容,以及相关的package的方法。

这一部分主要就是讲一讲k8s如何进行监控和升级,以及ETCD备份与恢复,并会讲到Kustomize管理。前两部分的内容都是来维护k8s系统本身的,kustomize管理则是能够更好的管理资源,包括打补丁、定制化等内容。


监控与升级

[1]驱逐主节点的pod

先使用kubectl cordon cka-master用来禁止调度,`cordon`是​临时操作​,通过 API 修改节点状态,而  `NoSchedule`是​持久化污点​。`cordon`​不依赖 Pod 的容忍配置​,`NoSchedule`​需要 Pod 无匹配容忍才会生效​。

使用kubectl drain cka-master --delete-emptydir-data --ignore-daemonsets来驱逐除了daemonset部署的pod,并且删除使用emptydor临时挂载的目录。 `drain`是​命令式操作​,立即触发驱逐,绕过 Pod 的容忍配置。`NoExecute`是​声明式机制​,依赖控制器异步处理,并且​尊重 Pod 的容忍规则​。

[2]升级控制平面

使用kubeadm upgrade plan可以查看可以升级的版本,使用kubeadm upgrade apply v1.30.3 --etcd-upgrade=false可以先将kubeadm 升级到1.30.3,然后禁止etcd升级(升级kube-schedule、kube-apiserver、kube-controller-manage)。

主节点要升级kubectl,使用apt install kubectl=1.30.3-1.1 -y。至于所有节点都需要升级kubelet,如果不行的话,单独升级主机点的kubelet也行。使用apt install kubelet=1.30.3-1.1 -y,保证主节点的Kubelet的版本高于工作节点。

[3]恢复主节点的调度能力

先重新加载一下配置文件,使用systemctl daemon-reload,再使用systemctl restart kubelet.service来重启服务。使用kubectl uncordon cka-master恢复主节点的调度能力,这样被kubectl drain强制驱逐的pod又会重新调度到master节点上。

ETCD备份与恢复

需要单独安装etcd客户端,使用apt install etcd-client -y安装。我们通过etcd快照来备份数据库数据,但是ETCD 快照备份范围​仅包含静态 Pod 的状态,但不包含其本地 YAML 文件。因此我们要单独备份静态节点的yaml文件,然后将备份yaml文件放在指定的配置目录即可。

Kustomize管理

kustomization.yaml 文件是 Kustomize 的核心配置文件,定义了如何生成最终的 Kubernetes。在`base/kustomization.yaml`定义​基础资源的集合(指定资源路径)​,​`overlay/kustomization.yaml`​则定义​如何修改基础资源​,如补丁、命名空间、标签等。

在base目录下的kustomization.yaml文件中通过resources字段在定义 Kubernetes 资源列表,如deployment、service,secrets,configMaps等。overlay目录下的kustomization.yaml文件以base目录作为基础的目录(通过resources字段指定路径),可以包含额外的定制(如patches补丁)。

kustomize.yaml文件可以使用 configMapGenerator 和 secretGenerator(两目录中都能定义),它们可以根据文件或字面值生成 ConfigMap 或 Secret。patchesStrategicMerge 补丁方式使用 YAML 文件来定义,它允许通过metadata.name指定修改对应base中的资源。

http://www.dtcms.com/a/344343.html

相关文章:

  • 手机、电脑屏幕的显示坏点检测和成像原理
  • 解决方案:新时代电力的安全命题
  • 发版混乱怎么规范
  • Linux学习-通信(网络通信)
  • 三,设计模式-抽象工厂模式
  • Ubuntu/Debian修改网卡名字enP3p49s0为eth0
  • JUC之CompletionService
  • 【基础算法】离散化
  • AI-调查研究-58-机器人 从工厂到家庭,机器人正悄悄改变世界的每个角落
  • RCE的CTF题目环境和做题复现第3集
  • 改善收敛性有什么作用?收敛代表什么
  • chrome driver在Mac上运行时提示安全问题怎么解决
  • 一键部署Jaeger:Docker全攻略
  • Simulink不连续模块库(Hit Crossing/PWM/Rate Limiter/Rate Limiter Dynamic)
  • @SerializedName注解详解
  • 【51单片机数码管字符左移】2022-11-11
  • TapData vs Kafka ETL Pipeline:竞争?共存?——企业实时数据策略的正确打开方式
  • Kafka中zk的作用是什么
  • 【ECharts】2. ECharts 性能优化
  • 【在ubuntu下使用vscode打开c++的make项目及编译调试】
  • [antv-x6] 博客案例
  • 英伟达新架构9B模型引领革命,谷歌/阿里/微美全息AI多维布局锻造底座竞争力
  • ROS2下YOLO+Moveit+PCL机械臂自主避障抓取方案
  • Retrieval-Augmented Generation(RAG)
  • 《CF1245D Shichikuji and Power Grid》
  • 雷达图教程:何时适用,何时无效,以及如何正确使用
  • 小智ai+mcp+n8n的智能组合
  • Matplotlib 可视化大师系列(三):plt.bar() 与 plt.barh() - 清晰对比的柱状图
  • 计算机组成原理(10) - 浮点数的表示
  • 全栈开发:从LAMP到云原生的技术革命