質問: ### 実現したいこと kubernetes を使って SSL 化された web アプリを公開したい。 ### 現在の状況 Docker の image は作成済みです。 また、単純に http で公開することはできました。 しかし、SSL 化するため Ingress というものを挟んで行おうとするとうまく行きません。 ### うまく行かない箇所 サービスの公開を NodePort で行うのですが、下記に記載の通り EXTERNAL IP が none になってしまいます。 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hoge-brdcs NodePort 10.55.243.11 8080:31642/TCP 31m ここが原因で Ingress からサービスに繋がってないと考えています。 Ingress 側では 「Some backend services are in UNKNOWN state 」 のように出ています。 ### 最後に 上記を解決いただければ嬉しいのですが、他に SSL 化する方法などございましたらご教授ください。
回答: Ingressを利用する場合は以下のような構成となるはずで、グローバルIPは Ingress に対して設定することになります [Ingress]<->[NodePort(Service)]<->[Webサーバー] なので、インターネットに公開されているのは Ingress となるので、Service の EXTERNAL-IP は none の状態が正しいです "Some backend services are in UNKNOWN state" とエラーが出ているのは、何らかの原因で Ingress の spec.backend で設定しているサービスが見つけられないからだと考えられます 以下を確認してみてください * Ingress の spec.backend.serviceName と、Service の metadata.name が同じ値に設定されているか * Ingress の spec.backend.servicePort と Service の spec.ports が同じ値に設定されているか 詳細はこちらの記事の説明がわかりやすかったです https://codezine.jp/article/detail/10523 仮に Ingress が上手くいかない場合は、Webサーバーの Pod に SSL 証明書を設定したものを利用すればできると思います この場合だと SSL 証明書の更新の度に Webサーバーを全てアップデートする必要があるので手間がかかります