我很惊讶。
我有一个演出和制作环境。两种环境具有相同的部署,服务,入口,防火墙规则,并且都在200
上使用/
。
但是,在打开暂存环境并配置了相同的入口之后,暂存服务失败,并显示Some backend services are in UNKNOWN state
。生产仍在进行中。
前端和后端吊舱都已在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
答案 0 :(得分:1)
我认为这是一个错误。我创建了一个新群集,无法复制。如果有人再次遇到这种情况,我建议尝试一个新的群集。
答案 1 :(得分:1)
昨天甚至是本指南https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer
没有用。不知道发生了什么,但甚至等待了30分钟以上,入侵正在报告未知的后端状态。
24小时后,情况似乎好多了。 L7 http ingress可以正常工作,但是报告健康后端的延迟很大。
答案 2 :(得分:0)
您是否仍然遇到此问题?
我尝试按照以下Google公共文档进行复制:Setting up HTTP Load Balancing with Ingress进行部署:
使用示例Web应用程序容器映像的Web App,该映像在端口8080上的HTTP服务器上侦听:
但是,它现在似乎正在工作。因此,如果您仍然遇到此问题,请考虑使用public issue对kubernetes / ingress-gce提交Google issue-tracking tool。包含尽可能多的细节,包括要重现的步骤,以便使此问题更清晰可见,并提供更多采样。
请注意:
问题跟踪程序User Content and Conduct Policy详细介绍了不适合提交给问题跟踪程序的信息类型,其中包括敏感的个人信息和垃圾邮件。请不要在问题跟踪工具中提交不适当的内容。
回购输出$ kubectl describe ing
sunny@test-dev:~$ kubectl describe ing basic-ingress
Name: basic-ingress
Namespace: default
Address: xx.xxx.xxx.228
Default backend: web:8080 (10.8.2.6:8080)
Rules:
Host Path Backends
---- ---- --------
* * web:8080 (10.8.2.6:8080)
Annotations:
target-proxy: k8s-tp-default-basic-ingress--f5636f071d87exxx
url-map: k8s-um-default-basic-ingress--f5636f071d87exxx
backends: {"k8s-be-31544--f5636f071d87exxx":"HEALTHY"}
forwarding-rule: k8s-fw-default-basic-ingress--f5636f071d87exxx
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Service 7m (x376 over 2d) loadbalancer-controller default backend set to web:31544
答案 3 :(得分:0)
如果它是在更改集群的可伸缩性设置之后开始发生的:
删除并重新创建 Ingress 资源可能会有所帮助-就我而言,它几乎可以立即对其进行修复。
我遵循的步骤:
kubectl delete ingress <faulty_ingress>
kubectl apply -f <my_ingress.yaml>
答案 4 :(得分:0)
对我有用的是删除和重新创建BackendConfig。