本文为您介绍通过使用Secret方式挂载OSS静态存储卷。
注意事项
若您在应用模板中配置了securityContext.fsGroup参数,kubelet在存储卷挂载完成后会执行chmod
或chown
操作,导致挂载时间延长。
若已配置securityContext.fsGroup参数,且需要减少挂载时间。具体操作,请参见OSS存储卷挂载时间延长。
操作步骤
创建PV。
您可以通过kubectl或者通过容器服务控制台界面创建PV。
kubectl
您可以使用Secret方式在PV中使用AccessKey。
执行以下命令,创建Secret。
替换以下
<your AccessKey ID>
和<your AccessKey Secret>
为您的AccessKey ID和AccessKey Secret信息。在容器服务管理控制台,鼠标悬浮右上角,选择AccessKey,获取AccessKey ID和AccessKey Secret信息。
kubectl create secret generic osssecret --from-literal=akId='<your AccessKey ID>' --from-literal=akSecret='<your AccessKey Secret>' --type=alicloud/oss -n default
osssecret
:Secret的名称,可以自行配置。akId
:AccessKey ID。akSecret
:AccessKey Secret。--type
:Secret类型:配置为alicloud/oss
的命名空间,需要与应用Pod在相同的命名空间。使用oss-pv.yaml文件创建PV。
apiVersion: v1 kind: PersistentVolume metadata: name: pv-oss spec: capacity: storage: 5Gi accessModes: - ReadWriteMany storageClassName: oss flexVolume: driver: "alicloud/oss" secretRef: name: "osssecret" # 替换为上一步创建的Secret名称。 options: bucket: "docker" url: "oss-cn-hangzhou.aliyuncs.com" path: "/path" otherOpts: "-o max_stat_cache_size=0 -o allow_other"
控制台
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在存储卷页面,单击创建,在弹出对话框中,配置存储卷的相关参数。配置完成后,单击创建。
参数
描述
存储卷类型
本示例中为OSS。
名称
创建的数据卷的名称。数据卷名在集群内必须唯一。本例为
pv-oss
。存储驱动
本示例选择Flexvolume。
总量
所创建存储卷的容量。
访问模式
默认为ReadWriteMany。
访问证书
选择访问OSS所需的保密字典。
选择已有保密字典:选择命名空间及保密字典。
新建保密字典:配置命名空间、名称、AccessKey ID及AccessKey Secret。
可选参数
您可以为OSS存储卷输入定制化参数,格式为:
-o *** -o ***
。Bucket ID
您要使用的OSS Bucket的名称。单击选择Bucket,在弹出的对话框中选择所需的Bucket并单击选择。
访问域名
如果Bucket和ECS实例位于不同地域(Region),请选择公网域名;若是经典网络,请选择私网域名。
标签
为该存储卷添加标签。
创建PVC。
使用oss-pvc.yaml文件创建PVC。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-oss spec: storageClassName: oss accessModes: - ReadWriteMany resources: requests: storage: 5Gi
创建Pod。
使用oss-deploy.yaml创建Pod。
apiVersion: apps/v1 kind: Deployment metadata: name: oss-static labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 volumeMounts: - name: pvc-oss mountPath: "/data" livenessProbe: exec: command: - sh - -c - cd /data initialDelaySeconds: 30 periodSeconds: 30 volumes: - name: pvc-oss persistentVolumeClaim: claimName: pvc-oss