資格試験には出ない範囲なので先延ばしにしていたが、PVとPVCのバインドは動的にできる、という話を聞いていたものの自分でやったことがなかったのでやってみた。
要はラベルでできる。
まずPVはこんな感じ。
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv1-testing-result
labels:
record: testing-result
上記のように最初からlabelsに組み込めばいいけど、自分の場合は、元々あったリソースを流用したのでコマンドでラベルを追加した。
oc label pv pv1-testing-result record=testing-result
続いてPVCは次のような感じにした。
アプリ側はapp=my-testingのようなラベルで紐付けさせたいと思い、PVにつけていたラベルとは別のラベルもつけた。
こうしないと、oc delete all -l my-testingのようにしてまとめて消した時にPVも削除対象になってしまうので、ちょっと違うかなあと思ってわけているけどそれは運用にもよるのだろうね。
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc1-testing-result
labels:
record: testing-result
app: my-testing
あとは最近やっとfield-selectorも使えるようになった。
selectorはよく読むとラベルに対するクエリをかけるものだったので、それ以外に対してはこのセレクターを使う必要がある様子。
oc delete pod --field-selector status.phase=Succeeded
資格は取れてもやっぱりまだまだだなあという感じ。