これを実行するには、Kubernetes APIサーバーを呼び出すことができます。次の例を考えてみましょう:
fbgrecojr/office-hours:so-47848488
FROM centos:latest
COPY pre-stop.sh/
RUN chmod +x /pre-stop.sh
NOTEため
--- apiVersion: v1 kind: Pod metadata: name: multi-container-completion spec: containers: - name: long-running-process image: fbgrecojr/office-hours:so-47848488 command: ["sleep", "1000"] - name: short-running-process image: fbgrecojr/office-hours:so-47848488 command: ["sleep", "1"] lifecycle: preStop: exec: command: ["/pre-stop.sh"]
pre-stop.sh
#!/bin/bash
curl \
-X DELETE \
-H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \
--cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \
https://kubernetes.default.svc.cluster.local/api/v1/namespaces/$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)/pods/$HOSTNAME
Dockerfile
:私はきちんとので、これをテストすることができませんでしたフックは、私のローカルMinikube設定では動作していないようです。この問題が私にローカライズされていない場合は、対応する問題を追跡することができますhere。