- Getting Started with Kubernetes(Second Edition)
- Jonathan Baier
- 297字
- 2021-07-02 22:51:30
Life cycle hooks or graceful shutdown
As you run into failures in real-life scenarios, you may find that you want to take additional action before containers are shutdown or right after they are started. Kubernetes actually provides life cycle hooks for just this kind of use case.
The following example controller definition defines both a postStart action and a preStop action to take place before Kubernetes moves the container into the next stage of its life cycle (you can refer to more details about this in point 1 in the References section at the end of the chapter):
apiVersion: v1
kind: ReplicationController
metadata:
name: apache-hook
labels:
name: apache-hook
spec:
replicas: 3
selector:
name: apache-hook
template:
metadata:
labels:
name: apache-hook
spec:
containers:
- name: apache-hook
image: bitnami/apache:latest
ports:
- containerPort: 80
lifecycle:
postStart:
httpGet:
path: http://my.registration-server.com/register/
port: 80
preStop:
exec:
command: ["/usr/local/bin/apachectl","-k","graceful-
stop"]
Listing 2-11: apache-hooks-controller.yaml
You'll note for the postStart hook, we define an httpGet action, but for the preStop hook, I define an exec action. Just as with our health checks, the httpGet action attempts to make an HTTP call to the specific endpoint and port combination, while the exec action runs a local command in the container.
The httpGet and exec actions are both supported for the postStart and preStop hooks. In the case of preStop, a parameter named reason will be sent to the handler as a parameter. See the following table for valid values:

It's important to note that hook calls are delivered at least once. Therefore, any logic in the action should gracefully handle multiple calls. Another important note is that postStart runs before a pod enters its ready state. If the hook itself fails, the pod will be considered unhealthy.
- 大數(shù)據(jù)管理系統(tǒng)
- LabVIEW虛擬儀器從入門到測控應用130例
- Go Machine Learning Projects
- Python Artificial Intelligence Projects for Beginners
- Windows程序設計與架構
- Photoshop CS3圖像處理融會貫通
- Windows內核原理與實現(xiàn)
- Photoshop CS3圖層、通道、蒙版深度剖析寶典
- CompTIA Linux+ Certification Guide
- Docker on Amazon Web Services
- DevOps Bootcamp
- 統(tǒng)計挖掘與機器學習:大數(shù)據(jù)預測建模和分析技術(原書第3版)
- Unity Multiplayer Games
- 電氣控制及Micro800 PLC程序設計
- PowerPoint 2010幻燈片制作高手速成