ロードバランサー
始める前に
このセクションの環境を準備してください:
~$prepare-environment exposing/load-balancer
これにより、ラボ環境に以下の変更が適用されます:
- AWS Load Balancer Controllerに必要なIAMロールを作成します
これらの変更を適用するTerraformはこちらで確認できます。
Kubernetesはサービスを使用してポッドをクラスター外に公開します。AWSでサービスを使用する最も一般的な方法の1つは、LoadBalancerタイプを使用することです。サービス名、ポート、ラベルセレクタを宣言するシンプルなYAMLファイルを使用することで、クラウドコントローラーが自動的にロードバランサーをプロビジョニングします。
apiVersion: v1
kind: Service
metadata:
name: search-svc # サービスの名前
spec:
type: LoadBalancer
selector:
app: SearchApp # ポッドはapp=SearchAppというラベルでデプロイされています
ports:
- port: 80
アプリケーションの前にロードバランサーを配置する方法がシンプルなため、これは素晴らしいことです。サービス仕様は長年にわたってアノテーションと追加設定で拡張されてきました。もう1つの選択肢は、イングレスルールとイングレスコントローラーを使用して、外部トラフィックをKubernetesポッドにルーティングすることです。

このチャプターでは、レイヤー4ネットワークロードバランサーを使用して、EKSクラスターで実行されているアプリケーションをインターネットに公開する方法を紹介します。