Elastic Container Instance (ECI) は Container Service for Kubernetes (ACK) とシームレスに統合されています。ACK Serverless クラスターまたは ACK マネージドクラスターを使用して、ECI のコンテナランタイム機能を体験できます。このトピックでは、ACK Serverless クラスターで ECI を使用する方法を説明します。
事前準備
開始する前に、必要なサービスを有効化し、必要な権限を付与する必要があります。
-
Container Service for Kubernetes (ACK) を有効化し、デフォルトのロールを付与し、関連するクラウドプロダクトを有効化します。詳細については、「ACK マネージドクラスターの作成」をご参照ください。
-
Elastic Container Instance コンソールにログインし、プロンプトに従って ECI サービスを有効化します。
ACK Serverless クラスターの作成
次の手順では、ACK Serverless クラスターを作成するための基本的な設定のみを説明します。本番環境では、ビジネスニーズに応じてパラメーターを設定し、コンポーネントをインストールしてください。詳細については、「クラスターの作成」をご参照ください。
-
クラスター作成ページに移動します。
-
左側のナビゲーションウィンドウで、クラスター をクリックします。
-
クラスターリスト ページの右上隅にある Kubernetes クラスターの作成 をクリックします。
-
[ACK Serverless] タブをクリックし、クラスター設定を行い、[次へ:コンポーネント設定] をクリックします。
次の表に、主要なパラメーターを示します。要件に応じて他のパラメーターを設定します。
パラメーター
例
説明
クラスター名
test
クラスターの名前を入力します。
リージョン
中国 (北京)
クラスターを作成するリージョンを選択します。
VPC
VPC の作成
クラスターの VPC を指定します。
-
[VPC の作成]:ゾーンを選択する必要があります。システムは自動的に VPC、選択したゾーンに vSwitch、NAT ゲートウェイを作成し、SNAT ルールを設定します。
-
[既存 VPC の選択]:既存の VPC と vSwitch を選択します。
SNAT の設定
VPC の SNAT を設定
クラスターがパブリックインターネットアクセスを必要とする場合は、SNAT を設定します。
-
[VPC の作成] を選択した場合、SNAT は自動的に設定されます。
-
既存の VPC を使用する場合は、ニーズに応じて SNAT を設定するかどうかを選択します。
[Service CIDR]
172.21.0.0/20
VPC の CIDR ブロックや、同じ VPC 内の他の Kubernetes クラスターの CIDR ブロックと重複しない Service CIDR ブロックを指定します。この設定は、クラスターの作成後に変更することはできません。詳細については、「ACK マネージドクラスターのネットワーク計画」をご参照ください。
API サーバーアクセス
EIP を使用して API Server を公開
EIP を使用して API サーバーを公開するかどうかを選択します。API サーバーは、Pod や Service などのリソースオブジェクトを作成、更新、削除、監視するための HTTP REST API を提供します。
-
このオプションを有効にすると、EIP が作成され、Server Load Balancer (SLB) インスタンスに関連付けられます。これにより、EIP のポート 6443 で Kubernetes API サーバーが公開されます。kubeconfig ファイルを使用して、インターネットからクラスターに接続し、管理できます。
-
このオプションを有効にしない場合、EIP は作成されません。kubeconfig ファイルを使用して、VPC 内からのみクラスターに接続し、管理できます。
-
-
コンポーネントを設定し、[次へ:設定の確認] をクリックします。
ニーズに応じてコンポーネントを設定します。オプションコンポーネントを使用すると料金が発生する場合があります。このチュートリアルでは、追加のコンポーネントは必要ありません。
-
設定を確認し、[利用規約] のチェックボックスをオンにしてから、作成 をクリックします。
クラスターリスト ページに戻ります。クラスターのステータスが 実行中 に変わると、準備完了です。
ACK Serverless クラスターへのデプロイ
次の手順では、NGINX アプリケーションを ACK Serverless クラスターにデプロイする方法を説明します。
-
クラスターリスト ページで、対象の ACK Serverless クラスターを見つけて、その名前をクリックします。
-
NGINX アプリケーションの Deployment を作成します。
-
左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。
-
右上隅にある YAML のリソースの作成 をクリックします。
-
必要に応じて YAML テンプレートを変更し、デプロイ をクリックします。
デフォルトでは、[リソース-基本デプロイメント] サンプルテンプレートが選択されています。このテンプレートの YAML は、2 つの Pod を含む Deployment を宣言します。各 Pod には app: nginx というラベルが付いており、NGINX コンテナを実行します。
説明サンプルテンプレートでは、
image: nginx:1.7.9は Docker Hub からプルされる NGINX 1.7.9 イメージを指定します。クラスターがパブリックインターネットにアクセスできない場合、このイメージをプルすることはできません。image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2のように、VPC 内のイメージに置き換えてください。apiVersion: apps/v1 # for versions before 1.0.0 use apps/v1beta1 kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: # nodeSelector: # env: test-team containers: - name: nginx image: nginx:1.7.9 # replace it with your image and tag ports: - containerPort: 80 resources: limits: cpu: "500m" resources: limits: cpu: "500m" -
Deployment を確認します。
-
デプロイメント ページで、デプロイメント情報を表示します。
[Pod] 列の値が
2/2であることは、Deployment 内の両方の Pod が実行中であることを示します。 -
デプロイメント ページで、Deployment 名をクリックして詳細を表示します。
ポッド タブで、両方の Pod のステータスが 実行中 であることを確認できます。Pod 名をクリックすると、その詳細が表示されます。
-
各 Pod は ECI インスタンスに対応します。対応する ECI インスタンスは、Elastic Container Instance コンソールの [コンテナグループ] ページで確認できます。
対応する ECI インスタンスのステータスは [実行中] です。
-
-
-
NGINX アプリケーションを公開するための Service を作成します。
-
左側のナビゲーションウィンドウで、[ネットワーク] > [サービス] を選択します。
-
右上隅にある YAML のリソースの作成 をクリックします。
-
次の YAML をコピーし、デプロイ をクリックします。
次の YAML は、LoadBalancer タイプの Service を作成します。ポート 80 を公開し、app: nginx ラベルを持つ Pod にトラフィックをルーティングします。
apiVersion: v1 kind: Service metadata: name: nginx-service spec: ports: - port: 80 protocol: TCP selector: app: nginx type: LoadBalancer -
Service を確認します。
サービス ページで、サービス名をクリックして詳細を表示します。Service は、前の手順で作成した Deployment に自動的に関連付けられます。バックエンドエンドポイントは、その Deployment の 2 つの Pod です。
Service タイプは LoadBalancer で、その外部エンドポイントは
47.94.xxx:80のような IP アドレスであり、これを使用してインターネットから Service にアクセスできます。エンドポイントテーブルには、両方の Pod が virtual-kubelet ノードで実行されていることが示されています。これにより、アプリケーションがサーバーレスモードで実行されていることが確認できます。
-
-
NGINX アプリケーションにアクセスします。
Web ブラウザーに外部エンドポイントの
IP アドレス:ポートを入力して、NGINX アプリケーションにアクセスします。アクセスに成功すると、ブラウザーに「Welcome to nginx!」というタイトルのデフォルトの NGINX ウェルカムページが表示されます。これは、NGINX アプリケーションが正しくデプロイされ、実行されていることを示します。