一个简单的模块,允许您轻松地将健康端点添加到您的Flask应用程序
项目描述
Flask-Healthz
在您的Flask应用程序中定义端点,Kubernetes可以使用这些端点作为存活和就绪探针。
设置方法
蓝图
在您的Flask应用程序上注册蓝图
from flask import Flask
from flask_healthz import healthz
app = Flask(__name__)
app.register_blueprint(healthz, url_prefix="/healthz")
定义您想要用来检查健康的函数。要指示错误,请抛出 flask_healthz.HealthError
。
from flask_healthz import HealthError
def liveness():
pass
def readiness():
try:
connect_database()
except Exception:
raise HealthError("Can't connect to the database")
现在将那些函数指向Flask配置
HEALTHZ = {
"live": "yourapp.checks.liveness",
"ready": "yourapp.checks.readiness",
}
您可以直接在配置中设置可调用对象,因此您可以编写类似以下内容:
HEALTHZ = {
"live": lambda: None,
}
检查端点是否真正工作
$ curl http://localhost/yourapp/healthz/live
{"status": 200, "title": "OK"}
$ curl http://localhost/yourapp/healthz/ready
{"status": 200, "title": "OK"}
现在您可以配置Kubernetes或OpenShift来检查这些端点。
扩展
您还可以使用提供的Flask扩展来注册 healthz
蓝图
from flask import Flask
from flask_healthz import Healthz
app = Flask(__name__)
Healthz(app)
其余的配置是相同的。
扩展有一个额外的选项,no_log
,可以禁用健康端点处理的HTTP请求的日志记录,以避免在Web日志文件中自动请求的混乱。目前仅支持gunicorn Web服务器。
Healthz(app, no_log=True)
示例
以下是一个如何在OpenShift的deploymentconfig
中使用flask-healthz的示例
kind: DeploymentConfig
spec:
[...]
template:
[...]
spec:
containers:
- name: yourapp
[...]
livenessProbe:
httpGet:
path: /healthz/live
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 1
readinessProbe:
httpGet:
path: /healthz/ready
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 1
已设置flask-healthz的一些项目
- Noggin: https://github.com/fedora-infra/noggin/pull/287
- FASJSON: https://github.com/fedora-infra/fasjson/pull/81
许可
版权所有 2020-2021 Red Hat
Flask-Healthz的许可与Flask本身相同:BSD 3条款。
项目详情
关闭
flask_healthz-1.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b25bfd8606950a77632925cfbbf19cac20650be51fc0efbe78c387e559e2541 |
|
MD5 | beab3f58f1ca17767cff0615c622b5fd |
|
BLAKE2b-256 | 6ea34566a5059d8ac22a8be35b34f22b0e6c02997a6e7c85cddcbf4f49f303a9 |
关闭
flask_healthz-1.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 208e1f35d12d70bca623ac2dd9de17813c397f9f0a0c09aa746b4a543c75615d |
|
MD5 | c87b45e29a4b59a01feda4a9a90caa1c |
|
BLAKE2b-256 | fd4290a825d7f90332b298c670fa78adfad4c401a3dcab41873b8f3e096ad958 |