k8s/client-go ライブラリを使用してアプリケーションを制御および開発しています ( https://github.com/kubernetes/client-go )。
永続ボリューム クレームのサブパスを使用すると問題が発生します。例として、私は 2 つのポッドを持ち、各コンテナーのデータを 2 つのサブパスにマウントORG1/DIR1
しORG2/DIR2
、永続的なボリューム クレーム ( efs file
) を使用しています。詳細は次のとおりです。
apiVersion: v1
kind: Pod
metadata:
name: my-lamp-site
spec:
containers:
- name: mysql
image: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "rootpasswd"
volumeMounts:
- mountPath: /var/lib/mysql
name: site-data
subPath: ORG1/DIR1
- name: php
image: php:7.0-apache
volumeMounts:
- mountPath: /var/www/html
name: site-data
subPath: ORG1/DIR2
volumes:
- name: site-data
persistentVolumeClaim:
claimName: hpc-vinhha-test
そして、このポッドを削除するために呼び出すと、現在、k8s はポッドのみを削除し、core lib は 上のポッドのデータを削除しませんpersistent volume claim
。なので、PVCのデータはゴミとなってどんどん大きくなっていきます。
サブパス内のすべてのデータORG1/DIR1
とORG1/DIR2
ポッドが削除されたときに削除したい。
これは pvc のファイル yaml です:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"efs-claim","namespace":"default"},"spec":{"accessModes":["ReadWriteMany"],"resources":{"requests":{"storage":"5Gi"}},"storageClassName":"efs-sc"}}
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
creationTimestamp: "2020-07-10T04:02:51Z"
finalizers:
- kubernetes.io/pvc-protection
name: efs-claim
namespace: default
resourceVersion: "887409"
selfLink: /api/v1/namespaces/default/persistentvolumeclaims/efs-claim
uid: ab66c2f7-744c-4d6f-a508-2bc90f0b1897
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: efs-sc
volumeMode: Filesystem
volumeName: efs-pv-shared
status:
accessModes:
- ReadWriteMany
capacity:
storage: 5Gi
phase: Bound
それで、この問題を手伝ってくれませんか。私は k8s と aws-efs の初心者だからです。だから、私はそれについてあまり経験がありません:(
ありがとうございます。