すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:ClusterIP サービスの作成

最終更新日:Dec 27, 2024

Kubernetes では、Pod はそれぞれ独立した IP アドレスを持っていますが、頻繁に作成および削除されるため、サービスとして直接公開するのは実用的ではありません。この問題に対処するために、サービスを使用して、マイクロサービスアーキテクチャを実装するフロントエンドコンポーネントとバックエンドコンポーネントを分離できます。このトピックでは、コンソールを使用して ClusterIP サービスを作成する方法について説明します。

前提条件

ACS クラスタが作成されていること。詳細については、ACS クラスタの作成を参照してください。

背景情報

Kubernetes では、サービスとは、Pod の論理セットと、Pod へのアクセスに使用されるポリシーを定義する抽象化です。このパターンは、マイクロサービスとして知られています。ラベルセレクターは、サービスによってアクセスされる Pod のセットを決定するために使用されます。

Kubernetes クラスタ内の各 Pod には独自の IP アドレスがあります。ただし、Pod は頻繁に作成および削除されます。したがって、Pod を外部アクセスに直接公開することは、高可用性を確保するためのルールに準拠していません。サービスは、フロントエンドをバックエンドから分離します。フロントエンドクライアントは、どのバックエンド Pod が使用されているかを認識する必要はありません。これにより、疎結合のマイクロサービスアーキテクチャが提供されます。

詳細については、Kubernetes サービスを参照してください。

手順 1: デプロイメントの作成

  1. ACS コンソールにログインします。左側のナビゲーションペインで、クラスタをクリックします。

  2. クラスタページで、管理するクラスタを見つけ、その ID をクリックします。クラスタの詳細ページの左側のナビゲーションペインで、ワークロード > デプロイメント を選択します。

  3. デプロイメントページの右上隅にあるYAML から作成をクリックします。

  4. サンプルテンプレートを選択するかカスタマイズし、作成をクリックします。

    Nginx デプロイメントのサンプルテンプレート。

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
       name: nginx-deployment-basic
       labels:
         app: nginx
    spec:
       replicas: 2
       selector:
         matchLabels:
           app: nginx
       template:
         metadata:
           labels:
             app: nginx
         spec:
           containers:
           - name: nginx
             image: nginx:1.7.9                # 実際のイメージを <image_name:tags> の形式で置き換えてください。
             ports:
             - containerPort: 80               # このポートはサービスで公開する必要があります。
  5. デプロイメントページで、ターゲットアプリケーション名または右側の詳細をクリックします。その後、すべての Pod インスタンスのステータスが実行中になるまで監視して待機できます。

手順 2: サービスの作成

  1. ACS コンソールにログインします。左側のナビゲーションペインで、クラスタをクリックします。

  2. クラスタページで、管理するクラスタを見つけて、その名前をクリックします。左側のペインで、ネットワーク > サービス を選択します。

  3. サービスページで、右側の作成をクリックし、サービスの作成ダイアログボックスで関連情報を入力し、OK をクリックします。

    構成項目

    説明

    名前

    サービスの名前。

    サービスタイプ

    Cluster IP を選択します。このタイプはデフォルトのサービスタイプです。このタイプを選択すると、サービスはクラスタ内からのみアクセスできます。これは、クラスタの内部 IP を介してサービスを公開します。

    説明

    必要に応じて、ヘッドレスサービスを有効にするかどうかを選択できます。有効にすると、ヘッドレスサービスを使用して他のサービス検出メカニズムと対話できます。これにより、Kubernetes から分離されます。

    バックエンド

    サービスをバインドするバックエンドアプリケーションを選択します。関連付けデプロイメントが実行されていない場合、関連するエンドポイントオブジェクトは作成されません。詳細については、セレクターのないサービスを参照してください。

    ポートマッピング

    サービスポート(サービス YAML ファイルの port に対応)とコンテナポート(サービス YAML ファイルの targetPort に対応)を追加します。コンテナポートは、バックエンド Pod で公開されているコンテナポートと一致する必要があります。

    アノテーション

    サービスにアノテーションを追加します。

    ラベル

    サービスを識別するためにタグを追加します。

    作成後、サービスページのアクション列で、ターゲットサービスを更新YAML の編集、または削除できます。

    説明

    サービス名をクリックして詳細なサービスページに入り、外部エンドポイントの後ろにあるリンクをクリックしてアプリケーションにアクセスできます。