VMware vSphere의 Rancher에 storage class를 할당하여 Dynamic으로 PV를 만들도록 합니다.

마지막 기사에서 Proxy 아래의 VMware vSphere에 Rancher를 넣어 Harbor를 구축하는 검증을 했습니다.
빌드 할 수 있었지만 잠시 후 액세스하면 Project에 image 목록은 있지만 Pull 할 수없는 상태가되었습니다.
Persisitent Volume(영속 볼륨?) 없이 시작했기 때문에, 그 후 몇번인가 Pod가 재작성되어 image 본체가 잃어버린 것이라고 알았습니다.

거기서, 검증의 일환으로서 Rancher에 storage class를 설정해, 동적인 PVC/PV불출을 실시했습니다.

Cluster로 설정



vSphere에서 Rancher가 동적 PV를 생성하도록 하려면 Cluster에 대한 설정이 필요합니다.
Cluster를 만들 때 Edit as YAML를 클릭하고 rancher_kubernetes_engine_config: 아래에 다음과 같은 설정을 추가합니다.
cloud_provider:
  name: vsphere
  vsphereCloudProvider:
    global:
      insecure-flag: true       # 今回の検証環境ではオレオレ証明書を使用しているので有効に
    virtual_center:
      vc.example.com:           # vCenter URL
        user: provisioner       # vCenter へのアクセスユーザ
        password: secret        # パスワード
        port: 443
        datacenters: /eu-west-1 # 使用するdatacenterのパス
    workspace:
      server: vc.example.com                       # vCenter URL 上記と異なるパターンは試してません
      folder: /eu-west-1/folder/myvmfolder         # dummy vm が作成されるディレクトリ
      default-datastore: /eu-west-1/datastore/ds-1 # storage classで指定しなかった場合に使用されるdatastore
      datacenter: /eu-west-1                       # 使用するdatacenterのパス 上記と異なるパターンは試してません
      resourcepool-path: /eu-west-1/host/hn1/resources/myresourcepool # リソースプールを使用したい場合(今回は使用せず)

Cluster를 만들고 Provisioning이 완료될 때까지 기다립니다

다양한 설정에 대한 자세한 내용은 을 참조하십시오.
vSphere Configuration Reference

Storage Class 만들기



Cluster 작성이 완료되면 Rancher Storage -> Storage Classes에서 작성하십시오.
이름만 설정하고, 다른 파라미터는 디포로 OK였습니다.
위에서 설정한 default-datastore를 사용하지 않는다면 여기의 Datastore에서 설정한다고 생각합니다 (실행하지 않았습니다).



앱 배포



앱 카탈로그에서 앱을 배포합니다.
이때 Rancher에 등록되어 있는 카탈로그라면 GUI로부터, 자신이 추가한 카탈로그라면 YAML을 Edit하고, 위에서 작성한 storage class를 선택해 배포합니다.

PV가 배포되고 생성되면 Cluster를 만들 때 지정한 default-datastore 또는 Storage Class를 만들 때 Datastore에 지정된 저장소에 kubevols라는 디렉터리가 만들어집니다.
그리고 거기에 데이터가 저장되는 것을 vSphere에서 볼 수 있습니다.

Harbor PV



그래서 Harbor의 매니페스트를 수정하십시오.
persistence:
  enabled: true
  persistentVolumeClaim: 
    registry: 
      storageClass: "vsphere-volume"
      size: "5Gi"
    jobservice: 
      storageClass: "vsphere-volume"
      size: "1Gi"
    database: 
      storageClass: "vsphere-volume"
      size: "5Gi"
    redis: 
      storageClass: "vsphere-volume"
      size: "5Gi"

무사히 PV 첨부로 배포된 것이었습니다.



 し ま 이

좋은 웹페이지 즐겨찾기