web-dev-qa-db-ja.com

nginxリバースプロキシを使用してKubernetesでサービスを公開する

私はKubernetesを初めて使用するため、Kubernetesで実行されているサービスを外部に公開する方法を理解したいと考えました。クラスター上のNodePortを使用して公開しました。たとえば、サービスはホストのポート31234を公開し、 https:// kubeserverIP:31234 を介して別のサーバーからサービスにアクセスできます。

私が達成したいのは、 http://service.example.com などのURLを介して、(Kubeの制御外の別のサーバー上の)nginxを通じてこのサービスを提供することです。サービスを指すアップストリームでnginxをデプロイしようとしましたが、機能せず、不正なゲートウェイエラーが発生します。

ここに欠けているものはありますか?または、これを達成するより良い方法があります。

Kubernetesクラスターのベアメタルインストールがあり、gceロードバランサーまたは他のベンダーLBにアクセスできません。

ありがとう

8
vin84

正しい方向を指し示してくれてありがとう。

基本的な手順は大まかに次のとおりです。

  1. アプリとそのサービス定義を作成します。

  2. イングレスのネームスペースを作成します。

  3. Ingressルールで定義されていないすべてのリクエストをリダイレクトするためのデフォルトのバックエンド展開とサービスを作成します。これらをイングレス空間で作成します
  4. Nginx入力コントローラー展開を作成します。
  5. RBACルールを作成します。
  6. 最後に、パスとポートを使用してアプリケーションの入力ルールを作成します。

詳細を説明した非常に有用なガイドを見つけました: https://akomljen.com/kubernetes-nginx-ingress-controller/

5
vin84

あなたはほとんどそこにいます!次のステップは、 入力コントローラー をセットアップすることです。 こちら をチェックアウトできるNGINX Ingressコントローラープラグインがあります。

編集:以下に設定例を示します: https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example

5
jonfriesen