上云无忧 > 文档中心 > 百度智能云容器引擎服务 CCE 使用对象存储BOS
容器引擎服务CCE
百度智能云容器引擎服务 CCE 使用对象存储BOS

文档简介:
准备工作: 用户做好以下准备,才能在容器中挂载BOS实例。 注册百度账号,并完成实名认证。 进入BOS页面创建bucket。 创建一个可用的容器集群。 创建Bucket: 创建BOS Bucket,操作步骤请参考创建bucket。 注意: 请注意创建的BOS Bucket所处地域。如果创建的BOS Bucket与容器集群分属不同地域,要求挂载点所在BCC/BBC开放公网访问,同地域则可以通过内网读写。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

准备工作

用户做好以下准备,才能在容器中挂载BOS实例。

  • 注册百度账号,并完成实名认证。
  • 进入BOS页面创建bucket。
  • 创建一个可用的容器集群。

创建Bucket

  1. 创建BOS Bucket,操作步骤请参考创建bucket

注意: 请注意创建的BOS Bucket所处地域。如果创建的BOS Bucket与容器集群分属不同地域,要求挂载点所在BCC/BBC开放公网访问,同地域则可以通过内网读写。

创建容器集群

  1. 创建一个容器集群,操作步骤参考创建集群。
  2. 下载命令行客户端kubectl,并连接集群,操作步骤参考通过kubectl连接Kubernetes集群。

注意:K8S集群版本>=1.16

操作指南

部署存储插件

  • 依次选择:容器引擎 CCE -> Helm 模版 -> 百度云模版

  • 通过模版名称 cce-csi-bos-plugin 搜索模版

  • 点击安装并填写相应的参数

* 实例名称:插件实例名称,例:bos;
* 部署集群:选择需要部署 BOS CSI 插件的集群;
* 命名空间:管理实例的 helm 元数据的命名空间,例:kube-system;
* kubernetets 版本:填写实际部署集群的版本,目前支持:1.20、1.18、1.16;
* nodes:如果部署集群的节点的时候,指定了 kubelet 的数据目录,需要填写具体使用的数据目录到该列表,否则保持默认即可;
* region: 需要修改为集群实际的 region,支持: bj(北京), gz(广州), su(苏州), hkg(香港), bd(保定), fwh(武汉)

静态PV/PVC方式挂载BOS

注意:由于CSI bosplugin 依赖 bosfs,在Pod中配置 livenessProbe 检查挂载点状态可以避免容器无法感知 bosfs 异常重启后的挂载点失效的问题,强烈建议添加该配置,具体配置项参考在Pod内挂载PVC中的例子。

1.在集群中创建 AK/SK 的 secret,用以访问BOS存储。

kubectl create secret generic csi-bos-secret \
  --from-literal=ak=<Your AK> \
  --from-literal=sk=<Your SK>

关于 AK/SK 的更多信息参考: 如何获取 AK 和 SK

2.在集群中创建PV和PVC资源

使用kubectl,执行 kubectl create -f bos-pv.yaml 完成PV的创建

对应的bos-pv.yaml文件如下所示:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-bos
  namespace: "default"
spec:
  accessModes:
  - ReadWriteOnce
  - ReadOnlyMany
  capacity:
    storage: 5Gi
  storageClassName: csi-bos
  csi:
    driver: "csi-bosplugin"
    volumeHandle: "v-XXXXXX"
    nodePublishSecretRef:
      name: "csi-bos-secret"
      namespace: "default"
  mountOptions:
  - "-o meta_expires=0"
  persistentVolumeReclaimPolicy: Retain

注意事项及参数说明:

  • yaml中volumeHandle:对应的是BOS的 bucketName, 支持挂载 BOS bucket子目录 , 如: bucketName/dirName
  • nodePublishSecretRef:填写步骤1中的 secret 名
  • mountOptions: 由于 BOS bucket 挂载依赖 Bosfs,因此支持通过 mountOptions 指定 Bosfs 的启动参数,支持的参数详情见BOS参数说明,常用参数和说明如下:

    • meta_expires: meta缓存过期时间,单位为秒。不设置该参数代表永不过期。上述PV yaml示例中该参数被设置为0,代表不缓存。缓存过期时间过短可能影响写入性能,过长可能导致挂载点内看不到其他客户端写入同一bucket的数据。同一bucket一写多读场景建议设置为0,纯写入场景建议设置为3600,单点读写场景可以不设置。
    • allow_other: 是否允许非root用户读取挂载点内数据,默认只有root用户可读写,容器内非root进程如果要读取挂载点内数据需要设置该参数,更细粒度权限的管理可以配合mount_umask参数一同使用。
  • BOS 支持一写多读,对应的 accessMode 只支持 ReadWriteOnce + ReadOnlyMany

创建PV后,输入kubectl get pv可以看见一个available状态的PV,如下所示:

$ kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM     STORAGECLASS   REASON    AGE
bos-pv    5Gi        RWO,ROX        Retain           Available             csi-bos                         3s

3.建立一个能够与该PV绑定的PVC

使用kubectl,执行 kubectl create -f bos-pvc.yaml完成PVC的创建

对应的bos-pvc.yaml文件如下所示:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: bos-pvc
spec:
  accessModes:
  - ReadWriteOnce
  - ReadOnlyMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: csi-bos

注意: yaml中storageClassName字段用于和 PV关联,建议填写,如果集群中使用多类存储系统的 PV

绑定前,PVC为pending状态

$ kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
bos-pvc   Pending                                       csi-bos        2s

绑定后,PV和PVC状态变为Bound

$ kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM             STORAGECLASS   REASON    AGE
bos-pv    5Gi        RWX            Retain           Bound     default/bos-pvc                            36s
$ kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
bos-pvc   Bound     bos-pv    5Gi        RWO,ROX        csi-bos        1m

有关PV和PVC的更多设置和字段说明,见k8s官方文档

4.在Pod内挂载PVC

在Pod spec内指定相应的PVC名称即可,使用kubectl,执行 kubectl create -f demo-bos-pod.yaml 完成pod的创建

对应的demo-bos-pod.yaml文件如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: nginx01
  namespace: default
spec:
  containers:
  - image: nginx
    imagePullPolicy: Always
    name: nginx01
    volumeMounts:
    - mountPath: /var/lib/www/html
      name: bos-pvc
    - mountPath: /var/lib/www/html000
      name: bos-pvc
      readOnly: true
    livenessProbe:
      exec:
        command:
        - stat
        - /var/lib/www/html
  volumes:
  - name: bos-pvc
    persistentVolumeClaim:
      claimName: bos-pvc
      readOnly: false

Pod创建后,可以读写容器内的/var/lib/www/html路径来访问相应的BOS存储上的内容, 同时该路径支持读写,/var/lib/www/html000支持只读。

注意:由于CSI bosplugin 依赖 bosfs,在Pod中配置 livenessProbe 可以避免容器无法感知 bosfs 异常重启后的挂载点失效的问题。

同时,支持在其余机器上挂载只读盘,kubectl create -f demo-bos-pod1.yaml创建一个包含只读 bos bucket的 pod

apiVersion: v1
kind: Pod
metadata:
  name: nginx01-bbaa
spec:
  containers:
  - image: nginx
    imagePullPolicy: Always
    name: nginx01
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/lib/www/html000
      name: bos-pvc
      readOnly: true
    livenessProbe:
      exec:
        command:
        - stat
        - /var/lib/www/html000
  volumes:
  - name: bos-pvc
    persistentVolumeClaim:
      claimName: bos-pvc
      readOnly: true

5.释放PV和PVC资源

完成存储资源的使用后,可以释放PVC和PV资源

使用以下命令可以释放PVC

$ kubectl delete -f  bos-pvc.yaml

释放PVC后,原来与之绑定的PV状态会变为Release,如下所示:

NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM             STORAGECLASS   REASON    AGE
bos-pv    5Gi        RWO,ROX        Retain           Released   default/bos-pvc   csi-bos        16m

输入以下指令释放PV资源

$ kubectl delete -f  bos-pv.yaml
相似文档
  • 目前 CCE 的容器监控是由一系列的开源组件构成,用户可以在页面上自定义部署各个组件,并设置其公网开放策略、持久化配置等。全部部署后,用户将获得如下的监控能力: 基于开源的 prometheus + grafana + node-exporter + kube-state-metrics 的采集、存储、展示方案。
  • CCE 基于 Prometheus + Alertmanager 的方案为用户提供快速可视化的报警配置,用户可根据需求配置节点,应用等维度的报警规则,告警将以邮件或短信发送给指定用户或用户组。
  • K8S Events 可以通过 kubectl describe 进行查看,用户通过获取 K8S Events 能够及时的诊断集群或服务异常。K8S 默认只提供 1 小时的 Events 信息,用户可通过在 CCE 开启 Event 持久化,查询最长 7 天之内的数据。
  • CCE 日志管理功能帮助用户对 kubernetes 集群中的业务日志和容器日志进行管理。用户通过日志管理可以将集群中的日志输出到外部的 Elasticsearch 服务或者百度云自己的 BOS 存储中,从而对日志进行分析或者长期保存。
  • CCE 的服务画像可以查看集群内所有资源的特征和规范性,如镜像检查、应用检查、网络检查、安全检查,并给出对应的评分和详细内容,帮助用户更好的了解集群内服务状况。 注意:服务画像的结果基于前一天的集群数据,且检查规则是一般判定标准,不一定适用于所有业务场景。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部