k8s实验-存储配置

网友投稿 261 2022-09-08

k8s实验-存储配置

使用emptyDir

1 创建实验目录

mkdir ~/huawei_k8s/labfile/storagefile;cd ~/huawei_k8s/labfile/storagefile

2 使用emptyDir的pod的yaml文件

#vim empty-pod.yamlapiVersion: v1kind: Podmetadata: name: emspec: containers: - image: ubuntu name: test-container volumeMounts: - mountPath: /cache name: cache-volume args: - /bin/sh - -c - sleep 30000 volumes: - name: cache-volume emptyDir: {}

3 创建pod

4 进入容器,在emptyDir挂载的目录中创建一个文件

kubectl exec em -it /bin/shcd /cachecat > hello.file <

5 查看pod所在的节点,在node2上

kubectl get pod -o wide

6 登录node2节点,查看运行的容器

docker ps

7 在其中找到之前创建的pod主容器,查看信息

8 进入该文件中显示的目录

ls /var/lib/kubelet/pods/${contain_id}/volumes/kubernetes.io~empty-dir/cache-volume

使用emptyDir的容器限制功能

1 创建带容量限制的emptyDir pod yaml

#vim limit-pod.yamlapiVersion: v1kind: Podmetadata: name: em2spec: containers: - image: ubuntu name: test-container2 volumeMounts: - mountPath: /cache name: cache-volume args: - /bin/sh - -c - sleep 30000 volumes: - name: cache-volume emptyDir: sizeLimit: 1Gi

2 创建pod

3 进入pod,在/cache文件夹内创建一个2G的文件

kubectl exec -it em2 /bin/shcd /cahedd if=/dev/zero of=/cache/test2g bs=1M count=2048

4 查看容器状态,进入evicted状态,说明限制生效

kubectl get pod

hostPath

1 节点上创建一个问价夹,用于挂载给pod

mkdir /testdir

2 创建hostPath的pod的yaml,挂载给pod的目录地址为主机存在的文件夹

#vim hostPath-pod.yamlapiVersion: v1kind: Podmetadata: name: hppodspec: containers: - image: ubuntu name: hp-container volumeMounts: - mountPath: /hp-dir name: hp-volume args: - /bin/sh - -c - sleep 30000 volumes: - name: hp-volume hostPath: path: /testdir type: Directory

4 进入pod,在挂载的hostPath的文件及内写入一个文件

kubectl exec -it hppod /bin/shcd /hp-dirlscat >hello2 <

5 进入对应的节点的对应目录,查看该文件是否存在

PV和PVC

1 搭建nfs服务,配置如下

#执行以下命令安装 nfs 服务器所需的软件包yum install -y rpcbind nfs-utils #执行命令 vim /etc/exports,创建 exports 文件,文件内容如下:/root/nfs_root/ *(insecure,rw,sync,no_root_squash) #执行以下命令,启动 nfs 服务# 创建共享目录,如果要使用自己的目录,请替换本文档中所有的 /root/nfs_root/mkdir /root/nfs_rootsystemctl enable rpcbindsystemctl enable nfs-serversystemctl start rpcbindsystemctl start nfs-serverexportfs -r#检查配置是否生效exportfs# 输出结果如下所示/root/nfs_root /root/nfs_root#NFS服务器搭建完毕后,要确认防火墙是否关闭,或者是打开了TCP2049.TCP111 端口#检查挂载点showmount -e localhost

2 编写pv的yaml文件

#vim pv1.yamlapiVersion: v1kind: PersistentVolumemetadata: name: mypvspec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle nfs: path: /root/nfs_root server: 192.168.85.6

3  创建并查看pv

kubectl apply -f pv1.yamlkubectl get pv

4 创建PVC的yaml文件,配置的时候指定pv的名称

#vim pvc1.yamlmetadata: name: mypvcspec: accessModes: - ReadWriteOnce volumeName: mypv resources: requests: storage: 1Gi

5 创建PVC

6 查看PV和PVC的状态,可以看到PV的状态由Available变为Bound,而PVC的状态也是Bound

kubectl get pv,pvc

7 创建pod,使用PVC

#vim testpod.yamlapiVersion: v1kind: Podmetadata: labels: test: pvctest name: pvcpodspec: containers: - name: busybox args: - /bin/sh - -c - sleep 30000 image: busybox volumeMounts: - mountPath: /pvcdir name: pvc-volume volumes: - name: pvc-volume persistentVolumeClaim: claimName: mypvc

8 创建pod,并进入pod写入文件

kubectl exec -it pvcpod /bin/bashcd /pvcdirlstouch helloexit

9 检查nfs目录查看似乎存在hello文件

10 删除pod和pvc,并等待系统自动回收完成

kubectl delete pod pvcpodkubectl delete pvc mypvc && kubectl get pod -w

11 查看pv状态,再次变成availael的可用状态

使用StroageClass方式关联PV和PVC

1 创建PV的YAML文件

#vim pv-sc.yamlapiVersion: v1kind: PersistentVolumemetadata: name: pv-scspec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle storageClassName: nfs nfs: path: /root/nfs_root server: 192.168.85.6

2 创建pvc的yaml文件

#vim pvc-sc.yamlapiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-scspec: accessModes: - ReadWriteOnce storageClassName: nfs resources: requests: storage: 1Gi

3 创建pv,pvc

4查看pv和pvc的绑定

在没有pod挂载storageclass类型的pvc之前,处于pending状态

挂载之后,处于bound状态

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IP从何而来?中国神话故事成营销沃土!
下一篇:grafana可视化配置图表histogram
相关文章

 发表评论

暂时没有评论,来抢沙发吧~