私はバックエンドにポート32656(KuPortnetesタイプのNodePortサービス)を実行するKubernetesノードを持っています。トラフィックを許可するために<node_ip>:32656
のファイアウォールルールを作成した場合、このアドレスのブラウザでバックエンドを開くことができます:http://<node_ip>:32656
。HTTPロードバランサをバックエンドにリンクできません(502 Bad Gateway)
ここで達成しようとしているのは、HTTPロードバランサを作成し、それを上記のバックエンドにリンクすることです。私は必要なインフラストラクチャを作成するために次のスクリプトを使用します。
#!/bin/bash
GROUP_NAME="gke-service-cluster-61155cae-group"
HEALTH_CHECK_NAME="test-health-check"
BACKEND_SERVICE_NAME="test-backend-service"
URL_MAP_NAME="test-url-map"
TARGET_PROXY_NAME="test-target-proxy"
GLOBAL_FORWARDING_RULE_NAME="test-global-rule"
NODE_PORT="32656"
PORT_NAME="http"
# instance group named ports
gcloud compute instance-groups set-named-ports "$GROUP_NAME" --named-ports "$PORT_NAME:$NODE_PORT"
# health check
gcloud compute http-health-checks create --format none "$HEALTH_CHECK_NAME" --check-interval "5m" --healthy-threshold "1" --timeout "5m" --unhealthy-threshold "10"
# backend service
gcloud compute backend-services create "$BACKEND_SERVICE_NAME" --http-health-check "$HEALTH_CHECK_NAME" --port-name "$PORT_NAME" --timeout "30"
gcloud compute backend-services add-backend "$BACKEND_SERVICE_NAME" --instance-group "$GROUP_NAME" --balancing-mode "UTILIZATION" --capacity-scaler "1" --max-utilization "1"
# URL map
gcloud compute url-maps create "$URL_MAP_NAME" --default-service "$BACKEND_SERVICE_NAME"
# target proxy
gcloud compute target-http-proxies create "$TARGET_PROXY_NAME" --url-map "$URL_MAP_NAME"
# global forwarding rule
gcloud compute forwarding-rules create "$GLOBAL_FORWARDING_RULE_NAME" --global --ip-protocol "TCP" --ports "80" --target-http-proxy "$TARGET_PROXY_NAME"
をしかし、私はフロントエンドの構成では、パブリックIPを介してアクセスするロードバランサからの次の応答を得る:
Error: Server Error
The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
ヘルスチェックが残っていますデフォルト値:(/
および80
)であり、バックエンドサービスはすぐにステータス200
で応答します。
また、ソースとすべてのポート(tcp
)を受け入れ、ターゲットを指定しない(つまりすべてのターゲット)ファイアウォールルールを作成しました。
(インスタンスグループ内で)選択したポートに関係なく、同じ結果(Server Error
)が得られることを考慮すると、問題はHTTPロードバランサの設定のどこかにあるはずです。 (健康診断の可能性がありますか?)
フロントエンドとバックエンドのリンクを完成させるには、何が欠けていますか?
実際のHTTP応答コードは何ですか? 5xx? – jarmod
502 Bad Gateway –
ヘルスチェックを診断しますか? https://cloud.google.com/compute/docs/load-balancing/http/backend-service#health_checking – jarmod