さまざまなデプロイ、サービス、イングレス用のyamlファイルは、以前に動作する設定を作成しました。 Ingressの小さな問題を修正しようとしましたが、動作状態に戻ることができません。
ポッドはエラーなしで起動し、サービスは稼働しています。ログにはヘルスチェックエントリがないため、問題はサービスに名前でアクセスすることにあるようです。 Ingressを作成すると、GKEインターフェースにこのイベントが表示されます(kubectl describeを使用しているときではありません)。
Error during sync: error while evaluating the ingress spec: could not find service "default/web";
サービスは確かにアップしています:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch ClusterIP None <none> 9200/TCP,9300/TCP 5h
kubernetes ClusterIP 10.31.x.x <none> 443/TCP 5h
redis-master ClusterIP 10.31.x.x <none> 6379/TCP 5h
web NodePort 10.31.x.x <none> 80:30110/TCP,443:31404/TCP 5h
websocket NodePort 10.31.x.x <none> 28080:30186/TCP 5h
サービスを再起動してnginxイングレスに変更してみました。私が残している唯一のアイデアは、クラスターを核攻撃することです。 k8s内部DNSが壊れているかのようです。
私はRailsアプリが実行されていました。force_ssl
Rails=構成です。これは、httpリクエストをhttpsにリダイレクトすることだけだと思っていましたが、これにより、サービスを提供しているポートがリセットされることがわかりました。ポートを指定する必要があるのは、 force_sslを有効にする場合: https://github.com/Rails/rails/issues/1982
ポート3000は200で応答しなくなったため、他に問題がないにもかかわらず、そのサービスは異常とマークされました。