日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:226日期: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
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
青青在线精品| 成人亚洲一区二区| 91高清一区| 91精品国产调教在线观看 | 99成人在线视频| 精品一区二区三区在线观看视频| 欧美黄色一区二区| 麻豆久久一区| 国产精品久久久久蜜臀| 欧洲精品一区二区三区| а√天堂8资源在线| 亚洲www啪成人一区二区| 91精品国产福利在线观看麻豆| 日本精品不卡| 香蕉久久精品| 在线精品小视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲理论在线| 国产亚洲精品精品国产亚洲综合| 国产精品欧美一区二区三区不卡| 国产精品视频一区二区三区四蜜臂 | 蜜臀久久99精品久久久久久9| 首页亚洲欧美制服丝腿| 日韩精品三级| 精品欧美日韩精品| 久久美女精品| 亚洲综合色婷婷在线观看| 午夜精品福利影院| 国产精品99精品一区二区三区∴| 精品午夜久久| 精品中文字幕一区二区三区av| 伊人久久婷婷| 日韩精品亚洲一区二区三区免费| 卡一卡二国产精品| 亚洲成av人片一区二区密柚| 蜜臀久久久99精品久久久久久| 国产伦理久久久久久妇女| 不卡一二三区| 久久av一区| 你懂的网址国产 欧美| 欧美日韩一二| 91福利精品在线观看| 福利欧美精品在线| 欧美女激情福利| 国产精品红桃| 狂野欧美性猛交xxxx| 久久免费国产| 国产情侣一区| 精精国产xxxx视频在线野外| 久久一二三区| 国产福利资源一区| 亚洲性色视频| 日本午夜精品一区二区三区电影| 乱一区二区av| 亚洲黄页一区| 久久这里只有精品一区二区| 狠狠久久婷婷| 日韩一区二区三区高清在线观看| 精品国产午夜| 亚洲我射av| а√天堂8资源中文在线| 一区二区高清| 婷婷综合六月| 久久精品xxxxx| 精品在线播放| 久久久久九九精品影院| 99热精品在线| 伊人久久av| 欧美在线日韩| 久久xxxx精品视频| 亚洲爱爱视频| 欧美激情视频一区二区三区在线播放| 视频小说一区二区| 国产精品羞羞答答在线观看| 午夜在线一区二区| 国产成人1区| 久久国产三级精品| 夜夜嗨一区二区| 超碰在线99| 麻豆国产欧美一区二区三区| 亚洲资源网站| 国产亚洲永久域名| 伊人久久高清| 精品国产亚洲一区二区三区| 日韩精品视频网站| 石原莉奈一区二区三区在线观看| 在线观看精品| 久久精品二区亚洲w码| 丝袜美腿高跟呻吟高潮一区| 人人精品亚洲| 国产一区二区三区免费在线| 亚洲精选av| 欧美日韩视频| 亚洲a一区二区三区| 日韩av免费大片| 国产极品嫩模在线观看91精品| 亚洲精品美女91| 亚洲中午字幕| 视频一区中文| 久久精品动漫| 特黄特色欧美大片| 国产一区二区三区国产精品| 91精品视频一区二区| 免费观看在线综合| 亚洲色诱最新| 亚洲一卡久久| 久久精品免费一区二区三区| 捆绑调教日本一区二区三区| 麻豆传媒一区二区三区| 国产精品一区二区av日韩在线| 日韩一二三区在线观看| 一区二区日韩免费看| 蜜臀av一区二区三区| 先锋影音久久久| 性欧美精品高清| 亚洲一区黄色| 中文精品在线| 丝袜美腿成人在线| 天堂网在线观看国产精品| 欧美一区二区三区高清视频| 日本欧美不卡| 美女毛片一区二区三区四区| 欧美性感美女一区二区| 久久精品不卡| 不卡av一区二区| 天堂成人国产精品一区| 亚洲综合欧美| 亚洲精品免费观看| 国产色噜噜噜91在线精品| 国产乱码精品| 久草精品视频| 日韩免费一区| 国产专区一区| 成人av二区| 亚洲综合欧美| 日韩精品第二页| 国产精久久久| 性欧美videohd高精| 精品一区亚洲| 一区二区三区四区日韩| 欧美有码在线| 欧美91在线|欧美| 欧美激情国产在线| 国产在线日韩| 亚洲精品欧美| 美女精品久久| 久久精品欧美一区| 噜噜噜躁狠狠躁狠狠精品视频| 久久国产精品久久w女人spa| 日韩免费精品| 久久精品欧洲| 久久要要av| 丝袜a∨在线一区二区三区不卡| 日欧美一区二区| 欧美激情福利| 99久久夜色精品国产亚洲1000部| 亚洲一区二区三区四区五区午夜| 日韩不卡一二三区| 福利片在线一区二区| 91久久亚洲| 国产日韩免费| 91精品久久久久久久久久不卡| 丝袜诱惑制服诱惑色一区在线观看| 亚洲精品观看| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 欧美好骚综合网| 黄色国产精品| 91成人在线网站| 亚洲播播91| 亚洲字幕久久| 国产在线不卡一区二区三区| 好吊一区二区三区| 国产精品美女在线观看直播| 日韩另类视频| 综合视频一区| 国产a亚洲精品| 久久aⅴ国产紧身牛仔裤| 久久99青青| 91久久黄色| 你懂的国产精品| 99在线观看免费视频精品观看| 国产欧美91| 九九综合在线| 久久中文欧美| 中文字幕日韩高清在线| 97在线精品| 日韩和欧美一区二区| 免费在线小视频| 日韩精品视频网站| 日韩久久精品网| 欧美亚洲综合视频| 激情久久久久久| 国产精品极品在线观看| 亚洲国产一区二区三区在线播放| 国产日产精品_国产精品毛片| 亚洲二区在线| 久久99久久久精品欧美| 亚洲免费高清| 韩国女主播一区二区三区| 视频一区二区欧美|