ポッドの再起動またはシャットダウン時にポッドの状態を維持できる新しい Kubernetes デプロイメントを作成しようとしています。背景として、Kubernetes インスタンスはマネージド型の Amazon EKS クラスターであり、ポッドにマウントされた Amazon EFS でバックアップされた永続ボリュームを取り込もうとしています。
残念ながら、PV は/etc/
希望どおりにマウントされますが、ブート中に変更されたいくつかのファイルを除いて、内容はほとんど空です。
展開 yaml は次のようになります。
kind: Deployment
apiVersion: apps/v1
spec:
replicas: 1
selector:
matchLabels:
app: testpod
template:
metadata:
creationTimestamp: null
labels:
app: testpod
spec:
volumes:
- name: efs
persistentVolumeClaim:
claimName: efs
containers:
- name: testpod
image: 'xxxxxxxxxxxx.dkr.ecr.us-east-2.amazonaws.com/testpod:latest'
args:
- /bin/init
ports:
- containerPort: 443
protocol: TCP
resources: {}
volumeMounts:
- name: efs
mountPath: /etc
subPath: etc
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
securityContext:
capabilities:
add:
- ALL
restartPolicy: Always
terminationGracePeriodSeconds: 60
dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler
何がうまくいかないのかについてのアイデアはありますか?/etc/ に画像の内容が入力されると思います。
編集:
これは、同じイメージを使用してDockerで正常に機能しているようで、でボリュームを作成してdocker volume create <name>
からマウントし-v <name>:/etc
ます。