我有一个带有uwsgi和gevent的flask应用程序。
这是我的app.ini如何在kubernetes上编写readinessProbe和livenessProbe来检查 flask 应用程序?

[uwsgi]
socket = /tmp/uwsgi.sock
chdir = /usr/src/app/
chmod-socket = 666
module = flasky
callable = app
master = false
processes = 1
vacuum = true
die-on-term = true
gevent = 1000
listen = 1024

最佳答案

我认为您真正要问的是“如何对uWSGI应用程序进行健康检查”。有一些示例工具可以执行此操作。尤其:

  • https://github.com/andreif/uwsgi-tools
  • https://github.com/che0/uwping
  • https://github.com/m-messiah/uwget
  • uwsgi-tools项目似乎在https://github.com/andreif/uwsgi-tools/issues/2#issuecomment-345195583上具有最完整的示例。在Kubernetes Pod规范上下文中,这可能最终看起来像:
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        test: liveness
      name: liveness-exec
    spec:
      containers:
      - name: myapp
        image: myimage
        livenessProbe:
          exec:
            command:
            - uwsgi_curl
            - -H
            - Host:host.name
            - /path/to/unix/socket
            - /health
          initialDelaySeconds: 5
          periodSeconds: 5
    

    这也将假定您的应用程序将/health响应为运行状况端点。

    07-24 13:46