У меня есть кластер EKS, в котором есть один демон, который монтирует ведро s3 ко всем модулям.
Всякий раз, когда возникает какая-либо проблема или модуль перезапускается, том монтирования недоступен и выдает следующую ошибку.
Transport endpoint is not connected
Чтобы устранить эту ошибку, мне нужно вручную размонтировать том и перезапустить демон.
umount /mnt/data-s3-fuse
Что может быть постоянным решением этой проблемы?
Мой файл демона
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
labels:
app: s3-provider
name: s3-provider
namespace: airflow
spec:
template:
metadata:
labels:
app: s3-provider
spec:
containers:
- name: s3fuse
image: image
lifecycle:
preStop:
exec:
command: ["/bin/sh","-c","umount -f /opt/airflow/dags"]
securityContext:
privileged: true
capabilities:
add:
- SYS_ADMIN
# use ALL entries in the config map as environment variables
envFrom:
- configMapRef:
name: s3-config
volumeMounts:
- name: devfuse
mountPath: /dev/fuse
- name: mntdatas3fs
mountPath: /opt/airflow/dags:shared
volumes:
- name: devfuse
hostPath:
path: /dev/fuse
- name: mntdatas3fs
hostPath:
path: /mnt/data-s3-fuse
и мой стручок yaml
apiVersion: v1
kind: Pod
metadata:
name: test-pd
namespace: airflow
spec:
containers:
- image: nginx
name: s3-test-container
securityContext:
privileged: true
volumeMounts:
- name: mntdatas3fs
mountPath: /opt/airflow/dags:shared
livenessProbe:
exec:
command: ["ls", "/opt/airflow/dags"]
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 1
volumes:
- name: mntdatas3fs
hostPath:
path: /mnt/data-s3-fuse
Я использую приведенный ниже код для предохранителя s3 kubernetes.
-f -d
. - person Andrew Gaul   schedule 19.11.2020