如何通过OCI云控制器管理器覆盖Kubernetes Service的健康检查端口与端点
解决OCI负载均衡器健康检查端口与端点修改问题
你已经找对了方向——通过给LoadBalancer Service添加OCI专属注解就能覆盖默认的健康检查配置,具体操作如下:
确认并完善Service配置
你的frontend-service.yaml里已经添加了正确的健康检查注解,只需确保这些注解没有拼写错误,完整配置如下:# frontend-service.yaml apiVersion: v1 kind: Service metadata: name: frontend-service annotations: service.beta.kubernetes.io/oci-load-balancer-shape: "flexible" service.beta.kubernetes.io/oci-load-balancer-internal: "false" service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "2" service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "8" # 健康检查核心配置 service.beta.kubernetes.io/oci-load-balancer-health-check-protocol: "HTTP" service.beta.kubernetes.io/oci-load-balancer-health-check-port: "80" service.beta.kubernetes.io/oci-load-balancer-health-check-path: "/" labels: app: checklister-frontend spec: type: LoadBalancer selector: app: checklister-frontend ports: - protocol: TCP port: 80 targetPort: 80应用更新后的Service配置
执行kubectl命令更新Service:kubectl apply -f frontend-service.yaml验证配置生效
- 通过kubectl查看Service的注解是否正确应用:
在输出的kubectl describe service frontend-serviceAnnotations部分确认三个健康检查注解存在且配置正确。 - 登录OCI控制台,找到对应的负载均衡器,查看后端集的健康检查配置:确认协议为HTTP、端口为80、路径为
/,等待几分钟后观察健康状态是否恢复正常。
- 通过kubectl查看Service的注解是否正确应用:
补充说明
OCI Cloud Controller Manager默认会使用kubelet的10256端口/healthz端点做健康检查,你的集群因为IPv6配置问题导致该端点返回healthy: false,替换为应用的80端口/端点后,就能绕过这个IPv6问题,直接检查应用本身的可用性。
内容的提问来源于stack exchange,提问作者Shakir
相关产品推荐
相关产品推荐

