Kubernetesでは、サービスは、ネットワーク経由でポッドのグループを公開するのに役立つ抽象化です。 サービスは、サービスによって公開されるポッドのドメイン名を提供し、ポッド間の負荷分散を実装します。 このトピックでは、サービスの仕組みとLoadBalancerサービスの設定に関する注意事項について説明します。 このトピックでは、さまざまな種類のサービスを選択してアプリケーションを公開する方法についても説明します。
前提条件
ACKサーバーレスクラスターが作成されます。 詳細については、「ACK Serverlessクイックスタート」をご参照ください。
背景情報
Kubernetesでは、サービスはポッドの論理セットとポッドへのアクセスに使用されるポリシーを定義する抽象化です。 このパターンはマイクロサービスと呼ばれます。 ラベルセレクターは、サービスによってアクセスされるポッドのセットを決定するために使用されます。
Kubernetesクラスターの各ポッドには、独自のIPアドレスがあります。 ただし、ポッドは頻繁に作成および削除されます。 したがって、ポッドを外部アクセスに直接公開することは、高可用性を確保するための規則に準拠しません。 サービスはフロントエンドをバックエンドから切り離します。 フロントエンドクライアントは、どのバックエンドポッドが使用されるかを認識する必要はない。 これは、緩く分離されたマイクロサービスアーキテクチャを提供する。
詳細については、「Kubernetes Services」をご参照ください。
ステップ1: デプロイの作成
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[デプロイメント] ページで、右上隅の [YAMLから作成] をクリックします。
サンプルテンプレートを選択するか、カスタムテンプレートを入力し、[作成] をクリックします。
この例では、NGINXアプリケーションの展開テンプレートが選択されています。
apiVersion: apps/v1 kind: 配置 メタデータ: name: nginx-deployment-basic ラベル: アプリ: nginx spec: レプリカ:2 セレクタ: matchLabels: アプリ:nginx template: metadata: labels: アプリ:nginx 仕様: containers: - name: nginx image: nginx:1.7.9 # replace it with your exactly <image_name:tags> ポート: -containerPort: 80 ## このポートをサービスに公開します。
[デプロイメント] ページで、作成したデプロイメントを見つけ、デプロイメントの名前をクリックするか、[操作] 列の [詳細] をクリックします。 表示されるページで、展開のステータスを表示できます。
手順2: サービスの作成
詳細ページの左側のナビゲーションウィンドウで、 を選択します。