Member-only story

Azure Kubernetes ServiceへのNGINXの設定

gavin.zhou
15 min readDec 22, 2022

--

この記事では、Kubernetes(K8S)のIngressオブジェクトについて詳しく書いています。いくつかの例でそれがどのように使用できるかを見ていきます。その後、Azure Kubernetes Service (AKS) を使って NGINX Ingress コントローラをセットアップする方法を順を追って説明します。

KubernetesにおけるIngressとは?

K8SにおけるIngressとは、クラスタの外からクラスタ内のサービスにアクセスできるようにするオブジェクトです。

kubernetes.ioの公式ドキュメントでは、Ingressについて説明されています。

クラスタ内のサービスに対する外部からのアクセスを管理する API オブジェクトで、通常は HTTP です。イングレスを導入すると、ロードバランシング、SSLターミネーション、名前ベースのバーチャルホストが利用できます。

トラフィックのルーティングは、イングレス・リソースに指定されたルールによって定義されます。

Ingressオブジェクトとは、クラスタサービスにHTTPやHTTPSのトラフィックを通すことを指します。他のポートやプロトコルを外部に公開することはありません。このためには、LoadBalancerまたはNodePortのサービスタイプを使用する必要があります。

サービスとは、Podの論理セットに対する外部インターフェイスです。サービスはクラスタにローカルな「仮想IPアドレス」を使用し、外部サービスはIngressがなければこれらのIPアドレスにアクセスする方法がありません。

Ingress, LoadBalancer, NodePort

Ingress、LoadBalancer、およびNodePortはすべて、K8Sクラスタ内のサービスを外部で利用できるように公開するための方法です。

NodePortとLoadBalancerでは、サービスのタイプにその値を指定することでサービスを公開することができます。

NodePortを使うと、K8Sは各ノード上の特定のポートを指定されたサービスに割り当てます。クラスタがそのポートで受け取ったリクエストは、単純にそのサービスに転送されます。

LoadBalancerを使う際には、パブリックIPアドレスを提供するために、K8Sクラスタの外部に外部サービスを用意する必要があります。Azureの場合は、Azure Kubernetes Service(AKS)クラスターの前にあるAzure Application…

--

--

No responses yet