pod 生命週期hook鉤子函式
阿新 • • 發佈:2020-08-17
參考:
1、postStart
這個鉤子在建立容器之後立即執行。但是,並不能保證鉤子在容器本身的初始命令(ENTRYPOINT)之前執行。主要用於資源部署、環境準備等。
不過需要注意的是如果鉤子花費實踐過長以至於不能執行或者掛起,容器將不能達到Running狀態。
apiVersion: v1 kind: Pod metadata: name: start-hook labels: app: test spec: containers: - name: start-hook image: nginx ports: - name: nginx-port containerPort: 80 lifecycle: postStart: exec: command: ["/bin/bash", "-c", "echo before running> /postStart.txt"]
2、preStop
在容器終止之前立即呼叫此鉤子。它是阻塞的,同時也是同步的,所以只有此鉤子執行完後,才會執行刪除容器的操作
主要用於優雅關閉應用程式、通知其他系統等。如果鉤子在執行期間掛起,Pod階段將停留在Running狀態並且不會達到failed狀態
apiVersion: v1 kind: Pod metadata: name: stop-hook labels: app: test spec: containers: - name: stop-hook image: nginx ports: - name: nginx-port containerPort: 80 lifecycle: preStop: exec: command: ["/usr/sbin/nginx","-s", "quit"]