问题来了:对于一些业务需要一些持久化的存储,我们一般采用什么方案呢?
硬盘、文件存储、对象存储 ?
只能实现一对一挂载,因为硬盘只支持一次挂载,通过硬盘创建的PVC为RWO,单机读写。
支持 ReadWriteMany ,PVC类型为多机读写。
支持 ReadWriteMany ,PVC类型为多机读写。
这里贴一个各个存储的比较图
这里我们就通过腾讯云COS演示,多个服务需要共享一个内容文件如何实现。
注意写错了,不能在控制台删,可以修改yaml文件,但是变量值是base64转码后的值,可以命令行删除sercret,重建即可。
注意如果提示不能使用CFS、COS联系客服,开启即可。
2020/06/28 03:11:05 [error] 28#28: *1 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied), client: 10.0.0.7, server: localhost, request: "GET / HTTP/1.1", host: "172.16.0.34"
这里我们直接通过命令行修改该deployment文件即可,由于在控制台修改个人也得修改yaml文件,不方便,所以这里我贴一份成功的deployment文件给大家参考。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
k8s-app: nginx-deploy
qcloud-app: nginx-deploy
name: nginx-deploy
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: nginx-deploy
qcloud-app: nginx-deploy
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s-app: nginx-deploy
qcloud-app: nginx-deploy
spec:
containers:
- image: nginx
imagePullPolicy: Always
lifecycle:
postStart:
exec:
command:
- /bin/sh
- -c
- sed -i 's#nginx;#root;#g' /etc/nginx/nginx.conf;
- nginx
- -s
- reload
name: nginx-deploy-pod
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
securityContext:
privileged: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /usr/share/nginx/html
name: cos
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: qcloudregistrykey
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: cos
persistentVolumeClaim:
claimName: cq-cos-pvc
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。