使用者在浏览网页时,Web Server会产生Log,当网页挂掉时,势必需要去查看Log作分析,导致网站发生挂掉的源头,所以网站的Log需要保存完善。
反观,Kubernetes里的Pod,因为Pod的生命周期,当Pod突然发生一些事情挂掉而release时,原先在Pod上产生的新资料时,就会跟着一起消失,所以需要切割或挂载Storage空间给予Pod做存放资料,当Pod挂掉而release时,资料还可以被保存下来。
实际演练会使用Persistent Volume(PV) & Persistent Volume Claim(PVC)使用手动去建立这两个元件,则称之为Static,先来看以下图片,来了解PV & PVC的关系:
PV可以想像成一颗USB硬碟,有储存空间,而去分配实际想要的硬体空间。所以PV拥有一个独立的储存空间
PVC可以想像成USB驱动程序,给予硬碟和系统的沟通桥梁,并已对装置进行访问,以及驱动程序会占据一点点的硬碟空间(系统资源)。所以PVC可以对PV进行存取模式的设定,相对的PVC也需要储存空间
以下会进行实际演练
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
storageClassName: mypv
hostPath:
path: "/mnt/mypv"
storage: 设定储存空间
accessModes: 访问模式,有以下三种模式:
persistentVolumeReclaimPolicy: PV删除後的回收策略,有以下三种方式:
PVC只需要设定访问模式以及初始的储存空间
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteMany
storageClassName: mypv
上面图片所呈现的关系,需要了解,在volume做参数设定,就不会搞混
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deploy
spec:
replicas: 2
selector:
matchLabels:
name: itdemo
template:
metadata:
labels:
name: itdemo
spec:
containers:
- name: itdemo
image: johnson860312/awswebdb
resources:
limits:
memory: "256Mi"
cpu: "128m"
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/var/www/html"
name: deploy-mount
volumes:
- name: deploy-mount
persistentVolumeClaim:
claimName: mypvc
volumeMounts:
使用port-forward access到pod
PV与PVC建立连结
PVC与Pod成功建立连结。Status: Bound
原先在"/var/www/html"底下有资料但这里volumeMount的方式会直接覆盖过去
Node上的资料夹成功创建
在Pod建立一个测试web,验证volume是共享
在Node上建立测试web,验证储存空间是共享
明天会介绍和实作在EKS上建立EBS
>>: 802.1X 是网路访问控制 (NAC) 的 IEEE 标准
环境 Windows 10 21H1 Visual Studio 2019 IE 11.0.1904...
音乐的解 大约在去年的时候,接触了 GAN 之後再加上专题的需要,想说来就来试试看生成音乐吧,但很快...
iframe 是 写网页常见的语法之一 在进公司前不知道有这语法 但通常一个网页内容 左侧或上方选单...
花了一点时间,把 Debian 10.10 下载与安装,我选择 Gnome 桌面环境,原因是在 Fe...
今天来实作二元树~ 首先来定义一下资料结构 type Node struct { Left *Nod...