#kubernetes #kubernetes-pod
#kubernetes #kubernetes-pod
Вопрос:
Мой код приведен ниже вместе со всеми журналами. Короче говоря, мой модуль инициализации, похоже, пытается запустить мой setup.sh файл, который находится в конфигурационной карте, прежде чем он будет смонтирован в модуль инициализации. Есть ли у кого-нибудь какие-либо указания относительно того, в чем может быть проблема?
развертывание:
apiVersion: apps/v1
kind: Deployment
metadata:
name: two-containers
labels:
app: stockai
spec:
selector:
matchLabels:
app: stockai
template:
metadata:
labels:
app: stockai
spec:
volumes:
- name: shared-data
emptyDir: {}
initContainers:
- name: init-myservice
image: alpine
command:
- "sh -c 'sleep 60; /app/setup.sh'"
volumeMounts:
- name: shared-data
mountPath: /pod-data
configmap
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
name: stock-ai-init-config
name: stock-ai-init-config
namespace: trading
data:
setup.sh: |
apk update
apk upgrade
apk add git
git clone git@github.com:****/****/****
предустановка модуля
apiVersion: settings.k8s.io/v1alpha1
kind: PodPreset
metadata:
name: stock-ai-init
spec:
selector:
matchLabels:
app: stockai
volumeMounts:
- name: setup
mountPath: "/app/setup.sh"
subPath: "setup.sh"
volumes:
- name: setup
configMap:
name: stock-ai-init-config
defaultMode: 0777
журнал kubctl
$ kubectl describe po two-containers-6d5f4b4d85-blxqj
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 5m22s default-scheduler Successfully assigned trading/two-containers-6d5f4b4d85-blxqj to minikube
Normal Created 4m32s (x4 over 5m19s) kubelet, minikube Created container init-myservice
Warning Failed 4m32s (x4 over 5m19s) kubelet, minikube Error: failed to start container "init-myservice": Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: "sh -c 'sleep 60; /app/setup.sh'": stat sh -c 'sleep 60; /app/setup.sh': no such file or directory": unknown
Normal Pulling 3m41s (x5 over 5m21s) kubelet, minikube Pulling image "alpine"
Normal Pulled 3m40s (x5 over 5m19s) kubelet, minikube Successfully pulled image "alpine"
Warning BackOff 10s (x23 over 5m1s) kubelet, minikube Back-off restarting failed container
Ответ №1:
command:
не работает docker run
, это эквивалент kubernetes CMD ["", ""]
в Dockerfile и передается в exec, а не в sh; таким образом, то, что вы хотите, это:
command:
- sh
- -c
- 'sleep 60; /app/setup.sh'
Комментарии:
1. это сработало как шарм, большое спасибо за объяснение, я действительно ценю это 🙂