当前位置: 首页 > 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.xdnf.cn/news/1348453.html

相关文章:

  • RCE的CTF题目环境和做题复现第4集
  • Unreal Engine UActorComponent
  • base64认识实际使用
  • #Datawhale 组队学习#8月-工作流自动化n8n入门-2
  • LLM实践系列:利用LLM重构数据科学流程01
  • 简单聊聊多模态大语言模型MLLM
  • LeetCode100 -- Day4
  • RCE的CTF题目环境和做题复现第3集
  • RoboTwin--CVPR2025--港大--2025.4.17--开源
  • 大模型微调训练资源占用查询:Windows 10 查看 NVIDIA 显卡GPU状态教程(替代 Ubuntu 下 watch nvidia-smi)
  • Python精确小数计算完全指南:从基础到金融工程实践
  • 二、高可用架构(Nginx + Keepalived + MySQL 主从)
  • StarRocks启动失败——修复全流程
  • AI生成技术报告:GaussDB与openGauss的HTAP功能全面对比
  • 【COMSOL】Comsol学习案例时的心得记录分享(三)
  • 期货Level2五档订单簿0.25秒级高频分时及日频历史行情数据使用指南
  • 刷题日记0822
  • 实现自己的AI视频监控系统-第一章-视频拉流与解码4(重点)
  • uboot添加ping命令的响应处理
  • 音视频处理工作室:实时通信的媒体层设计
  • Paddle3D-PETRv1 精度测试与推理实践指南
  • 容器安全实践(一):概念篇 - 从“想当然”到“真相”
  • 车载诊断架构 --- EOL引起关于DTC检测开始条件的思考
  • Mongodb操作指南
  • 大麦盒子DM4036-精简固件包及教程
  • 2025.8.22周五 在职老D渗透日记day24:burp+mumu抓包 安卓7.0以上证书配置
  • 电脑端完全免费的动态壁纸和屏保软件(真正免费、无广告、无会员)
  • 二叉搜索树(BST)、AVL树、红黑树
  • 爬虫基础学习-链接协议分析,熟悉相关函数
  • 基于抗辐照性能的ASP4644S电源芯片特性分析与多领域应用验证