前提条件
K8S集群中正确部署了virtual-kubelet(serverless Kubernetes 默认集成)。
使用OSS之前,您需要先在OSS管理控制台上创建Bucket。具体操作,请参见创建存储空间。
相同地域的OSS Bucket可以使用内网地址进行挂载。
关于如何使用OSS存储卷,请参见OSS存储卷使用说明。
使用RamRole方式
针对存放在 Bucket 的 Object 的访问,OSS 提供了多种权限控制方式,包括 ACL、Bucket Policy 和 RAM Policy(推荐使用)。可根据业务需求来管理权限控制。更多信息,请参见访问控制概述。
1、EciOssRoleShare具有OSSFull权限
2、使用role的方式挂载oss,创建并复制以下内容到 flexvolume-oss.yaml 中。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-oss-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-flexvolume-oss
image: nginx
volumeMounts:
- name: "oss1"
mountPath: "/data"
volumes:
- name: "oss1"
flexVolume:
driver: "alicloud/oss"
options:
bucket: "liumihust"
url: "oss-cn-hangzhou.aliyuncs.com"
otherOpts: "-o max_stat_cache_size=0 -o allow_other"
ramRole: "EciOssRoleShare"
使用kubectl创建:
# kubectl create -f flexvolume-oss.yaml
# kubectl get pod nginx-oss-deploy-759c8cc4f4-dqgk5
NAME READY STATUS RESTARTS AGE
nginx-oss-deploy-759c8cc4f4-dqgk5 1/1 Running 0 10m
# kubectl exec -it nginx-oss-deploy-759c8cc4f4-dqgk5 bash
root@nginx-oss-deploy-759c8cc4f4-dqgk5:/# ls
bin data docker-entrypoint.d etc lib media opt root sbin sys usr
boot dev docker-entrypoint.sh home lib64 mnt proc run srv tmp var
root@nginx-oss-deploy-759c8cc4f4-dqgk5:/# cd data/
root@nginx-oss-deploy-759c8cc4f4-dqgk5:/data# ls
eci
format-test.jar
fromLocalVM
liumi20200305
test
vvvv
''$'\351\230\277\351\207\214\344\272\221\345\274\271\346\200\247\345\256\271\345\231\250\345\256\236\344\276\213\357\274\210''ECI'$'\357\274\211\344\272\247\345\223\201\344\273\213\347\273\215'' v0.2.pptx'
root@nginx-oss-deploy-759c8cc4f4-dqgk5:/data#
直接传用户AK方式
需要将用户AK传给option(考虑到安全性,不建议使用)
1、如下使用直接传用户AK的方式
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-oss-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-flexvolume-oss
image: nginx
volumeMounts:
- name: "oss1"
mountPath: "/data"
volumes:
- name: "oss1"
flexVolume:
driver: "alicloud/oss"
options:
bucket: "liumihust"
url: "oss-cn-hangzhou.aliyuncs.com" #
otherOpts: "-o max_stat_cache_size=0 -o allow_other"
akId: "***"
akSecret: "***"