Oracle OKE使用storageclass。
有2种方式。
第1种,直接使用默认的storageclass oci。
示例yaml。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: testclaim
spec:
storageClassName: "oci"
selector:
matchLabels:
oci-availability-domain: "AP-TOKYO-1-AD-1"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
几点注意点,
1,只支持ReadWriteOnce
2,最小50GB,如果低于50GB,默认provision 50GB的pv。
3,Reclaim Policy默认是Delete,需要修改时,可以通过下面命令修改。
kubectl patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
第2种,通过使用Oracle OCI的FSS,创建storageclass。
示例yaml。
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: oci-fss
provisioner: oracle.com/oci-fss
parameters:
# Insert mount target from the FSS here
mntTargetId: ocid1.mounttarget.oc1.iad.aaaaaaaaaaaaaaaaaaaaaaaaaa
apiVersion: v1
kind: PersistentVolume
metadata:
name: oke-fsspv
spec:
storageClassName: oci-fss
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
mountOptions:
- nosuid
nfs:
# Replace this with the IP of your FSS file system in OCI
server: 10.0.32.8
# Replace this with the Path of your FSS file system in OCI
path: "/okefss"
readOnly: false
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: oke-fsspvc
spec:
storageClassName: oci-fss
- ReadWriteMany
resources:
requests:
# Although storage is provided here it is not used for FSS file systems
storage: 100Gi
volumeName: oke-fsspv
设置Pod使用pvc
#okefsspod.yaml
apiVersion: v1
kind: Pod
metadata:
name: oke-fsspod
spec:
containers:
- name: web
image: nginx
volumeMounts:
- name: nfs
mountPath: "/usr/share/nginx/html/"
ports:
- containerPort: 80
name: http
volumes:
- name: nfs
persistentVolumeClaim:
claimName: oke-fsspvc
readOnly: false
nodeSelector:
nodeName: node1
设置另外一个Pod使用pvc
apiVersion: v1
#okefsspod2.yaml
kind: Pod
metadata:
name: oke-fsspod2
spec:
containers:
- name: web
image: nginx
volumeMounts:
- name: nfs
mountPath: "/usr/share/nginx/html/"
ports:
- containerPort: 80
name: http
volumes:
- name: nfs
persistentVolumeClaim:
claimName: oke-fsspvc
readOnly: false
nodeSelector:
nodeName: node2
结尾!