首页 > 其他分享 >修改k8s的数据目录

修改k8s的数据目录

时间:2023-07-23 13:11:26浏览次数:32  
标签:lib kubelet etc 修改 etcd k8s data 目录

修改kubelet工作目录

1、创建kubelet的数据目录

mkdir -p /data/k8s/kubelet

2、根据 /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf 加载 /etc/sysconfig/kubelet 文件

vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--root-dir=/data/k8s/kubelet"

#命令
sed -i 's#KUBELET_EXTRA_ARGS=#KUBELET_EXTRA_ARGS="--root-dir=/data/k8s/kubelet"#g' /etc/sysconfig/kubelet
cat  /etc/sysconfig/kubelet

3、将 /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf 文件中

所有 /var/lib/kubelet 改为 /data/k8s/kubelet

Environment="KUBELET_CONFIG_ARGS=--config=/data/k8s/kubelet/config.yaml"
EnvironmentFile=-/data/k8s/kubelet/kubeadm-flags.env

# 命令
sed -i 's#/var/lib/kubelet#/data/k8s/kubelet#g' /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
cat  /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf|grep /data/k8s/kubelet

4、修改 /etc/kubernetes/kubelet.conf 的证书路径

client-certificate: /data/k8s/kubelet/pki/kubelet-client-current.pem
client-key: /data/k8s/kubelet/pki/kubelet-client-current.pem

#sed -i 's#/var/lib/kubelet#/data/k8s/kubelet#g' /etc/kubernetes/kubelet.conf
#cat /etc/kubernetes/kubelet.conf|grep  /data/k8s/kubelet

5、拷贝 /var/lib/kubelet 的数据到新的kubelet数据目录 /data/k8s/kubelet

cp -r /var/lib/kubelet/* /data/k8s/kubelet/

6、不能删除 /var/lib/kubelet

7、重启kubelet

systemctl daemon-reload;
systemctl restart kubelet;

8、如果发现没有修改重启机器,或者查看拷贝文件是否正确

reboot
ls /data/k8s/kubelet/
config.yaml  cpu_manager_state  device-plugins  kubeadm-flags.env  kubelet  pki  plugins  plugins_registry  pod-resources  pods

查看目录

#修改前查看
df -h|grep pods
tmpfs                    912M   12K  912M   1% /var/lib/kubelet/pods/c9665f4d-d5a6-4b22-be88-85259eefb32d/volumes/kubernetes.io~secret/kube-proxy-token-q7hqk

#修改后查看
df -h|grep pods
tmpfs                    912M   12K  912M   1% /data/k8s/kubelet/pods/608a960f-1523-4975-a90d-4235d763d5fd/volumes/kubernetes.io~secret/kube-proxy-token-q7hqk

修改etcd工作目录

创建目录

#创建etcd的数据目录
mkdir -p /data/k8s/etcd

初始化前

初始化前,只需要在初始化配置文件中添加

......
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    # 将目录改成新的目录
    dataDir: /data/k8s/etcd
imageRepository: registry.aliyuncs.com/google_containers
....

已经部署后

已经部署后的etcd,修改配置文件后,etcd会自动重启,并且导致对应机器的kubectl不可用

所以请一台一台修改,etcd leader节点放到最后操作,并且确保其他机器的kubectl可用

#修改/etc/kubernetes/manifests/etcd.yaml的etcd-data的hostpath
$vim /etc/kubernetes/manifests/etcd.yaml
volumes:
  - hostPath:
      path: /etc/kubernetes/pki/etcd
      type: DirectoryOrCreate
    name: etcd-certs
  - hostPath:
      path: /data/k8s/etcd
      type: DirectoryOrCreate
    name: etcd-data

修改完成后,etcd会自动重启,使用其他master查看etcd状态。

这里etcd起不来是正常的,需要执行一下几步:

  1. 删除etcd的pod,删除后pod会从列表中消失,这是正常现象
  2. 需把etcd的要把/var/lib/etcd/* 拷贝到更改后的目录
  3. 重启物理机的kubelet
  4. 查看状态

以上4步做完之后,etcd应该已经起来了。

注意,这里一定要先修改配置文件,在拷贝etcd数据

使用 kubectl exec 到一个etcd节点中, 查看etcd状态,一定要等节点状态全部健康后,在继续操作其他节点。

删除etcd的pod,删除后pod会从列表中消失,这是正常现象

kubectl get pods -A
No resources found

#把etcd的数据/var/lib/etcd/* 拷贝到更改后的目录
\cp -r /var/lib/etcd/* /data/k8s/etcd

#重启kubelet(最好重启主机)
systemctl daemon-reload;
systemctl restart kubelet;
#reboot

查看etc状态

kubectl get pods -A|grep etcd
kube-system   etcd-k8s-master                      1/1     Running   1          3m37s

标签:lib,kubelet,etc,修改,etcd,k8s,data,目录
From: https://www.cnblogs.com/guangdelw/p/17574900.html

相关文章

  • npm、pnpm、yarn 清理缓存,更改缓存目录
     //清理缓存$yarncacheclean$npmcacheclean-f$pnpmstoreprune//设置新的缓存地址$npmconfigsetglobal-folder"E:/npm/global"$pnpmconfigsetglobal-folder"E:/yarn/global"$pnpmconfigset"E:/pnpm/global"......
  • idea打包springboot项目,打包成war包,如何不把lib目录或指定jar打进去?
    1、在pom.xml文件中添加如下配置:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration>......
  • Linux目录和文件管理
    目录和文件管理树型目录结构,根目录“/”,常见子目录“/root管理员家目录/bin命令/boot开机启动文件/dev硬件文件/etc默认配置文件/home普通用户家目录的上级目录/var/usr/sbin”1、常见目录一级目录功能(作用)/bin/存放系统命令,普通用户和root都可以执行。放在/......
  • 修改SSH端口方法
    编辑sshd_confignano/etc/ssh/sshd_config例如:添加33端口,注释掉22端口Port33退出保存crl+x退出y确定保存回车/重启reboot查看变更状态systemctlstatussshd新端口使用后,发现注释后依然可以连接!直接删掉port22......
  • linux目录和文件管理
    一.目录层次1)一级目录/bin  存放系统命令/boot系统启动目录/dev 设备文件的保存位置/etc  配置文件保存位置 /home放置用户个性配置/mnt挂载目录/opt第三方安装的软件保存位置。/rootroot的主目录/sbin保存与系统环境设置相关的命令/tmp临时目录2)显示......
  • k8s基础之概念讲解
    目录1Kubernetes1.1简介1.2特性1.3架构1.4组件1.4.1MasterNode1.4.2WorkNode1.4.3service1.4.4Namespace1.4.5Volume1.5Pod控制器1.5.1pod1.5.2Pod控制器1Kubernetes1.1简介Kubernetes是一个全新的基于容器技术的分布式架构解决方案,是Google开源的一个容器......
  • 如何动态修改 spring aop 切面信息?让自动日志输出框架更好用
    业务背景很久以前开源了一款auto-log自动日志打印框架。其中对于spring项目,默认实现了基于aop切面的日志输出。但是发现一个问题,如果切面定义为全切范围过大,于是v0.2版本就是基于注解@AutoLog实现的。只有指定注解的类或者方法才会生效,但是这样使用起来很不方便。......
  • python获取当前项目根目录
    defget_item_path(item_name):""":paramitem_name:项目名称,如pythonProject:return:项目根目录"""#获取当前所在文件的路径cur_path=os.path.abspath(os.path.dirname(__file__))#获取根目录returncur_path[:cur_path.......
  • Centos 7 单用户模式修改密码/配置
    1、启动系统,启动项界面显示时,按“↑↓”键停留在此界面,按下“e”键进入编辑模式2、利用“↑↓”键找到“linux16”开头的那段,去掉“rhgb”和“quiet”参数,并在“UTF-8”之后添加“init=/bin/sh”3、修改后,按“Ctrl+X”重启系统4、修改根目录的修改权限,并重新挂载(默认只读,不......
  • redis主从模式修改密码
    Redis主从模式修改密码概述在Redis主从模式中,需要修改密码时,需要在主节点上修改密码,并且同步到所有的从节点上。下面将详细介绍如何实现这个过程。修改密码流程下面是修改Redis主从模式密码的流程:步骤描述步骤1连接到主节点步骤2修改主节点密码步骤3获取从......