k8s实验-存储配置
  TEZNKK3IfmPf 2023年11月14日 19 0
k8s

1 创建实验目录

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

2 使用emptyDir的pod的yaml文件

#vim empty-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: em
spec:
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/sh
cd /cache
cat > hello.file <<EOF
hello
world
EOF
cat hello.file
exit

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

kubectl get pod -o wide

k8s实验-存储配置

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

docker ps

k8s实验-存储配置

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

k8s实验-存储配置

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

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

k8s实验-存储配置

使用emptyDir的容器限制功能

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

#vim limit-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: em2
spec:
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/sh
cd /cahe
dd if=/dev/zero of=/cache/test2g bs=1M count=2048

k8s实验-存储配置

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

kubectl get pod

k8s实验-存储配置

k8s实验-存储配置


hostPath

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

mkdir /testdir

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

 

#vim hostPath-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: hppod
spec:
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/sh
cd /hp-dir
ls
cat >hello2 <<EOF
hello
again
EOF
exit

k8s实验-存储配置

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

k8s实验-存储配置


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_root
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
exportfs -r
#检查配置是否生效
exportfs
# 输出结果如下所示
/root/nfs_root /root/nfs_root
#NFS服务器搭建完毕后,要确认防火墙是否关闭,或者是打开了TCP2049.TCP111 端口
#检查挂载点
showmount -e localhost

k8s实验-存储配置

2 编写pv的yaml文件

#vim pv1.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /root/nfs_root
server: 192.168.85.6

3  创建并查看pv

kubectl apply -f pv1.yaml
kubectl get pv

k8s实验-存储配置

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

#vim pvc1.yaml
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
volumeName: mypv
resources:
requests:
storage: 1Gi

5 创建PVC

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

kubectl get pv,pvc

k8s实验-存储配置

7 创建pod,使用PVC

#vim testpod.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
test: pvctest
name: pvcpod
spec:
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写入文件

k8s实验-存储配置

kubectl exec -it pvcpod /bin/bash
cd /pvcdir
ls
touch hello
exit

k8s实验-存储配置

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

k8s实验-存储配置

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

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

k8s实验-存储配置

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

k8s实验-存储配置

使用StroageClass方式关联PV和PVC

1 创建PV的YAML文件

#vim pv-sc.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-sc
spec:
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.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-sc
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs
resources:
requests:
storage: 1Gi

3 创建pv,pvc

4查看pv和pvc的绑定

k8s实验-存储配置

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

k8s实验-存储配置

挂载之后,处于bound状态

k8s实验-存储配置

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月15日   32   0   0 k8s
  TEZNKK3IfmPf   2023年11月15日   21   0   0 k8s
TEZNKK3IfmPf