k8s修改存储目录-介绍

k8s修改存储目录-介绍

文章目录

  • k8s修改存储目录-介绍
  • 总结:
  • 介绍
  • [指定 Docker 或 containerd 镜像和容器存储目录](#指定 Docker 或 containerd 镜像和容器存储目录)
    • [Docker 存储目录](#Docker 存储目录)
    • [containerd 存储目录](#containerd 存储目录)
  • [指定 Kubelet 的存储目录](#指定 Kubelet 的存储目录)
  • [指定 Pod 和容器存储目录](#指定 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 参数来指定存储目录:

bash 复制代码
{
  "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 配置项:

bash 复制代码
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

bash 复制代码
--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:

yaml 复制代码
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 配置存储目录:

yaml 复制代码
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: {}
相关推荐
wb1891 分钟前
docker-ce容器技术重习
运维·笔记·docker·容器·云计算
刘某的Cloud15 分钟前
svc中外部流量访问限制
linux·运维·docker·kubernetes·service
阿沁QWQ25 分钟前
Docker镜像制作实战
运维·docker·容器
浮尘笔记36 分钟前
Docker中安装Kafka以及基本配置和用法、踩坑记录
后端·docker·容器·kafka·php
键盘鼓手苏苏39 分钟前
Kubernetes与边缘AI最佳实践
云原生·kubernetes·k8
成为你的宁宁1 小时前
【docker镜像加速器配置】
运维·docker·容器
风向决定发型丶1 小时前
K8S中Pod驱逐介绍
docker·容器·kubernetes
海鸥811 小时前
Kubernetes 集群中缺少 kagent.dev/v1alpha2
云原生·容器·kubernetes
qq_396153452 小时前
docker ddns-go 忘记密码
docker·容器·golang
Zhu7582 小时前
【数据迁移】k8s平台本地数据迁移整改
云原生·容器·kubernetes