(kubectl) Criação de um PV a partir de um bucket do OBS existente
Cenário
O CCE permite que você use um bucket do OBS existente para criar um PV (PersistentVolume). Você pode criar uma PVC (PersistentVolumeClaim) e ligá-la ao PV.
Observações e restrições
O exemplo de configuração a seguir se aplica a clusters do Kubernetes 1.13 ou anterior.
Procedimento
- Faça logon no console do OBS, crie um bucket do OBS e registre o nome do bucket e a classe de armazenamento.
- Use o kubectl para se conectar ao cluster. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
- Crie dois arquivos YAML para criar o PV e a PVC. Suponha que os nomes dos arquivos sejam pv-obs-example.yaml e pvc-obs-example.yaml.
touch pv-obs-example.yaml pvc-obs-example.yaml
Versão do cluster do Kubernetes
Descrição
Exemplo de YAML
1.11 ≤ K8s versão< 1.13
Clusters da v1.11 a v1.13
K8s versão = 1.9
Clusters da v1.9
Clusters da v1.11 a v1.13
- Exemplo de arquivo YAML para o PV:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-obs-example annotations: pv.kubernetes.io/provisioned-by: flexvolume-huawei.com/fuxiobs spec: accessModes: - ReadWriteMany capacity: storage: 1Gi claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: pvc-obs-example namespace: default flexVolume: driver: huawei.com/fuxiobs fsType: obs options: fsType: obs region: ap-southeast-1 storage_class: STANDARD volumeID: test-obs persistentVolumeReclaimPolicy: Delete storageClassName: obs-standard
Tabela 1 Parâmetros principais Parâmetro
Descrição
driver
Driver de armazenamento usado para montar o volume. Defina o driver para huawei.com/fuxiobs para o volume do OBS.
storage_class
Classe de armazenamento, incluindo STANDARD (bucket padrão) e STANDARD_IA (bucket de acesso infrequente).
region
Região onde o cluster está localizado.
volumeID
Nome do bucket do OBS.
Para obter o ID, entre no console do CCE, escolha Resource Management > Storage, clique no nome da PVC na página de guia OBS e copie o ID da PVC na página da guia PV Details.
storage
Capacidade de armazenamento, em Gi. O valor é fixado em 1Gi.
storageClassName
Classe de armazenamento suportada pelo OBS, incluindo obs-standard (bucket padrão) e obs-standard-ia (bucket de acesso infrequente).
spec.claimRef.apiVersion
O valor é fixado em v1.
spec.claimRef.kind
O valor é fixado em PersistentVolumeClaim.
spec.claimRef.name
O valor é o mesmo que o nome da PVC criada na próxima etapa.
spec.claimRef.namespace
O valor é o mesmo que o namespace da PVC criada na próxima etapa.
- Exemplo de arquivo YAML para a PVC:
apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: obs-standard volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxiobs name: pvc-obs-example namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi volumeName: pv-obs-example
Tabela 2 Parâmetros principais Parâmetro
Descrição
volume.beta.kubernetes.io/storage-class
Classe de armazenamento suportada pelo OBS, incluindo obs-standard e obs-standard-ia.
volume.beta.kubernetes.io/storage-provisioner
Deve ser definido como flexvolume-huawei.com/fuxiobs.
volumeName
Nome do PV.
storage
Capacidade de armazenamento, em Gi. O valor é fixado em 1Gi.
Clusters da v1.9
- Exemplo de arquivo YAML para o PV:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-obs-example namespace: default spec: accessModes: - ReadWriteMany capacity: storage: 1Gi flexVolume: driver: huawei.com/fuxiobs fsType: obs options: fsType: obs kubernetes.io/namespace: default region: ap-southeast-1 storage_class: STANDARD volumeID: test-obs persistentVolumeReclaimPolicy: Delete storageClassName: obs-standard
Tabela 3 Parâmetros principais Parâmetro
Descrição
driver
Driver de armazenamento usado para montar o volume. Defina o driver para huawei.com/fuxiobs para o volume do OBS.
storage_class
Classe de armazenamento, incluindo STANDARD (bucket padrão) e STANDARD_IA (bucket de acesso infrequente).
region
Região onde o cluster está localizado.
volumeID
Nome do bucket do OBS.
Para obter o ID, entre no console do CCE, escolha Resource Management > Storage, clique no nome da PVC na página de guia OBS e copie o ID da PVC na página da guia PV Details.
storage
Capacidade de armazenamento, em Gi. O valor é fixado em 1Gi.
storageClassName
Classe de armazenamento suportada pelo OBS, incluindo obs-standard (bucket padrão) e obs-standard-ia (bucket de acesso infrequente).
- Exemplo de arquivo YAML para a PVC:
apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: obs-standard volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxiobs name: pvc-obs-example namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi volumeName: pv-obs-example volumeNamespace: default
Tabela 4 Parâmetros principais Parâmetro
Descrição
volume.beta.kubernetes.io/storage-class
Classe de armazenamento suportada pelo OBS, incluindo obs-standard e obs-standard-ia.
volume.beta.kubernetes.io/storage-provisioner
Deve ser definido como flexvolume-huawei.com/fuxiobs.
volumeName
Nome do PV.
storage
Capacidade de armazenamento, em Gi. O valor é fixado em 1Gi.
- Exemplo de arquivo YAML para o PV:
- Crie um PV.
kubectl create -f pv-obs-example.yaml
- Crie uma PVC.
kubectl create -f pvc-obs-example.yaml