開源身份和訪問管理方案之keycloak(三)keycloak健康檢查(k8s)

文章目錄

  • 開源身份和訪問管理方案之keycloak(三)
    • keycloak健康檢查
      • 啟用運行狀況檢查
    • 健康檢查使用
      • Kubernetes下健康檢查
      • Dockerfile 中 HEALTHCHECK 指令 健康檢查
      • Docker HEALTHCHECK 和 Kubernetes 探針

開源身份和訪問管理方案之keycloak(三)

keycloak健康檢查

官方文檔:https://www.keycloak.org/observability/health

Keycloak 內置了對健康檢查的支持。本指南介紹如何啟用和使用 Keycloak 運行狀況檢查。 默認情況下,Keycloak 運行狀況檢查在管理端口 9000 上公開。

啟用運行狀況檢查

以使用構建時選項 health-enabled 啟用運行狀況檢查:

默認情況下,運行狀況終端節點不會返回任何檢查。

bin/kc.[sh|bat] build --health-enabled=true

在這里插入圖片描述

bin/kc.sh start-dev --health-enabled=true

配置完成后,

# curl -fsS http://localhost:9000/health
{"status": "UP","checks": []
}

Keycloak 公開了 4 個運行狀況端點:

  • /health/live
  • /health/ready
  • /health/started
  • /health

請參閱 Quarkus SmallRye Health 文檔,了解有關每個端點含義的信息。

Keycloak 使用 Quarkus 構建,而健康檢查功能由 Quarkus SmallRye Health 提供。

這意味著 Keycloak 并沒有自己從頭開始實現健康檢查功能,而是使用了 Quarkus 提供的 SmallRye Health 組件。

健康檢查使用

建議通過外部 HTTP 請求來監控健康端點。由于安全措施,Keycloak 容器鏡像中移除了 curl 等軟件包,因此基于本地命令的監控將無法輕松實現。

如果將KeyCloak部署在容器中,則由于前面提到的安全措施,必須從外部運行此命令。例如:

curl --head -fsS http://localhost:9000/health/ready

Kubernetes下健康檢查

定義一個 HTTP 探針,以便 Kubernetes 可以從外部監控健康端點。不要使用存活命令。

Dockerfile 中 HEALTHCHECK 指令 健康檢查

Kubernetes 探針是 Kubernetes 層面的健康檢查機制。HEALTHCHECK 是 Docker 層面的健康檢查機制。

HEALTHCHECK 指令定義了一個命令,這個命令會在容器運行時定期執行。目的是檢查容器內部的應用程序是否健康運行。

keycloak 容器默認情況下沒有安裝任何命令行 HTTP 客戶端工具(比如 curl)。這意味著你無法直接使用 HEALTHCHECK 指令來發送 HTTP 請求,從而檢查 Keycloak 服務是否正常響應。

建議你安裝 curl 這個工具。安裝方法可以參考 Keycloak 官方提供的容器運行指南。

注意: 安裝額外的工具(比如 curl)可能會降低容器的安全性。你需要權衡一下便利性和安全性。

以下是一個簡單的 HEALTHCHECK 示例,它使用 curl 命令檢查容器內的 Web 服務是否正常運行:

HEALTHCHECK --interval=5s --timeout=3s --retries=3 \CMD curl -f http://localhost/ || exit 1  

在這個例子中:
每 5 秒執行一次健康檢查。
如果 curl 命令在 3 秒內未完成,則視為超時。
如果連續 3 次檢查失敗,容器會被標記為不健康。
注意事項
命令返回值:健康檢查命令必須返回 0(成功)或 1(失敗),其他返回值會被視為失敗。

指令解析

  • HEALTHCHECK:Dockerfile 中的指令,用于定義容器的健康檢查機制。
  • –interval=5s:設置健康檢查的時間間隔為 5 秒。Docker 會每 5 秒執行一次健康檢查命令。
  • –timeout=3s:設置健康檢查命令的超時時間為 3 秒。如果命令在 3 秒內未完成,則視為超時。
  • –retries=3:設置健康檢查失敗的重試次數為 3 次。如果連續 3 次檢查失敗,容器會被標記為不健康。
  • CMD curl -f http://localhost/ || exit 1:定義健康檢查的命令。curl -f 會嘗試訪問 http://localhost/,如果請求失敗(返回非 2xx 狀態碼),curl 會返回非零值,觸發 exit 1,表示健康檢查失敗。
    -f 是一個常用的選項,全稱為 --fail。它的作用是讓 curl 在 HTTP 請求失敗時(即服務器返回的狀態碼為 400 或更高)返回一個非零的退出碼,而不是正常返回。

Docker HEALTHCHECK 和 Kubernetes 探針

在這里插入圖片描述

HEALTHCHECK 可以用于容器內部的簡單檢查,而 Kubernetes 探針用于集群層面的健康管理。

在 Kubernetes 中,通常建議優先使用 Kubernetes 探針,因為它更靈活且與 Kubernetes 功能深度集成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76941.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76941.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76941.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FATFS備忘

概述 FATFS文件系統可以掛載SD卡也可以掛載FLASH eMMC等設備 SD卡需要格式化為FAT32模式 塊大小默認即可 移植 SD卡 SD卡扇區大小是 512B SD卡 SDIO模式 可以直接在cubeMX里一鍵設置 先設置好SD卡的設置 這個是選擇支持中文 其余是默認 這個是檢測引腳可以留空 當SD卡插入拔出…

唯美社區源碼AM社區同款源碼

源碼介紹 唯美社區源碼AM社區同款源碼 后端修改application.properties文件內容為你的數據庫 前端修改/config/config.js文件內容為你的后端地址 這兩個文件里要修改的地方我已經用中文標注出來了 截圖 源碼免費下載 唯美社區源碼AM社區同款源碼

現代Web應用的多標簽選擇組件:設計哲學與工程實踐

引言:標簽選擇的重要性與挑戰 在信息爆炸時代,標簽系統已成為內容組織的核心基礎設施。研究表明: 使用標簽系統的平臺用戶留存率提高35% 良好的標簽選擇體驗可提升內容發現效率58% 80%的用戶更傾向于使用提供可視化標簽選擇的應用 本文將…

P3799 小 Y 拼木棒

題目背景 上道題中,小 Y 斬了一地的木棒,現在她想要將木棒拼起來。 題目描述 有 n 根木棒,現在從中選 4 根,想要組成一個正三角形,問有幾種選法? 答案對 1097 取模。 輸入格式 第一行一個整數 n。 第…

Perl 條件語句

Perl 條件語句 引言 在編程中,條件語句是執行分支邏輯的關鍵部分。Perl 作為一種強大的腳本語言,提供了豐富的條件語句,使得開發者能夠根據不同的條件執行不同的代碼塊。本文將深入探討 Perl 中的條件語句,包括 if、unless、els…

流量特征分析-蟻劍流量分析

任務: 木馬的連接密碼是多少 這是分析蟻劍流量,可能是網站的,wireshark過濾http 追蹤流http得到 1就是連接密碼 flag{1}黑客執行的第一個命令是什么 取最后的執行命令。base64解密得 除了id不是蟻劍自帶的命令,其他的都是&…

問題1:Sinal 4在開啟PAC檢查的設備崩潰

? 問題信息 硬件不支持PAC(Pointer Authentication),此類錯誤就是signal 11的錯誤,崩潰信息如下: Build fingerprint: google/sdk_gphone64_arm64/emu64a:16/BP22.250221.010/13193326:userdebug/dev-keys Revision: 0 ABI: arm64 Timestamp: 2025-04-06 11:33:13.923…

FreeRTOS移植筆記:讓操作系統在你的硬件上跑起來

一、為什么需要移植? FreeRTOS就像一套"操作系統積木",但不同硬件平臺(如STM32、ESP32、AVR等)的CPU架構和外設差異大,需要針對目標硬件做適配配置。移植工作就是讓FreeRTOS能正確管理你的硬件資源。 二、…

【C++11(下)】—— 我與C++的不解之緣(三十二)

前言 隨著 C11 的引入,現代 C 語言在語法層面上變得更加靈活、簡潔。其中最受歡迎的新特性之一就是 lambda 表達式(Lambda Expression),它讓我們可以在函數內部直接定義匿名函數。配合 std::function 包裝器 使用,可以…

JavaScript中的Proxy詳解

1. 什么是Proxy? Proxy是ES6引入的一個強大特性,它允許你創建一個對象的代理,從而可以攔截和自定義該對象的基本操作。Proxy提供了一種機制,可以在對象的基本操作,如屬性查找、賦值、枚舉、函數調用等之前或之后執行自…

【git】VScode修改撤回文件總是出現.lh文件,在 ?所有 Git 項目 中全局忽略特定文件

VScode里面powershell被迫關閉 場景解決辦法 場景 系統:Windows IDE:Visual Studio Code 一旦修改代碼,就算撤回也會顯示 解決辦法 第一步:“C:\Users\用戶名字.gitignore_global”:在該路徑下新建.gitignore_glo…

為什么 LoRA 梯度是建立在全量參數 W 的梯度之上

🧠 首先搞清楚 LoRA 是怎么做微調的 我們原來要訓練的參數矩陣是 W W W,但 LoRA 說: 別動 W,我在它旁邊加一個低秩矩陣 Δ W U V \Delta W UV ΔWUV,只訓練這個部分! 也就是說,LoRA 用一個…

Nginx負載均衡時如何為指定ip配置固定服務器

大家在用Nginx做負載均衡時,一般是采用默認的weight權重指定或默認的平均分配實現后端服務器的路由,還有一種做法是通過ip_hash來自動計算進行后端服務器的路由,但最近遇到一個問題,就是希望大部分用戶采用ip_hash自動分配后端服務…

Llama 4 家族:原生多模態 AI 創新的新時代開啟

0 要點總結 Meta發布 Llama 4 系列的首批模型,幫用戶打造更個性化多模態體驗Llama 4 Scout 是有 170 億激活參數、16 個專家模塊的模型,同類中全球最強多模態模型,性能超越以往所有 Llama 系列模型,能在一張 NVIDIA H100 GPU 上運…

【硬件開發技巧】如何通過元器件絲印反查型號

目錄 一、在線數據庫查詢 二、官方資料匹配 三、專業軟件輔助 四、實物比對與場景推斷 五、社區與人工支持 注意事項 一、在線數據庫查詢 專業元器件平臺 Digi-Key、Mouser、ICMaster等平臺支持直接輸入絲印代碼檢索,可獲取芯片型號、技術文檔及替代型號。例如…

【算法/c++】利用中序遍歷和后序遍歷建二叉樹

目錄 題目:樹的遍歷前言題目來源樹的數組存儲基本思想存儲規則示例 建樹算法關鍵思路代碼總代碼 鏈表法 題目:樹的遍歷 前言 如果不是完全二叉樹,使用數組模擬樹,會很浪費空間。 題目來源 本題來自 PTA 天梯賽。 題目鏈接: 樹…

李臻20242817_安全文件傳輸系統項目報告_第6周

安全文件傳輸系統項目報告(第 1 周) 1. 代碼鏈接 Gitee 倉庫地址:https://gitee.com/li-zhen1215/homework/tree/master/Secure-file 代碼結構說明: project-root/├── src/ # 源代碼目錄│ ├── main.c # 主程序入口│ ├…

嵌入式rodata段

在嵌入式軟件開發中,將數據放入只讀數據段(.rodata)具有以下好處及典型應用示例: 好處 數據保護 .rodata段的內容在程序運行時不可修改,防止意外或惡意篡改,提升系統穩定性。 節省RAM資源 只讀數據可直接…

InfoSec Prep: OSCP靶場滲透

InfoSec Prep: OSCP InfoSec Prep: OSCP ~ VulnHubInfoSec Prep: OSCP, made by FalconSpy. Download & walkthrough links are available.https://www.vulnhub.com/entry/infosec-prep-oscp,508/ 1,將兩臺虛擬機網絡連接都改為NAT模式 2,攻擊機上做…

【JavaWeb-Spring boot】學習筆記

目錄 <<回到導覽Spring boot1. http協議1.1.請求協議1.2.響應協議 2.Tomcat2.1.請求2.1.1.apifox2.1.2.簡單參數2.1.3.實體參數2.1.4.數組集合參數2.1.5.日期參數2.1.6.(重點)JSON參數2.1.7.路徑參數 2.2.響應2.3.綜合練習 3.三層架構3.1.三層拆分3.2.分層解耦3.3.補充 &…