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

k8s修改存储目录-介绍

k8s修改存储目录-介绍

文章目录

  • k8s修改存储目录-介绍
  • 总结:
  • 介绍
  • 指定 Docker 或 containerd 镜像和容器存储目录
    • Docker 存储目录
    • containerd 存储目录
  • 指定 Kubelet 的存储目录
  • 指定 Pod 和容器存储目录

docker 运行时,迁移目录实操:https://blog.csdn.net/admin_233/article/details/144930001

总结:

通过这些方法,你可以灵活地指定 Kubernetes 中容器、镜像以及 Pod 数据的存储目录。

  • Docker: 修改 /etc/docker/daemon.json 中的 data-root 参数来指定存储目录。
  • containerd: 修改 /etc/containerd/config.toml 中的 root 和 state 参数来指定存储目录。
  • Kubelet: 通过 --kubelet-root-dir 参数来指定存储路径。
  • Pod 数据存储: 使用 PersistentVolumes 或 emptyDir 来指定存储路径。

介绍

在 Kubernetes (K8s) 中,指定镜像、容器和 Pod 的存储目录通常涉及以下几个方面的配置:
容器运行时存储目录、Kubelet 存储目录以及 Docker 或 containerd 的存储目录。
以下是配置方法:

指定 Docker 或 containerd 镜像和容器存储目录

Kubernetes 使用容器运行时(如 Docker 或 containerd)来管理容器的生命周期。
默认情况下,Docker 和 containerd 将镜像和容器存储在特定的目录中。
你可以通过修改它们的配置来更改存储目录。

Docker 存储目录

Docker 默认将镜像和容器存储在 /var/lib/docker 目录下。要更改 Docker 的存储路径,可以修改 Docker 的配置文件。
修改 Docker 存储路径:
编辑 Docker 配置文件 /etc/docker/daemon.json,添加或修改 data-root 参数来指定存储目录:

{
  "data-root": "/your/custom/directory"
}

# 例如:
{
  "data-root": "/mnt/docker-data"
}

# 重启 Docker 服务:
systemctl restart docker # 修改配置后,重启 Docker 服务使配置生效

containerd 存储目录

如果你使用 containerd 作为容器运行时,容器和镜像的存储目录默认位于 /var/lib/containerd。要更改存储路径,需要修改 containerd 的配置文件。
修改 containerd 存储路径:
编辑 containerd 的配置文件(通常位于 /etc/containerd/config.toml),修改 root 和 state 配置项:

root = "/your/custom/root"
state = "/your/custom/state"

重启 containerd 服务:
systemctl restart containerd # 修改配置后,重启 containerd 服务

指定 Kubelet 的存储目录

Kubelet 存储 Pod 数据和容器运行时数据。默认情况下,Kubelet 使用 /var/lib/kubelet 目录。你可以通过修改 Kubelet 启动参数来更改其存储路径。
修改 Kubelet 配置文件:
编辑 Kubelet 的 systemd 配置文件(通常为 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf),并添加或修改 -
kubelet-root-dir 参数,指定存储目录:
或者在 /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

--kubelet-root-dir=/your/custom/kubelet-directory

# 重启 Kubelet 服务:
systemctl daemon-reload
systemctl restart kubelet # 修改配置后,重启 Kubelet 服务

指定 Pod 和容器存储目录

你还可以通过设置 Persistent Volumes (PV) 或使用 emptyDir 来控制 Pod 和容器的数据存储位置。以下是一些方法:

  • 使用 Persistent Volumes (PV)
    你可以创建 PersistentVolume (PV) 来指定存储卷的路径。PV 支持使用不同的存储后端(如本地存储、NFS、Ceph 等),你可以将存储路径指定为某个目录。

例如,创建一个本地存储的 PersistentVolume:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pv
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  storageClassName: manual
  local:
    path: /mnt/disks/vol1
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  • 使用 emptyDir
    如果你希望容器在 Pod 中使用临时存储,可以使用 emptyDir,它将为每个 Pod 创建一个临时存储目录,存储目录的位置会由 Kubelet 决定。emptyDir 默认使用 /var/lib/kubelet/pods 目录,但你也可以通过指定 Kubelet 的 --kubelet-root-dir 来更改存储位置。

例如,使用 emptyDir 配置存储目录:

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-emptydir
spec:
  containers:
    - name: busybox
      image: busybox
      volumeMounts:
        - mountPath: /data
          name: empty-dir
  volumes:
    - name: empty-dir
      emptyDir: {}

http://www.kler.cn/a/469462.html

相关文章:

  • Docker 安装Elasticsearch搜索引擎 搜索优化 词库挂载 拼音分词 插件安装
  • Linux 防火墙:守护系统安全的坚固防线
  • 今日头条ip属地根据什么显示?不准确怎么办
  • 渗透测试--Web基础漏洞利用技巧
  • 浅谈棋牌游戏开发流程七:反外挂与安全体系——守护游戏公平与玩家体验
  • C# 设计模式(行为型模式):解释器模式
  • ✅binlog、redolog和undolog区别?
  • 深入理解 WebSocket:实时通信的基础
  • 鸿蒙应用开发(2)
  • Java字符编码与正则表达式深度解析
  • Web Services 简介
  • Colyseus 与 HTTP API 的集成
  • 我的Java-Web进阶--SpringMVC
  • Unity加载CSV配置表
  • 前端同步发送HTTP请求 Ajax、Fetch和Axios实现HTTP同步请求
  • YOLOv5部署到web端(flask+js简单易懂)
  • 第27天:Web开发-PHP应用原生语法全局变量数据接受身份验证变量覆盖任意上传
  • 谷歌浏览器的安全检测工具使用指南
  • 开源复刻 | Matlab实现蚁狮优化算法ALO优化Transformer-LSTM实现负荷数据回归预测
  • Sql中WITH的作用