私はKubernetesを初めて使用するため、Kubernetesで実行されているサービスを外部に公開する方法を理解したいと考えました。クラスター上のNodePortを使用して公開しました。たとえば、サービスはホストのポート31234を公開し、 https:// kubeserverIP:31234 を介して別のサーバーからサービスにアクセスできます。
私が達成したいのは、 http://service.example.com などのURLを介して、(Kubeの制御外の別のサーバー上の)nginxを通じてこのサービスを提供することです。サービスを指すアップストリームでnginxをデプロイしようとしましたが、機能せず、不正なゲートウェイエラーが発生します。
ここに欠けているものはありますか?または、これを達成するより良い方法があります。
Kubernetesクラスターのベアメタルインストールがあり、gceロードバランサーまたは他のベンダーLBにアクセスできません。
ありがとう
正しい方向を指し示してくれてありがとう。
基本的な手順は大まかに次のとおりです。
アプリとそのサービス定義を作成します。
イングレスのネームスペースを作成します。
詳細を説明した非常に有用なガイドを見つけました: https://akomljen.com/kubernetes-nginx-ingress-controller/
あなたはほとんどそこにいます!次のステップは、 入力コントローラー をセットアップすることです。 こちら をチェックアウトできるNGINX Ingressコントローラープラグインがあります。
編集:以下に設定例を示します: https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example