0
点赞
收藏
分享

微信扫一扫

k8s-存储(volumes)

盖码范 2022-03-14 阅读 88

使用存储卷的步骤:

1 定义pod的volume,这个volume要指明关联到那个存储。

2 容器中要使用的volume mounts 挂载存储。

临时存储

使用临时存储,在pod生命周期结束后,数据就会消失。

kubectl explain pod.spec.volumes

emptyDir

可以通过查看官方样例。

样例:

apiVersion: v1
kind: Pod
metadata:
  name: test-tmpdir
spec:
  containers:
  - name: test-tmpdir
    image: nginx
    volumeMounts:
    # 挂载存储
    - mountPath: /tmpdir
      name: test-vol
  # 指定需要关联的存储
  volumes:
  - name: test-vol
    emptyDir: {}

查看pod的uid

kubectl get pod test-tmpdir -o yaml| grep uid

根据uid查看pod所在node节点的文件目录

 

 持久化存储

hostpath

是指Pod挂载在宿主机的目录或文件。

 样例:

apiVersion: v1
kind: Pod
metadata:
  name: test-host
spec:
  containers:
  - name: test-host
    image: nginx
    volumeMounts:
    - mountPath: /tmpdir
      name: test-vol1
  volumes:
  - name: test-vol1
    hostPath:
      path: /tmpdir
      # 不存在创建文件夹
      type: DirectoryOrCreate

pod删除后node节点文件内容不会被删除

nfs:

NFS(Network File System),它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件.

# 安装NFS服务(在所有K8S的节点都需要安装)
yum install -y nfs-utils
# 创建共享目录
mkdir -p /opt/nfs
# 编写NFS的共享配置
vi /etc/exports
# 内容如下:
/opt/nfs/jenkins  *(rw,no_root_squash)    *代表对所有IP都开放此目录,rw是读写
# 启动服务
ystemctl enable nfs  开机启动
systemctl start nfs   启动

# 更新nfs配置
exportfs -arv

# 查看NFS共享目录
showmount -e nfsServerIP

样例:

 

apiVersion: v1
kind: Pod
metadata:
  name: test-nfs
spec:
  containers:
  - name: test-nfs
    image: nginx
    volumeMounts:
    - mountPath: /tmpdir
      name: test-vol2
  volumes:
  - name: test-vol2
    nfs:
      # 填写nfs信息
      path: /opt/nfs
      server: 192.168.241.191

pv和pvc

举报

相关推荐

K8s-存储

k8s-存储卷

k8s-部署

k8s-权限管理

K8s-安全机制

k8s-安装dashboard

K8s-网络原理-下篇

0 条评论