zoukankan      html  css  js  c++  java
  • 华为云cce pvc 指定云硬盘云存储

    1 华为云cce pvc

    https://support.huaweicloud.com/usermanual-cce/cce_01_0044.html
    1.15

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-evs-auto-example
      namespace: default
      annotations:
        everest.io/disk-volume-type: SATA
      labels:
        failure-domain.beta.kubernetes.io/region: cn-north-1
        failure-domain.beta.kubernetes.io/zone: cn-north-1a
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: csi-disk
    

    1.15之前

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-evs-auto-example
      namespace: default
      labels:
        failure-domain.beta.kubernetes.io/region: cn-north-1
        failure-domain.beta.kubernetes.io/zone: cn-north-1a
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: sata
    

    注意区域选对,选错了可是挂不上盘的。也就是存储是分区域的。

    那么如果不指定zone和region那2个label,能申请成功吗? (下面有解答)

    2. 详细看 storage class

    类型有好几种,

    NAME              PROVISIONER                     AGE
    efs-performance   flexvolume-huawei.com/fuxiefs   328d
    efs-standard      flexvolume-huawei.com/fuxiefs   328d
    nfs-rw            flexvolume-huawei.com/fuxinfs   328d
    obs-standard      flexvolume-huawei.com/fuxiobs   328d
    obs-standard-ia   flexvolume-huawei.com/fuxiobs   328d
    sas               flexvolume-huawei.com/fuxivol   328d
    sata              flexvolume-huawei.com/fuxivol   328d
    ssd               flexvolume-huawei.com/fuxivol   328d
    

    后面三种云硬盘,对于sata,高,ssd云硬盘。

    详细看sas类型的storageClass

    allowVolumeExpansion: true
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      annotations:
        storageclass.beta.kubernetes.io/is-default-class: "false"
      creationTimestamp: "2019-07-04T06:31:05Z"
      labels:
        kubernetes.io/cluster-service: "true"
      name: sas
      resourceVersion: "1463"
      selfLink: /apis/storage.k8s.io/v1/storageclasses/sas
      uid: 4d561246-9e25-11e9-bda5-fa163e39be81
    parameters:
      kubernetes.io/description: ""
      kubernetes.io/hw:passthrough: "true"
      kubernetes.io/storagetype: BS
      kubernetes.io/volumetype: SAS
      kubernetes.io/zone: cn-east-2c
    provisioner: flexvolume-huawei.com/fuxivol
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    

    可以看到有个kubernetes.io/zone,上面那个问题,如果不指定label,那么会申请zone里面的硬盘。
    里面的值还都不能修改,可以理解为默认值吧,可以在pod的pvc里面覆盖他的配置。

    如果你修改,会报错如下:

    # storageclasses.storage.k8s.io "sas" was not valid:
    # * parameters: Forbidden: updates to parameters are forbidden.
    

    3. Statefulset 应用挂载数据盘

    跟直接使用pvc有所不同,因为volumeClaimTemplates里面是不能指定labels的,需要放在template的metadata 下的labels中,官网上面有个例子很好的说明了这一点:

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: deploy-evs-sata-in
      namespace: default
      generation: 1
      labels:
        appgroup: ''
      annotations:
        container.io/container-0: https://console.huaweicloud.com/swr/dockerimage/nginx.png
        description: ''
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: deploy-evs-sata-in
          failure-domain.beta.kubernetes.io/region: cn-north-1
          failure-domain.beta.kubernetes.io/zone: cn-north-1a
      template:
        metadata:
          labels:
            app: deploy-evs-sata-in
            failure-domain.beta.kubernetes.io/region: cn-north-1
            failure-domain.beta.kubernetes.io/zone: cn-north-1a
          annotations:
            metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"","path":"","port":"","names":""}]'
            pod.alpha.kubernetes.io/initialized: 'true'
        spec:
          containers:
            - name: container-0
              image: 'nginx:1.12-alpine-perl'
              env:
                - name: PAAS_APP_NAME
                  value: deploy-evs-sata-in
                - name: PAAS_NAMESPACE
                  value: default
                - name: PAAS_PROJECT_ID
                  value: a2cd8e998dca42e98a41f596c636dbda
              resources: {}
              volumeMounts:
                - name: bs-sata-mountoptionpvc
                  mountPath: /tmp
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              imagePullPolicy: IfNotPresent
          restartPolicy: Always
          terminationGracePeriodSeconds: 30
          dnsPolicy: ClusterFirst
          securityContext: {}
          imagePullSecrets:
            - name: default-secret
          affinity: {}
          schedulerName: default-scheduler
      volumeClaimTemplates:
        - metadata:
            name: bs-sata-mountoptionpvc
            namespace: default
            annotations:
              everest.io/disk-volume-type: SATA
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 10Gi
            storageClassName: csi-disk   
      serviceName: wwww
      podManagementPolicy: OrderedReady
      updateStrategy:
        type: RollingUpdate
      revisionHistoryLimit: 10
    
    
    
  • 相关阅读:
    Framework not found Reveal
    iOS 数字每隔3位用逗号分隔
    iOS 常见内存泄漏--项目实遇
    iOS面试的一个逻辑题
    iOS 视频直播弹幕的实现
    好好写博客,不再划水喊口号
    【计你太美】一句代码实现微博兴趣页的自动跳转
    【Auto.js教程】Auto.js强制关闭软件函数
    【Auto.js教程】Auto.js入门及第一个示例程序
    mysql中的join
  • 原文地址:https://www.cnblogs.com/gqdw/p/12978865.html
Copyright © 2011-2022 走看看