Member-only story
Kubernetes ingressについて(前半)
Kubernetes ingressについての記事です長いので前半と後半に分けています。Kubernetesでアプリケーションをエクスポーズする方法などを見ていきます。
https://banzaicloud.com/blog/k8s-ingress/?utm_source=blog&utm_medium=rss&utm_campaign=blog_rss
外部ソースからのトラフィックを、Kubernetesクラスタにデプロイされた内部サービスに向けてルーティングする必要があることがよくあります。これにはいくつかの方法がありますが、最も一般的なのは Serviceリソースを使用するか、HTTP(S)ワークロードの場合は Kubernetes Ingress APIを使用する方法です。後者は最終的にK8s 1.19でGAとマークされる予定なので、今回この記事ではどういうことが利用可能か、どのような代替手段があるのか、そして今後のKubernetesのバージョンでは一般的なingressの将来はどうなるのかを見ていきたいと思います。
How to expose applications in Kubernetes
通常、アプリケーションを内部または外部に公開するために Service リソースを使用します。これらは、分散されたトラフィックを利用可能なポッドに自動的にルーティングするアプリケーションのエントリポイントを設定します。ポッドは行ったり来たりする傾向があるので、ある瞬間に実行されているポッドのセットは、後の時点でそのアプリケーションを実行しているポッドのセットとは異なる可能性があります。
Serviceリソースは、より汎用的に使用できるようにタイプ別に分けられています。最も一般的に使用される3つのタイプは、 ClusterIP、NodePort、およびLoadBalancerです。それぞれがサービスをエクスポーズする異なる方法を提示し、さまざまな状況においてとても便利なものです。
・ ClusterIP: クラスタ内部IPでService をエクスポーズします。この値を選択すると、Service はクラスタ内でのみアクセス可能になります。これが既定の ServiceType です。
・ NodePort: 各ノードのIP上のサービスを静的ポートでエクスポーズします。NodePort Serviceルートに向けた ClusterIP Serviceが自動的に作成されます。<NodeIP>:<NodePort>をリクエストすることで、クラスタの外部からNodePort Service にアクセスできるようになります。
・ LoadBalancer:クラウドプロバイダーのロードバランサーを使用してサービスを外部にエクスポーします。NodePortサービスとClusterIPサービスは、外部のロードバランサーに向けたルートが自動的に作成されます。
ClusterIP は通常、内部的にサービスをエクスポーズするために使用され、NodePort と LoadBalancer は外部的にサービスをエクスポーズするために使用されます。Service リソースは基本的に…