サービスネットワーク
Gateway API コントローラーは、VPC Lattice サービスネットワークを自動的に作成し、Kubernetes クラスター VPC と関連付けるように構成されています。サービスネットワークは、サービスディスカバリと接続性を自動的に実装するために使用される論理的な境界であり、一連のサービスにアクセスと可観測性のポリシーを適用します。VPC 内で HTTP、HTTPS、gRPC プロトコルを介したアプリケーション間の接続を提供します。現在、コントローラーは HTTP と HTTPS をサポートしています。
Gateway を作成する前に、Kubernetes リソースモデルを通じて利用可能なロードバランシング実装のタイプを GatewayClass で形式化する必要があります。Gateway API をリッスンするコントローラーは、ユーザーが Gateway か ら参照できる関連する GatewayClass リソースに依存しています。
# Create a new Gateway Class for AWS VPC lattice provider
apiVersion: gateway.networking.k8s.io/v1beta1
kind: GatewayClass
metadata:
name: amazon-vpc-lattice
spec:
controllerName: application-networking.k8s.aws/gateway-api-controller
Gateway リソースが参照するための GatewayClass 名として amazon-vpc-lattice を設定します
このクラスのゲートウェイを管理する AWS Gateway API コントローラーを指定するために、controllerName を application-networking.k8s.aws/gateway-api-controller に設定します
GatewayClass を作成しましょう:
次の YAML は VPC Lattice の サービスネットワーク に関連付けられた Kubernetes の Gateway リソースを作成します。
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: ${EKS_CLUSTER_NAME}
namespace: checkout
spec:
gatewayClassName: amazon-vpc-lattice
listeners:
- name: http
protocol: HTTP
port: 80
metadata.name を EKS_CLUSTER_NAME 環境変数に設定して、EKS クラスター名をゲートウェイ識別子として設定します
先に定義した VPC Lattice GatewayClass を参照するために gatewayClassName を amazon-vpc-lattice に設定します
この設定では、listener がポート 80 で HTTP トラフィックを受け入れることを指定しています
以下のコマンドで適用します:
eks-workshop ゲートウェイが作成されたことを確認します:
NAME CLASS ADDRESS PROGRAMMED AGE
eks-workshop amazon-vpc-lattice True 29s
ゲートウェイが作成されたら、VPC Lattice サービスネットワークを見つけます。ステータスが Reconciled になるまで待ちます(これには約5分かかる場合があります)。
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
status:
conditions:
message: 'aws-gateway-arn: arn:aws:vpc-lattice:us-west-2:1234567890:servicenetwork/sn-03015ffef38fdc005'
reason: Programmed
status: "True"
これで、AWS コンソールの Lattice リソースの下で作成された関連 サービスネットワーク を確認できます。