前面那篇是知识,自己动手了才是留下来的才是经验。
一般的教程会教你从第一步到第一百步怎么走,而优秀的教程则会教你从第一步到第一百步为什么要那么走,以及有哪些坑。当然,差劲点的直接半路夭折了。显然,本篇是一般的教程。跟着做最终是能动,但是中间那些坑坑洼洼的只有从白板做起的人知道。
看到这段话的小伙伴,可以现在退出去,自己从白板做一份,走不通了,在来比对一下咱的差别,再走过,就是你的经验了。
1、准备:一个挂载的本地目录并且目录下有个文件
mkdir /root/data
echo 'Hello from Kubernetes storage' > /mnt/data/index.html
2、创建 一个hostpath类型的PersistentVolume
apiVersion v1
kind PersistentVolume
metadata
name task-pv-volume
labels
type local
spec
storageClassName manual
capacity
storage 10Gi
accessModes
ReadWriteOnce
hostPath
path"/mnt/data"
3、创建 PersistentVolumeClaim
apiVersion v1
kind PersistentVolumeClaim
metadata
name task-pv-claim
spec
storageClassName manual
accessModes
ReadWriteOnce
resources
requests
storage 3Gi
4、创建 pod
apiVersion v1
kind Pod
metadata
name task-pv-pod
spec
volumes
name task-pv-storage
persistentVolumeClaim
claimName task-pv-claim
containers
name task-pv-container
image nginx
ports
containerPort80
name"http-server"
volumeMounts
mountPath"/usr/share/nginx/html"
name task-pv-storage
5、验证
#创建pod
kubectl create -f pods/storage/pv-pod.yaml
# 查看是否正常
kubectl get pod task-pv-pod
#进入pod
kubectl exec -it task-pv-pod -- /bin/bash
#验证是nginx服务否正常
root@task-pv-pod:/# apt-get update
root@task-pv-pod:/# apt-get install curl
root@task-pv-pod:/# curl localhost
Hello from Kubernetes storage
访问控制
使用 group ID(GID)配置的存储仅允许 Pod 使用相同的 GID 进行写入。 GID 不匹配或缺少将会导致许可被拒绝的错误。 为了减少与用户的协调,管理员可以使用 GID 对 PersistentVolume 进行注解。 这样 GID 就能自动的添加到使用 PersistentVolume 的任何 Pod 中。
使用 pv.beta.kubernetes.io/gid 注解的方法如下所示:
kind PersistentVolume
apiVersion v1
metadata
name pv1
annotations
pv.beta.kubernetes.io/gid"1234"
。。。