本文主要描述容器服务中的节点,接入火山引擎文件存储 vePFS 功能的操作。
说明
【邀测·申请试用】该功能目前处于邀测阶段,如需使用,请提交申请。
文件存储 vePFS 是火山引擎推出的一种高吞吐、低延时、可扩展并行的文件系统服务,满足高性能计算场景下高吞吐低延时的数据读写需求。vePFS 更多介绍参见:什么是文件存储 vePFS。
VKE 集群通过部署 vePFS-Manager 组件监听 VKE Node 的变化,动态挂载、卸载同 VPC 下的 vePFS 集群。
已有任意产品规格的火山引擎镜像仓库实例。详情请参见:镜像仓库产品规格。
创建 vePFS 文件系统。详细操作,请参见:创建文件系统。
准备 vePFS Manager 镜像和 Chart 包。
注意
下方为示例代码,详细的 vePFS Manager 镜像地址和版本号,请联系您 VKE 业务对接人员获取。
# 登录镜像仓库,需要输入密码 docker login --username={AccountName}@{AccountID} {volcCrDomain} # 拉取镜像到本地 docker pull cr-cn-beijing.volces.com/vke/vepfs-manager:v0.6.3 # 上传镜像到用户镜像仓库服务 docker tag [ImageId] {volcCrDomain}/{namespace}/vepfs-manager:v0.6.3 docker push {volcCrDomain}/{namespace}/vepfs-manager:v0.6.3
说明
针对不同 Helm 版本提供以下两个 Chart 包,不同 Helm 版本请使用对应的 Chart 包:
prod-vke-enterprise-lf-cn-beijing.cr.volces.com/vke/vepfs-manager:v0.3.0-helm36-chart
prod-vke-enterprise-lf-cn-beijing.cr.volces.com/vke/vepfs-manager:v0.3.0-chart
# 1. 拉取 Chart 包 # 从公共 Helm 仓库拉取 Chart 包(公网使用)。 helm chart pull prod-vke-enterprise-lf-cn-beijing.cr.volces.com/vke/vepfs-manager:v0.3.0-helm36-chart helm chart export prod-vke-enterprise-lf-cn-beijing.cr.volces.com/vke/vepfs-manager:v0.3.0-helm36-chart \ --destination ./ # 2. 开启 OCI 使用支持 export HELM_EXPERIMENTAL_OCI=1 # 3. 登录用户火山引擎镜像仓库实例 helm registry login --username={AccountName}@{AccountID} {volcCrDomain} # 4. 打包并推送 Chart 包 helm chart save ./vepfs-manager {volcCrDomain}/{namespace}/vepfs-manager:v0.3.0-helm36-chart # 解析域名,如果解析不了,请在 hosts 文件中配置 helm chart push {volcCrDomain}/{namespace}/vepfs-manager:v0.3.0-helm36-chart
# 1. 拉取 Chart 包 # 从公共 Helm 仓库拉取 Chart 包(公网使用)。 helm pull oci://prod-vke-enterprise-lf-cn-beijing.cr.volces.com/vke/vepfs-manager --version v0.3.0-chart helm chart export prod-vke-enterprise-lf-cn-beijing.cr.volces.com/vke/vepfs-manager:v0.3.0-chart \ --destination ./ # 2. 开启 OCI 使用支持 export HELM_EXPERIMENTAL_OCI=1 # 3. 登录用户火山引擎镜像仓库实例 helm registry login --username={AccountName}@{AccountID} {volcCrDomain} # 4. 打包并推送 Chart 包 helm package vepfs-manager --version v0.3.0-chart # 解析域名,如果解析不了,请在 hosts 文件中配置 helm push vepfs-manager-v0.3.0-chart.tgz oci://{cr-instance}-cn-beijing.cr.volces.com/{namespace}
登录 vePFS 控制台,查看已创建文件系统下的 vePFS 客户端管理节点登录密码。apiVersion: v1 kind: Secret metadata: name: vepfs-secret namespace: user-namespace # 替换为您的已有命名空间名称 stringData: # vePFS 客户端管理节点登录密码 password: "******" # vePFS 客户端管理/mnt/vepfs集群节点登录私钥(登录密码和登录私钥至少配置一个) #privateKey: "******"
参考 访问密钥(Access Key)帮助文档 获取火山引擎账号 Access Key。apiVersion: v1 kind: Secret metadata: name: auth-secret namespace: kube-system stringData: # 火山引擎账号 AccessKeyID AccessKeyID: "******" # 火山引擎账号 Secret Access Key SecretAccessKey: "******"
apiVersion: v1 kind: ConfigMap metadata: name: vepfs-config namespace: kube-system data: config.json: |- { "authSecret": "kube-system/auth-secret", "clusters": [ { "name": "vepfs-cluster", # 已创建的 VKE 集群名称 "clients": [ # vePFS 客户端管理节点私网 IP "192.168.**.**", "192.168.**.**", "192.168.**.**" ], "secret": "{user-namespace}/{secret-name}", "securityGroupID": "****", # vePFS 客户端管理节点已关联的安全组 ID "nodeSelector": { "labelKey": "labelValue" } } ] }
values.yaml
文件配置环境及镜像参数。values.yaml
文件示例代码如下所示。详细操作,请参见:创建 Helm 应用。platformConfig: ## Container registry for all images involved in the chart imageRegistry: {volcCrDomain} ## Container repository for platform components imageRepositoryRelease: {crInstance} image: tag: v0.6.3 extraArgs: # TOP configurations controller-iam-top-address: "open.volcengineapi.com" controller-region: "cn-beijing" # pod image controller-vepfs-helper-pod-image: "{volcCrDomain}/{namespace}/vepfs-manager:v0.6.3"
helm install vepfs-manager ./vepfs-manager \ --set platformConfig.imageRegistry={volcCrDomain} \ --set platformConfig.imageRepositoryRelease={crInstanceName} \ --set image.tag=v0.6.3 \ --set extraArgs.controller-region=cn-beijing \ --set extraArgs.controller-iam-top-address=open.volcengineapi.com \ --set extraArgs.controller-vepfs-configmap=kube-system/vepfs-config \ --set extraArgs.controller-vepfs-helper-pod-image={volcCrDomain}/{namespace}/vepfs-manager:v0.6.3
# check node where VePFS Manager was scheduled k get pod `k get pod -A | grep vepfs | awk '{print $2}'` -o yaml | grep nodeName | awk '{print $2}'
/mnt/vepfs
)。df -h | tail -n 5
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment # adjust name for your deployment namespace: users-namespace # specify your namespace to apply deployment spec: replicas: 2 # adjust number of replicas for your deployment selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx # adjust name of container image: nginx:1.14.2 # adjust image_name and tag for your container ports: - containerPort: 80 # adjust port for your container volumeMounts: - mountPath: /mnt/vepfs # VePFS 目录 name: vepfs subPath: vepfs dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} volumes: - hostPath: path: /mnt/vepfs type: DirectoryOrCreate name: vepfs
支持通过云监控配置 vePFS 的容量利用率告警策略,触发阈值后自动发送通知。详细配置步骤参见:创建告警策略。