国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes(K8s)探針

這篇具有很好參考價(jià)值的文章主要介紹了Kubernetes(K8s)探針。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Kubernetes(K8s)提供了幾種類型的探針(Probes),用于運(yùn)行時(shí)檢查容器中運(yùn)行的應(yīng)用程序的健康狀態(tài)。這些探針使得Kubernetes能夠更加智能地管理容器,例如自動(dòng)重啟失敗的容器、不將流量發(fā)送到未準(zhǔn)備好接收流量的容器等。探針可以配置為執(zhí)行三種類型的檢查:HTTP GET請(qǐng)求、TCP Socket檢查、以及執(zhí)行容器內(nèi)的命令。

探針類型

Kubernetes定義了三種主要類型的探針:

  1. 存活探針(Liveness Probe):

    • 目的:確保應(yīng)用程序正在運(yùn)行。如果存活探針失敗,表示應(yīng)用不再活動(dòng),Kubernetes會(huì)根據(jù)策略重啟該容器。
    • 應(yīng)用場(chǎng)景:當(dāng)應(yīng)用因死鎖或其他原因卡住時(shí),自動(dòng)重啟可能恢復(fù)應(yīng)用。
  2. 就緒探針(Readiness Probe):

    • 目的:檢查容器是否準(zhǔn)備好接受流量。如果就緒探針失敗,表示應(yīng)用雖然正在運(yùn)行,但不應(yīng)接收請(qǐng)求,Kubernetes會(huì)停止向該容器發(fā)送請(qǐng)求,直到它準(zhǔn)備就緒。
    • 應(yīng)用場(chǎng)景:用于控制那些需要加載大量數(shù)據(jù)或配置文件的應(yīng)用,直到應(yīng)用準(zhǔn)備好接受流量前,不將請(qǐng)求路由到該容器。
  3. 啟動(dòng)探針(Startup Probe):

    • 目的:檢查容器應(yīng)用程序是否已啟動(dòng)。如果啟動(dòng)探針失敗,Kubernetes會(huì)重啟容器。一旦啟動(dòng)探針成功,就緒和存活探針將接管后續(xù)的檢查。
    • 應(yīng)用場(chǎng)景:對(duì)于啟動(dòng)時(shí)間較長(zhǎng)的應(yīng)用,確保不會(huì)因?yàn)閱?dòng)慢而被誤判為失敗狀態(tài)。

探針檢查類型

每種探針都可以配置為執(zhí)行以下類型的檢查之一:

  • HTTP GET:對(duì)指定的端口和路徑執(zhí)行HTTP GET請(qǐng)求。如果返回的狀態(tài)碼在成功的范圍內(nèi)(默認(rèn)為200-399),則認(rèn)為檢查成功。
  • TCP Socket:嘗試建立TCP連接到容器的指定端口。如果連接成功建立,則認(rèn)為檢查成功。
  • Exec:在容器內(nèi)執(zhí)行指定的命令。如果命令退出狀態(tài)碼為0,則認(rèn)為檢查成功。

配置示例

下面是一個(gè)配置存活探針和就緒探針的YAML示例:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mycontainer
    image: myimage
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 15
      timeoutSeconds: 2
      periodSeconds: 5
      failureThreshold: 3
    readinessProbe:
      exec:
        command:
        - cat
        - /tmp/ready
      initialDelaySeconds: 5
      periodSeconds: 5

在這個(gè)例子中,存活探針通過(guò)對(duì)/healthz路徑執(zhí)行HTTP GET請(qǐng)求來(lái)檢查應(yīng)用的存活狀態(tài),而就緒探針通過(guò)執(zhí)行cat /tmp/ready命令來(lái)檢查容器是否準(zhǔn)備好接受流量。

通過(guò)合理配置這些探針,可以提高應(yīng)用的穩(wěn)定性和可靠性,確保Kubernetes集群能夠更加智能地管理容器。

一個(gè)自動(dòng)檢測(cè)容器健康狀況的shell腳本例子

下面實(shí)現(xiàn)一個(gè)基于啟動(dòng)探針和存活探針的健康檢測(cè)腳本,同時(shí)包括讀取配置文件獲取IP和端口信息,以及在檢測(cè)到容器不健康時(shí)重啟容器的邏輯

#!/bin/bash

# 定義變量
namespace="your-namespace"
config_path="/path/to/your/config"
pod_label_selector="app=your-app-label"

# 讀取配置文件獲取IP和端口
ip=$(grep 'ip' $config_path | cut -d'=' -f2)
port=$(grep 'port' $config_path | cut -d'=' -f2)

# 獲取Pod名字列表
pod_names=$(kubectl get pods -n $namespace -l $pod_label_selector -o=jsonpath='{.items[*].metadata.name}')

for pod_name in $pod_names; do
    echo "Checking health for Pod: $pod_name"

    # 使用kubectl exec執(zhí)行健康檢查命令
    health_check_cmd="curl -s -o /dev/null -w '%{http_code}' http://$ip:$port/health"
    result=$(kubectl exec $pod_name -n $namespace -- bash -c "$health_check_cmd")

    # 檢查健康狀態(tài)
    if [ "$result" != "200" ]; then
        echo "Pod $pod_name is unhealthy. Restarting..."
        kubectl delete pod $pod_name -n $namespace
        # 注意:重啟Pod應(yīng)謹(jǐn)慎操作,確保符合你的應(yīng)用邏輯
        # Kubernetes的部署(Deployment)會(huì)自動(dòng)重新創(chuàng)建Pod以保持所需的副本數(shù)量
    else
        echo "Pod $pod_name is healthy."
    fi
done
說(shuō)明
  • 配置讀取:腳本首先從指定的配置文件路徑讀取應(yīng)用的IP和端口信息。這里假設(shè)配置文件中有ip=...port=...這樣的行。
  • Pod檢索:通過(guò)kubectl get pods命令和標(biāo)簽選擇器獲取目標(biāo)應(yīng)用Pod的名稱列表。
  • 健康檢查:對(duì)每個(gè)Pod執(zhí)行健康檢查命令。這個(gè)示例使用curl命令檢查應(yīng)用的/health端點(diǎn)。
  • 容器重啟:如果檢測(cè)到容器不健康(即HTTP狀態(tài)碼不是200),腳本會(huì)使用kubectl delete pod命令刪除該P(yáng)od。在Deployment等控制器管理下的Pod會(huì)自動(dòng)被重新創(chuàng)建,從而達(dá)到重啟的目的。
注意事項(xiàng)
  • 權(quán)限:執(zhí)行這個(gè)腳本需要對(duì)Kubernetes集群有足夠的權(quán)限,包括讀取Pod信息和刪除Pod的能力。
  • 安全性:在生產(chǎn)環(huán)境中,直接刪除Pod以觸發(fā)重啟可能不是最佳實(shí)踐,特別是對(duì)于那些沒(méi)有正確配置探針的應(yīng)用。最好是在應(yīng)用的Deployment配置中正確設(shè)置啟動(dòng)探針和存活探針。
  • 配置文件:確保配置文件的路徑和格式與腳本中的邏輯相匹配。如果使用不同的配置管理方式(如ConfigMap或環(huán)境變量),需要相應(yīng)調(diào)整腳本。
  • 錯(cuò)誤處理:在實(shí)際使用中,腳本應(yīng)包含更詳細(xì)的錯(cuò)誤處理邏輯,比如檢查kubectl命令的執(zhí)行結(jié)果,處理未找到Pod的情況等。

這個(gè)腳本提供了一個(gè)基礎(chǔ)的框架,可以根據(jù)實(shí)際需求進(jìn)行調(diào)整和擴(kuò)展。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-826362.html

到了這里,關(guān)于Kubernetes(K8s)探針的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    在上一篇文章中,我們學(xué)習(xí)了針對(duì)容器設(shè)置啟動(dòng)時(shí)要執(zhí)行的命令和參數(shù)、定義相互依賴的環(huán)境變量、為容器設(shè)置環(huán)境變量,三種設(shè)置方式,本篇文章,我們將繼續(xù)學(xué)習(xí)數(shù)據(jù)的傳遞。 有兩種方式可以將 Pod 和 Container 字段傳遞給運(yùn)行中的容器: 環(huán)境變量 卷文件 這兩種呈現(xiàn) Pod

    2024年01月25日
    瀏覽(526)
  • 飛天使-k8s知識(shí)點(diǎn)17-kubernetes實(shí)操2-pod探針的使用

    飛天使-k8s知識(shí)點(diǎn)17-kubernetes實(shí)操2-pod探針的使用

    探針的使用 容器探針啟動(dòng)實(shí)驗(yàn)1-啟動(dòng)探針的使用-startupprobe Liveness Probes 和 Readiness Probes 演示 若存在started.html 則進(jìn)行

    2024年02月20日
    瀏覽(30)
  • 云原生Kubernetes:K8S集群實(shí)現(xiàn)容器運(yùn)行時(shí)遷移(docker → containerd) 與 版本升級(jí)(v1.23.14 → v1.24.1)

    云原生Kubernetes:K8S集群實(shí)現(xiàn)容器運(yùn)行時(shí)遷移(docker → containerd) 與 版本升級(jí)(v1.23.14 → v1.24.1)

    目錄 一、理論 1.K8S集群升級(jí) 2.環(huán)境 3.升級(jí)策略 4.master1節(jié)點(diǎn)遷移容器運(yùn)行時(shí)(docker → containerd)? 5.master2節(jié)點(diǎn)遷移容器運(yùn)行時(shí)(docker → containerd)? 6.node1節(jié)點(diǎn)容器運(yùn)行時(shí)遷移(docker → containerd)? 7.升級(jí)集群計(jì)劃(v1.23.14 →?v1.24.1) 8.升級(jí)master1節(jié)點(diǎn)版本(v1.24.1) 9.升級(jí)master2節(jié)點(diǎn)版本

    2024年02月03日
    瀏覽(38)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授權(quán)訪問(wèn)&;容器執(zhí)行

    云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授權(quán)訪問(wèn)&;容器執(zhí)行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 執(zhí)行的命令是test03容器里的命令,需要進(jìn)行容器逃逸。 1、攻擊8080端口:API Server(Master)未授權(quán)訪問(wèn) 舊版本的k8s的API Server默認(rèn)會(huì)開啟兩個(gè)端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口無(wú)需認(rèn)證,

    2024年04月22日
    瀏覽(71)
  • 云原生Kubernetes:K8S概述

    云原生Kubernetes:K8S概述

    目錄 一、理論 1.云原生 2.K8S 3.k8s集群架構(gòu)與組件 4.K8S網(wǎng)絡(luò) 二、總結(jié) (1)概念 云原生是一種基于容器、微服務(wù)和自動(dòng)化運(yùn)維的軟件開發(fā)和部署方法。它可以使應(yīng)用程序更加高效、可靠和可擴(kuò)展,適用于各種不同的云平臺(tái)。 如果要更直接通俗的來(lái)解釋下上面的概念,云原生更

    2024年02月10日
    瀏覽(34)
  • 云原生_kubernetes(k8s)介紹

    云原生_kubernetes(k8s)介紹

    目錄 一、應(yīng)用部署方式演變 二、k8s介紹 三、k8s的組件 四、k8s中的概念 五、k8s資源管理方式 1、命令式對(duì)象管理 2、命令式對(duì)象配置 3、聲明式對(duì)象配置 在部署應(yīng)用程序的方式上,主要經(jīng)歷了三個(gè)時(shí)代: 1 、物理機(jī)部署: 互聯(lián)網(wǎng)早期,會(huì)直接將應(yīng)用程序部署在物理機(jī)上 優(yōu)點(diǎn)

    2023年04月13日
    瀏覽(104)
  • 云原生Kubernetes:K8S存儲(chǔ)卷

    云原生Kubernetes:K8S存儲(chǔ)卷

    目錄 一、理論 1.存儲(chǔ)卷 2.emptyDir 存儲(chǔ)卷 3.hostPath卷 4.NFS共享存儲(chǔ) 5.PVC 和 PV 6.靜態(tài)創(chuàng)建PV 7.動(dòng)態(tài)創(chuàng)建PV 二、實(shí)驗(yàn) ?1.emptyDir 存儲(chǔ)卷 2.hostPath卷 3.NFS共享存儲(chǔ) 4.靜態(tài)創(chuàng)建PV 5.動(dòng)態(tài)創(chuàng)建PV 三、問(wèn)題 1.生成pod一直pending 2.shoumount -e未顯示共享目錄 3.靜態(tài)創(chuàng)建pv 報(bào)錯(cuò) 4.使用 Deployment 來(lái)創(chuàng)建

    2024年02月07日
    瀏覽(33)
  • 云原生Kubernetes:K8S安全機(jī)制

    云原生Kubernetes:K8S安全機(jī)制

    目錄 一、理論 1.K8S安全機(jī)制 2.Authentication認(rèn)證 3.Authorization授權(quán) 4.Admission Control準(zhǔn)入控制 5.User訪問(wèn)案例 6.ServiceAccount訪問(wèn)案例 二、實(shí)驗(yàn) 1.Admission Control準(zhǔn)入控制 2.User訪問(wèn)案例 3.ServiceAccount訪問(wèn)案例 三、問(wèn)題 1.生成資源報(bào)錯(cuò) 2.鏡像拉取失敗 四、總結(jié) (1)概念 Kubernetes 作為一個(gè)分

    2024年02月07日
    瀏覽(29)
  • 【云原生 ? Kubernetes】認(rèn)識(shí) k8s、k8s 架構(gòu)、核心概念點(diǎn)介紹

    【云原生 ? Kubernetes】認(rèn)識(shí) k8s、k8s 架構(gòu)、核心概念點(diǎn)介紹

    目錄 一、Kubernetes 簡(jiǎn)介 二、Kubernetes 架構(gòu) 三、Kunbernetes 有哪些核心概念? 1. 集群 Cluster 2. 容器 Container 3. POD 4. 副本集 ReplicaSet 5. 服務(wù) service 6. 發(fā)布 Deployment 7. ConfigMap/Secret 8. DaemonSet 9. 核心概念總結(jié) Kubernetes 簡(jiǎn)稱 k8s,是支持云原生部署的一個(gè)平臺(tái),起源于谷歌。谷歌早在十幾

    2024年02月03日
    瀏覽(859)
  • 云原生Kubernetes:K8S常用服務(wù)端口

    目錄 一、理論 1.K8S常用服務(wù)端口號(hào) (1)K8S集群 表1?K8S集群端口 協(xié)議 端口號(hào) K8S集群 TCP 22 使用主機(jī)驅(qū)動(dòng)通過(guò)SSH進(jìn)行節(jié)點(diǎn)配置 TCP 53 集群DNS服務(wù) UDP 53 集群DNS服務(wù) TCP 2376 主機(jī)驅(qū)動(dòng)與Docker守護(hù)進(jìn)程通信的TLS端口 TCP 2379 etcd客戶端請(qǐng)求 TCP 2380 etcd節(jié)點(diǎn)通信 UDP 8472 Canal/Flannel VXLAN ove

    2024年02月10日
    瀏覽(33)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包