成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

nginx pod hook鉤子優雅關閉示例詳解

瀏覽:170日期:2023-03-13 15:37:57
目錄
  • 一.系統環境
  • 二.前言
  • 三.pod hook(pod鉤子)
  • 四.如何優雅的關閉nginx pod

一.系統環境

服務器版本docker軟件版本Kubernetes(k8s)集群版本CPU架構CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12v1.21.9x86_64

Kubernetes集群架構:k8scloude1作為master節點,k8scloude2,k8scloude3作為worker節點

服務器操作系統版本CPU架構進程功能描述k8scloude1/192.168.110.130CentOS Linux release 7.4.1708 (Core)x86_64docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calicok8s master節點k8scloude2/192.168.110.129CentOS Linux release 7.4.1708 (Core)x86_64docker,kubelet,kube-proxy,calicok8s worker節點k8scloude3/192.168.110.128CentOS Linux release 7.4.1708 (Core)x86_64docker,kubelet,kube-proxy,calicok8s worker節點

二.前言

本文介紹pod hook(pod鉤子)和如何優雅的關閉nginx pod。

管理pod的前提是已經有一套可以正常運行的Kubernetes集群,關于Kubernetes(k8s)集群的安裝部署,可以查看博客《Centos7 安裝部署Kubernetes(k8s)集群》https://www.jb51.net/article/266741.htm

三.pod hook(pod鉤子)

為容器的生命周期事件設置處理函數,Kubernetes 支持 postStart 和 preStop 事件。 當一個容器啟動后,Kubernetes 將立即發送 postStart 事件;在容器被終結之前, Kubernetes 將發送一個 preStop 事件。容器可以為每個事件指定一個處理程序。

pod hook:目前pod3容器里運行的是nginx進程,在啟動容器的時候,除了主進程,還想啟動一個進程,怎么辦?這時候就需要使用pod hook(pod 鉤子),pod hook有兩個選項:

  • postStart:容器啟動之后執行XXXX,和主進程是同時運行起來的,并沒有先后順序;
  • preStop:在容器關閉之前執行XXXX

postStart例子:容器啟動之后執行"/bin/sh","-c","date >> /tmp/bb.txt",打印日期到/tmp/bb.txt文件

[root@k8scloude1 pod]# vim pod3.yaml 
[root@k8scloude1 pod]# cat pod3.yaml 
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod3
  name: pod3
spec:
  terminationGracePeriodSeconds: 0
  containers:
  - image: nginx
    command: ["sh","-c","date > /tmp/aa.txt ; sleep 10000"]
    imagePullPolicy: IfNotPresent
    name: n1
    resources: {}
    lifecycle:
      postStart:
exec:
  command: ["/bin/sh","-c","date >> /tmp/bb.txt"]
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
[root@k8scloude1 pod]# kubectl apply -f pod3.yaml 
pod/pod3 created
[root@k8scloude1 pod]# kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
pod3    1/1     Running   0  8s

查看文件可以發現,/tmp/aa.txt /tmp/bb.txt 時間是一致的,就說明兩個命令是同時運行的,證明了postStart:容器啟動之后執行XXXX,和主進程是同時運行起來的,并沒有先后順序。

[root@k8scloude1 pod]# kubectl exec -it pod3 -- bash
root@pod3:/# cat /tmp/aa.txt /tmp/bb.txt 
Thu Jan 13 07:40:24 UTC 2022
Thu Jan 13 07:40:24 UTC 2022
root@pod3:/# exit
exit
#刪除pod
[root@k8scloude1 pod]# kubectl delete -f pod3.yaml 
pod "pod3" deleted

現在添加preStop處理函數:在容器關閉之前執行"/bin/sh","-c","date >> /tmp/bb.txt ; sleep 100",打印日期到/tmp/bb.txt文件,并休眠100秒。

[root@k8scloude1 pod]# vim pod4.yaml 
[root@k8scloude1 pod]# cat pod4.yaml 
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod3
  name: pod3
spec:
  terminationGracePeriodSeconds: 600
  containers:
  - image: nginx
    command: ["sh","-c","date > /tmp/aa.txt ; sleep 10000"]
    imagePullPolicy: IfNotPresent
    name: n1
    resources: {}
    lifecycle:
      postStart:
exec:
  command: ["/bin/sh","-c","date >> /tmp/bb.txt"]
      preStop:
exec:
  command: ["/bin/sh","-c","date >> /tmp/bb.txt ; sleep 100"]
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
[root@k8scloude1 pod]# kubectl apply -f pod4.yaml 
pod/pod3 created
[root@k8scloude1 pod]# kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
pod3    1/1     Running   0  7s

運行一段時間后,刪除pod,在容器關閉之前執行preStop的命令,preStop執行完成之后,主程序還要運行10000秒,但是寬限期terminationGracePeriodSeconds只有600s,所以600秒之后pod被刪除

[root@k8scloude1 pod]# kubectl delete pod pod3 
pod "pod3" deleted
^C
#強制刪除pod
[root@k8scloude1 pod]# kubectl delete pod pod3 --force
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "pod3" force deleted

四.如何優雅的關閉nginx pod

說明: 當一個 Pod 被刪除時,執行kubectl get pod 命令會展示這個 Pod 的狀態為 Terminating(終止)。 這個 Terminating 狀態并不是 Pod 階段之一。 Pod 被賦予一個可以體面終止的期限,默認為 30 秒。 你可以使用 --force 參數來強制終止 Pod。

由于nginx默認是fast shutdown,關閉的時間一般小于30秒,如果想優雅的關閉nginx,可以在關閉容器之前運行nginx -s quit ,達到優雅的關閉nginx的效果

[root@k8scloude1 pod]# vim pod5.yaml 
#preStop處理函數指定在容器關閉之前執行"/bin/sh","-c","/usr/sbin/nginx -s quit"
[root@k8scloude1 pod]# cat pod5.yaml 
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod5
  name: pod5
spec:
  terminationGracePeriodSeconds: 600
  containers:
  - image: nginx
    command: ["sh","-c","date > /tmp/aa.txt ; sleep 10000"]
    imagePullPolicy: IfNotPresent
    name: n1
    resources: {}
    lifecycle:
      postStart:
exec:
  command: ["/bin/sh","-c","date >> /tmp/bb.txt"]
      preStop:
exec:
  command: ["/bin/sh","-c","/usr/sbin/nginx -s quit"]
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
[root@k8scloude1 pod]# kubectl apply -f pod5.yaml 
pod/pod5 created
[root@k8scloude1 pod]# kubectl get pod
NAME   READY   STATUS    RESTARTS   AGE
pod5   1/1     Running   0  5s
[root@k8scloude1 pod]# kubectl delete pod pod5 
pod "pod5" deleted
^C
[root@k8scloude1 pod]# kubectl delete pod pod5 --force
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "pod5" force deleted

以上就是nginx pod hook鉤子優雅關閉示例詳解的詳細內容,更多關于nginx pod hook鉤子關閉的資料請關注其它相關文章!

標簽: Nginx
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲综合日本| 女人天堂亚洲aⅴ在线观看| 亚洲性视频h| 国产成人精品免费一区二区| 1区2区3区精品视频| 欧美大片在线观看一区| 精品视频一区二区不卡| 色婷婷国产精品综合在线观看| 最近看过的日韩成人| 欧美高清视频一区| www..com久久爱| 国产精品中文欧美| 久久精品99久久久| 日本vs亚洲vs韩国一区三区二区| 自拍偷拍亚洲欧美日韩| 亚洲国产精品传媒在线观看| 久久久亚洲欧洲日产国码αv| 在线不卡中文字幕| 欧美精品免费视频| 欧美日韩久久一区| 老牛国产精品一区的观看方式| 亚洲性人人天天夜夜摸| 欧美午夜不卡| 国产日韩亚洲欧美综合| 久久99九九99精品| 色网站国产精品| 一卡二卡三卡日韩欧美| 亚洲欧美一区二区三区国产精品| 欧美日韩国产影片| 欧美一级免费大片| 精品日韩欧美一区二区| 欧美精品一区二区三区在线 | 91精品国产综合久久国产大片| 欧美人xxxx| 欧美精品一区男女天堂| 亚洲欧美在线高清| 日韩中文字幕亚洲一区二区va在线 | 久久久精品性| 精品欧美久久久| 亚洲精品国产高清久久伦理二区| 久久99久久99| 在线精品一区二区| 欧美伦理影视网| 国产清纯白嫩初高生在线观看91| 奇米四色…亚洲| 欧美精品入口| 免费观看在线色综合| 3751色影院一区二区三区| 久久蜜桃精品| 久久久久欧美| 亚洲欧美日韩精品综合在线观看 | 欧美欧美全黄| 成人黄色免费短视频| 午夜成人在线视频| 日韩美女啊v在线免费观看| 中文字幕欧美日本乱码一线二线| 欧美一区亚洲二区| 午夜成人免费电影| 国产精品毛片高清在线完整版| 久久久噜噜噜久久狠狠50岁| 欧美/亚洲一区| 久久精品国产一区二区三| 国产欧美精品国产国产专区| 欧美专区亚洲专区| 欧美日韩一区综合| 国产高清久久久| 国产欧美日韩在线观看| 久久久久久久综合| 欧美性色黄大片| 亚洲一区二区在线免费观看| av综合在线播放| 日韩主播视频在线| 午夜日韩激情| 亚洲素人一区二区| 2021久久国产精品不只是精品| 91麻豆自制传媒国产之光| 亚洲最大成人综合| 欧美日韩另类一区| 亚洲一区二区三区三| 国产三级精品视频| 欧美久久一二三四区| 欧美午夜视频| 亚洲一区免费视频| 欧洲中文字幕精品| 国产成人自拍高清视频在线免费播放| 欧美日韩中文国产| 日韩电影免费在线观看网站| 老司机午夜精品视频在线观看| 日韩精品一卡二卡三卡四卡无卡| 久久亚洲欧洲| 麻豆一区二区三区| 欧美高清视频不卡网| 国产河南妇女毛片精品久久久| 欧美一激情一区二区三区| av一区二区久久| 国产精品久久毛片a| 在线亚洲欧美| 奇米一区二区三区| 欧美丰满少妇xxxbbb| 国产91在线观看| 在线综合+亚洲+欧美中文字幕| 成人午夜激情在线| 欧美国产乱子伦| 亚洲久久一区| 免费在线看成人av| 日韩一区二区视频在线观看| 成人ar影院免费观看视频| 中文成人综合网| 国产欧美日韩在线播放 | 欧美va亚洲va香蕉在线| 粉嫩aⅴ一区二区三区四区 | 成人午夜电影久久影院| 国产色综合久久| 亚洲一区二区在| 韩国av一区二区| 久久久久久一级片| 亚洲一区国产一区| 国精产品一区一区三区mba视频| 久久久久久久久久久久久久久99| 亚洲区一区二区三区| 亚洲欧美日韩国产综合| 5858s免费视频成人| 91麻豆精东视频| 一区二区三区欧美久久| 欧美视频一区二| 91在线观看下载| 一区二区三区影院| 91精品啪在线观看国产60岁| 欧美精品亚洲| 日韩高清不卡在线| 欧美mv日韩mv亚洲| 国产精品美女诱惑| 国产精品一区久久久久| 国产精品天干天干在观线| 国产亚洲毛片在线| 欧美一区免费| 亚洲福利电影网| 欧美浪妇xxxx高跟鞋交| 好吊色欧美一区二区三区视频| 天天色天天操综合| 精品国精品国产| 免费永久网站黄欧美| 丁香六月综合激情| 亚洲午夜av在线| 精品国产凹凸成av人导航| 91久久黄色| 国产精品1区2区3区在线观看| 亚洲欧美在线视频观看| 欧美日韩电影在线播放| 欧美极品一区| 蜜桃久久久久久| 中文字幕在线观看不卡| 欧美精品久久一区二区三区| 在线成人av| 国产成人精品免费一区二区| 久久久美女毛片| 久久一区国产| 欧美黄污视频| 午夜精品久久久久久久蜜桃app| 久久久久亚洲蜜桃| 欧美亚洲禁片免费| 亚洲精品在线视频观看| 成人app网站| 免费xxxx性欧美18vr| 亚洲欧美自拍偷拍色图| 日韩欧美国产精品| 中文精品在线| 色综合一个色综合亚洲| 精一区二区三区| 一区二区成人在线视频| 精品日韩一区二区| 欧美亚洲日本国产| 一区二区三区福利| 99久久精品免费看国产免费软件| 国精产品一区一区三区mba桃花| 亚洲影视在线观看| 国产色产综合色产在线视频 | 一区二区三区日韩欧美| 欧美一区二区三区免费视频| 国产亚洲精品久久飘花| 欧美在线1区| 国内不卡的二区三区中文字幕 | 久久精品综合网| 欧美日韩国产三级| 国产日韩精品久久| 一区二区三区国产在线| 亚洲国产综合视频在线观看| 国产拍揄自揄精品视频麻豆| 欧美一区二区三区在线观看视频 | 99久久精品免费| 久久精品久久综合| 亚洲午夜影视影院在线观看| 久久久不卡网国产精品二区| 在线电影一区二区三区| aa级大片欧美三级| 国产精品v欧美精品∨日韩| 国产精品 欧美精品| 天天操天天色综合| 欧美bbbbb| 一个色综合网站|