首页 > 其他分享 >Kubernetes 迁移节点 Kubelet 数据存储目录

Kubernetes 迁移节点 Kubelet 数据存储目录

时间:2023-10-27 10:34:11浏览次数:44  
标签:存储 Kubernetes kubelet 节点 Kubelet 目录

1、概述

  默认Kubernetes节点Kubelet数据目录在/var/lib/kubelet,如果在部署前没有做好规划,其实默认就存储在系统盘/分区下了,这可能会引发一些问题:

  1. 磁盘空间限制: 系统根目录通常具有较小的磁盘空间,用于操作系统文件和应用程序。将Kubelet数据与操作系统混合存储可能导致磁盘空间不足,从而影响Kubelet的正常运行。

  2. 性能问题: 当Kubelet将容器镜像、容器数据等存储在与操作系统文件混合的磁盘上时,可能会导致I/O竞争和性能下降,因为Kubelet的操作可能与系统文件的读写竞争。

  3. 风险和安全性: 存储Kubelet数据在系统根目录中可能会增加潜在的风险和安全性问题。Kubelet数据的损坏或错误操作可能影响整个系统的稳定性和安全性。

  为解决这些问题,建议在部署Kubernetes节点之前仔细规划Kubelet数据的存储位置。通常,你可以选择将Kubelet数据目录放置在一个独立的分区或磁盘上,以确保足够的磁盘空间、提高性能,并增强系统的安全性。这需要在Kubelet的配置文件中设置--data-dir参数来指定所需的目录路径。对于已部署的Kubernetes节点建议迁移节点Kubelet数据存储目录,迁移前务必在非生产环境中测试和验证这些配置,以确保不会对Kubernetes集群的正常运行产生不利影响。本文将会详细记录Kubernetes迁移节点Kubelet数据存储目录步骤。

2、已部署 Kubernetes 节点迁移 Kubelet 数据存储目录步骤

2.1 封锁节点

给节点打上污点,并驱逐在该节点上运行的Pod。
kubectl taint nodes <node-name> specialnode=exclusivenode:NoSchedule

2.2 停止节点Kubelet和Docker服务

systemctl stop kubelet
systemctl stop docker

查看状态:

2.3 目录卸载  

umount /var/lib/kubelet/pods/*/volumes/kubernetes.io~*/*

2.4 数据备份

mkdir -p /data/k8s/
cp -r /var/lib/kubelet /data/k8s/kubelet-bak

2.5 修改节点Kubelet数据盘目录

在Kubelet的配置文件中设置--data-dir参数来指定所需的目录路径,centos7操作系统修改 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 配置文件。

Environment="KUBELET_EXTRA_ARGS=--root-dir=/data/k8s/kubelet --node-ip=xxx --hostname-override=master3 "

2.6 创建kubelet数据目录并重启节点Kubelet和Docker服务

mkdir -p /data/k8s/kubelet
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

2.7 检查kubelet数据目录是否修改成功

2.8 取消节点污点

kubectl taint nodes <node-name> specialnode-

3、总结

  迁移Kubernetes节点上的Kubelet数据存储目录的作用是提高系统的可维护性和性能。将Kubelet数据目录从默认位置(通常是系统根目录)迁移到独立的磁盘或分区上有助于分离系统文件和应用数据,降低磁盘空间限制,提高性能,增加系统安全性,简化备份和维护操作。这种迁移使得Kubelet数据的管理更加灵活,降低了风险,有助于确保Kubernetes集群的稳定性和可靠性。

  对于已部署的Kubernetes节点建议迁移节点Kubelet数据存储目录,迁移前务必在非生产环境中测试和验证这些配置,以确保不会对Kubernetes集群的正常运行产生不利影响。

标签:存储,Kubernetes,kubelet,节点,Kubelet,目录
From: https://www.cnblogs.com/zhangmingcheng/p/17791174.html

相关文章

  • 04_两两交换链表中的节点
    两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。【思路】/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*......
  • kubernetes+docker+kubeadm快速安装
    1.Kubernetes1.27发布2023年4月13日,Kubernetes1.27正式发布,这是2023年的第一个版本。这个版本包括60项增强功能。其中18项增强功能进入Alpha、29项进入Beta,还有13项升级为Stable稳定版。2.环境准备2.1主机操作系统操作系统及版本备注CentOS7.9......
  • 在不知带头节点地址的情况下删除和插入一个p指针指向的节点总结
    在不知带头节点地址的情况下删除和插入一个p指针指向的节点总结(p指向的不是第一个,也不是最后一个)A->B->C*p->B插入(在p结点之前插入q)解析:直接往p前插入q,由于没有头节点,不能遍历到p的位置,所以向p的后面插入q,在交换p、q的值q->next=p->next;p->next=q;swap(&p......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    基于主机安装或基于Kubernetes安装的Rainbond集群(均使用默认参数安装),默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    基于主机安装或基于Kubernetes安装的Rainbond集群(均使用默认参数安装),默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等......
  • 从Docker到Kubernetes
    1简介1.1什么是容器传统的虚拟化技术,比如VMWare,目标是创建完整的虚拟机。为了运行应用,除了部署应用本身及其依赖(通常几十MB),还得安装整个操作系统(几十GB)。如图所示,由于所有的容器共享同一个HostOS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整个操作系......
  • Kubernetes 100个常用命令
    转载https://mp.weixin.qq.com/s/pWj-ni5fuHLaK2AR-4gqqQ100个Kubectl命令,这些命令对于诊断Kubernetes集群中的问题非常有用。这些问题包括但不限于:• 集群信息• Pod诊断• 服务诊断• 部署诊断• 网络诊断• 持久卷和持久卷声明诊断• 资源......
  • [ERROR KubeletVersion]: the kubelet version is higher than the control plane ver
     kubeadm、kubelet、kubectl一起安装时,由于疏忽写成kubelet-1.27.3.0,结果版本变成kubelet-1.28了,导致报标题中的错误安装指定版本yum-yinstallkubeadm-1.27.3-0kubelet-1.27.3-0kubectl-1.27.3-0 原因:Kubelet和Kubeadm版本不一致导致查看kubelet和kube......
  • Kubernetes:kube-apiserver 之启动流程(一)
    0.前言前面两篇文章Kubernetes:kube-apiserver之scheme(一)和Kubernetes:kube-apiserver之scheme(二)重点介绍了kube-apiserver中的资源注册表scheme。这里进入正题,开始介绍kube-apiserver的核心实现。1.kube-apiserver启动流程kube-apiserver使用Cobra作为......
  • Kubernetes常见面试题
    说明:以下问题只做简单总结,详细内容请参考链接:https://github.com/bregman-arie/devops-exercises/blob/master/topics/kubernetes/README.md#kubernetes-1011、k8s是什么,为什么企业选择使用它     k8s是一个开源应用,给用户提供了管理、部署、扩展容器的能力。将容器运......