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: {}
相关推荐
大G哥7 小时前
kafka使用以及基于zookeeper集群搭建集群环境
分布式·zookeeper·云原生·kafka
会飞的土拨鼠呀8 小时前
docker system df命令
运维·docker·容器
Dolphin_Home12 小时前
Docker搭建Skywalking
docker·容器·skywalking
阿里云云原生13 小时前
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
云原生
JermeryBesian16 小时前
Flink源码解析之:Flink on k8s 客户端提交任务源码分析
大数据·flink·kubernetes
州周16 小时前
Flink operator实现自动扩缩容
docker·flink·kubernetes
探索云原生17 小时前
使用 NodeLocalDNS 提升集群 DNS 性能和可靠性
linux·docker·云原生·kubernetes·go·dns
言之。19 小时前
【微服务】3、配置管理
微服务·云原生·架构
嘻嘻哈哈1719 小时前
Mac-docker配置
macos·docker·容器
搬码后生仔20 小时前
使用docker desktop提示 需要更新WSL
运维·docker·容器