kubernetes - GCP 负载平衡器后端状态未知
问题描述
我大吃一惊。
我有一个登台和生产环境。两种环境都有相同的部署、服务、入口、防火墙规则,并且都提供一个200
./
但是,在打开暂存环境并配置相同的入口后,暂存服务失败并显示 Some backend services are in UNKNOWN state
. 生产仍在进行中。
前端和后端 Pod 都已在 GKE 上准备就绪。我已经手动测试了健康检查,当我访问时它们通过了/
。
我在日志或 gcp 文档中看不到任何指向正确方向的内容。我可能打破了什么?
ingress.yaml
:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fanout-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "STATIC-IP"
spec:
backend:
serviceName: frontend
servicePort: 8080
tls:
- hosts:
- <DOMAIN>
secretName: staging-tls
rules:
- host: <DOMAIN>
http:
paths:
- path: /*
backend:
serviceName: frontend
servicePort: 8080
- path: /backend/*
backend:
serviceName: backend
servicePort: 8080
frontend.yaml
:
apiVersion: v1
kind: Service
metadata:
labels:
app: frontend
name: frontend
namespace: default
spec:
ports:
- nodePort: 30664
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: frontend
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
generation: 15
labels:
app: frontend
name: frontend
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
selector:
matchLabels:
app: frontend
minReadySeconds: 5
template:
metadata:
labels:
app: frontend
spec:
containers:
- image: <our-image>
name: frontend
ports:
- containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 3
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 3
解决方案
昨天连本指南https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer
没用。不知道发生了什么,但即使等待 30 分钟 + 入口正在报告后端的 UNKNOWN 状态。
24 小时后,情况似乎好多了。L7 http 入口有效,但报告健康后端有很大延迟。
推荐阅读
- python - Python每组插入连续数字
- swift - SwiftUI macOS Xcode 样式工具栏
- reactjs - 想要在 redux 中的状态更改时重新渲染表行
- angular - FormArray 和 formGroup 中的 Angular Material mat-select
- javascript - Video-React:handleStateChange 被多次调用,而它应该只被调用一次
- reactjs - 如何使用外部 css 在 Reactjs 中设置背景图像?
- xamarin - 我应该在创建 Xamarin 对象的类的签名中使用 BindingBase 而不是 Binding 吗?
- android - channel 或 mutablesharedflow ,哪个是已弃用的 localbroadcastmanager 的更好替代品
- git - 如何完成或修改有关合并冲突的消息?
- r - 如何在系统发育树上调整尖端标签相对于树尖端的位置?