kubernetes - GKE 中的执行探针
问题描述
我正在尝试使用 exec 探针在 GKE 中进行准备和活跃。这是因为它是 Kubernetes推荐的对 gRPC 后端进行健康检查的方法的一部分。但是,当我将 exec 探针配置放入我的部署 yaml 并应用它时,它在 GCP 中不起作用。这是我的容器 yaml:
- name: rev79-uac-sandbox
image: gcr.io/rev79-232812/uac:latest
imagePullPolicy: Always
ports:
- containerPort: 3011
readinessProbe:
exec:
command: ["bin/grpc_health_probe", "-addr=:3011"]
initialDelaySeconds: 5
livenessProbe:
exec:
command: ["bin/grpc_health_probe", "-addr=:3011"]
initialDelaySeconds: 10
但是健康检查仍然失败,当我在 GCP 控制台中查看健康检查配置时,我看到一个简单的 HTTP 健康检查指向“/”
当我在 GCP 控制台中编辑运行状况检查时,似乎没有任何方法可以选择 exec 类型。此外,与就绪检查相比,我看不到任何提及活动检查的内容,即使它们是单独的 Kubernetes 事物。
谷歌云是否支持使用 exec 进行健康检查?如果是这样,我该怎么做?如果没有,我该如何检查 gRPC 服务器的运行状况?
解决方案
当我们使用gRPC 服务而不是使用 HTTP 探针时, TCP 探针很有用。
- containerPort: 3011
readinessProbe:
tcpSocket:
port: 3011
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 3011
initialDelaySeconds: 15
periodSeconds: 20
kubelet 将尝试在指定端口上为您的容器打开一个套接字。如果可以建立连接,则认为容器是健康的,如果不能,则认为是失败 define-a-tcp-liveness-probe
推荐阅读
- javascript - 无法将点击事件附加到反应组件内的锚标记
- reactjs - 你可以在单个功能组件中多次调用 React 的 useState 和 useCallback 吗?如果是这样,它是如何工作的?
- angular - 出现错误:模块“DynamicTestModule”使用 jest+spectator angular 9 声明的意外值“未定义”
- xpath - 如何从 XML 导入 Google 表格中的所有元素节点
- c++ - 返回的指向 C++ 对象的链接是什么样的
- c# - 当我调用“static void Example(int example)”和稍后调用“Example(Example);”时 变量不变
- python - 为什么 NaT 数据类型没有响应为 NaN?
- android - 查找对 AppCompatDialogFragment 的引用
- python - 在 Python scipy 中实现线法求解 PDE,性能与 Matlab 的 ode15s 相当
- java - 使用 olingo2 更新同一 PUT 和导航链接中的父实体和子实体