びっくりしました。
ステージング環境と本番環境があります。両方の環境のデプロイメント、サービス、イングレス、ファイアウォール ルールは同じで、両方とも を提供し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
ベストアンサー1
昨日もこのガイドhttps://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer
動作しませんでした。何が起こったのかわかりませんが、30 分以上待っても、イングレスはバックエンドに対して UNKNOWN 状態を報告していました。
24 時間後、状況は大幅に改善されたようです。L7 http イングレスは機能しますが、正常なバックエンドの報告に大きな遅延が生じます。