2019년 8월 6일 화요일

Kubeflow: Volume test

아래와 같이 해야 하는데,
dsl.ContainerOp(...).add_volume(vol).add_volume_mount(mnt)
그래서 원래는 volume claim을 아래와 같이 해야 하는데 이렇게 하면 안된다. 개별 pod은 되지만 argo workflow에서 기동되는 container에서는 할당이 안된다. claim이 안되서 계속 pending 상태로 나온다.
vol = k8s_client.V1Volume(
      name='my-volume', 
      persistent_volume_claim=
        k8s_client.V1PersistentVolumeClaimVolumeSource(
          claim_name='default/task-pv-claim'
        )
  )
결국은 아래와 같이 hostpath를 직접 붙이는 방법으로 해야 붙일 수 있다.
vol = k8s_client.V1Volume(
      name='my-volume', 
      host_path=k8s_client.V1HostPathVolumeSource(path='/home/vagrant/shared'),
  )
ls.py를 실행하면 logs에 아래와 같이 나온다.
total 48
drwxrwxr-x    2 1000     1000          4096 Apr 24 20:17 .
drwxr-xr-x    1 root     root          4096 Apr 24 20:35 ..
-rw-rw-r--    1 1000     1000         15986 Apr 24 17:52 flowlist.txt
-rw-rw-r--    1 1000     1000          3000 Apr 24 20:04 greetings.yaml
-rw-rw-r--    1 1000     1000           443 Apr 24 20:03 ls-volume-test.yaml
-rw-rw-r--    1 1000     1000          1766 Apr 24 19:48 out
-rw-rw-r--    1 1000     1000           189 Apr 24 17:28 pv-claim.yaml
-rw-rw-r--    1 1000     1000           405 Apr 24 18:09 pv-pod.yaml
-rw-rw-r--    1 1000     1000           240 Apr 24 17:24 pv.yaml

개별 pod에 volume 붙이는 방법

위에서 argo는 실패하였지만 pv-pod.yaml을 보면 개발 pod은 정상적으로 붙일 수 있다. 즉 다음과 같은 순서로 가능하다.
  1. PV를 선언하고: pv.yaml
  2. claim을 한다.: pv-claim.yaml
  3. pod에 붙인다.: pv-pod.yaml

댓글 없음:

댓글 쓰기