#kubernetes-pod #persistent-volumes
Вопрос:
Я пытаюсь настроить развертывание с постоянным томом. файлы конфигураций теряются после монтирования. чтобы решить эту проблему, я обновил образ докера для хранения файлов в другом месте, и при создании модуля файлы будут скопированы с помощью скрипта
apiVersion: apps/v1
kind: Deployment
metadata:
name: oracledb
labels:
app: oracledb
spec:
selector:
matchLabels:
app: oracledb
strategy:
type: Recreate
template:
metadata:
labels:
app: oracledb
spec:
containers:
- env:
- name: DB_SID
value: ORCLCDB
- name: DB_PDB
value: pdb
- name: DB_PASSWD
value: pwd
- name: DB_DOMAIN
value: local
- name: DB_BUNDLE
value: basic
image: oracledb
imagePullPolicy: IfNotPresent
name: oracledb
#без спящего командного поста стартовый крюк вышел со 126
command: ['sh', '-c', ' sleep 600']
lifecycle:
postStart:
exec:
command: ['sh', '-c', 'sleep 10 ; /opt/poststart.sh']
ports:
- containerPort: 1521
name: sqlnet
protocol: TCP
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 2
periodSeconds: 2
successThreshold: 1
tcpSocket:
port: 1521
timeoutSeconds: 1
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /opt/oracle/oradata
name: oradata
- mountPath: /opt/poststart.sh
subPath: poststart.sh
name: hookvolume
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: regsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 54321
runAsUser: 54321
terminationGracePeriodSeconds: 30
volumes:
- name: oradata
persistentVolumeClaim:
claimName: oradata
- name: hookvolume
configMap:
name: poststarthook
defaultMode: 0777
---
kind: ConfigMap
apiVersion: v1
metadata:
name: poststarthook
data:
poststart.sh: |
#!/bin/sh
while [ ! -d /opt/oracle/files ];
do
sleep 1
done
if [ ! -d "/opt/oracle/oradata/ORCLCDB" ]; then
cp -rp /opt/oracle/files/. /opt/oracle/oradata;
fi
таким образом, без спящего командного поста стартовый крючок вышел со 126:
9m20s Normal Started pod/oracledb-55f69b7644-2s86w Started container oracledb
9m20s Warning FailedPostStartHook pod/oracledb-55f69b7644-2s86w Exec lifecycle hook ([sh -c sleep 10 ; /opt/poststart.sh]) for Container "oracledb" in Pod "oracledb-55f69b7644-2s86w_ds-persist(fe8f63e0-a9c6-4688-a926-e2d7ef07ab5c)" failed - error: command 'sh -c sleep 10 ; /opt/poststart.sh' exited with 126: , message: "cannot exec in a stopped state: unknownrn"
9m20s Normal Killing pod/oracledb-55f69b7644-2s86w FailedPostStartHook
4m55s Warning BackOff pod/oracledb-55f69b7644-2s86w Back-off restarting failed container
and when I add it as mentioned in the yaml file, the pod remains Running 0/1
NAME READY STATUS RESTARTS AGE
oracledb-56f94f7b8f-8j8gg 0/1 Running 39 6h31m
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Unhealthy 52s (x11668 over 6h30m) kubelet Readiness probe failed: dial tcp :1521: connect: connection refused
any solutions or suggestions please to resolve the issues
either the copy approach / the exited 126 or status