このドキュメントでは、Container Service コンソールを使用して、外部 Kubernetes クラスターを Alibaba Cloud Container Service for Kubernetes (ACK) にインポートする方法について説明します。 外部 Kubernetes クラスターは、ローカルホストで作成したクラスター、または他のクラウドベンダーのプラットフォームで作成したクラスターにすることができます。

前提条件

Container Service、Resource Orchestration Service (ROS)、Resource Access Management (RAM)、および Auto Scaling が有効化されていること。
これらのサービスは、 Container Service コンソールROS コンソールRAM コンソール、および Auto Scaling コンソール にログインして有効化できます。

制限事項

  • 外部クラスターをインポートする ACK クラスターは、外部クラスター設定の変更には使用できません。

    設定を変更するには、外部クラスターにログインする必要があります。 たとえば、クラスターからノードを追加および削除したり、クラスターバージョンをアップグレードしたり、Kubernetes コンポーネントのパラメーターを変更したりできます。

  • クラスターにタグをアタッチする場合は、次のルールが適用されます。
    • タグごとにキーが必要ですが、その値は省略可能です。
    • キーには最大 64 文字を含めることができますが、aliyunhttp://、または https:// で始まることはできません。 大文字と小文字は区別されません。
    • 値は 1 ~ 128 文字にする必要があり、 http://、または https:// で始まることはできません。 大文字と小文字は区別されません。
    • クラスターにアタッチされた各タグは一意である必要があります。 既存のタグとキーを共有する新しいタグをクラスターにアタッチすると、新しいタグが既存のタグを上書きします。
    • クラスターには、最大 20 個のタグをアタッチできます。 さらにタグをアタッチし続ける場合は、まず必要な数のタグを削除して、それらのタグを追加できるようにする必要があります。

手順

  1. 外部 Kubernetes クラスターをインポートする Kubernetes クラスターを作成します。
    1. Container Service コンソール にログインします。
    2. [コンテナーサービス - Kubernetes] の左側のナビゲーションウインドウで、[クラスター] > [クラスター] を選択します。
    3. 右上隅で、[Kubernetes クラスターの作成] をクリックします。 表示された [クラスターテンプレートの選択] ページで、[既存のクラスターのインポート] を探し、[作成] をクリックします。
      以下は、 [既存のクラスターのインポート] ページです。
    4. クラスター名を入力します。
      クラスター名の長さは 1~63 文字で、英数字、ハイフン (-) のみ使用できます。
    5. クラスターの設置されているリージョンおよびゾーンを選択します。
    6. クラスターネットワークタイプを設定します。
      Kubernetes クラスターは VPC ネットワークタイプのみサポートしています。
      ドロップダウンリストから VPC と Vswitch を選択できます。
    7. EIP をクラスターに関連付けます。
      EIP は、クラスター (ACK で作成) を外部クラスターに接続するために使用されます。
    8. タグをクラスターにアタッチします。

      キーとその値を入力し、 [追加] をクリックします。

    9. [作成] をクリックします。
  2. 外部クラスターを作成されたクラスターにインポートします。
    1. 作成したクラスターを見つけます。 次に、[操作] 列で、[管理] をクリックします。
    2. [クラスターリソース] エリアで、[クラスターエージェント設定] タブをクリックします。
    3. [コピー] をクリックして、コードを agent.yaml ファイルにコピーします。
    4. 外部クラスターで、kubectl apply -f agent.yaml コマンドを実行し、クラスターエージェントをデプロイします。
    5. 外部クラスターで、get all -n ack-system コマンドを実行し、エージェントのステータスを表示します。
      NAME                                   READY     STATUS    RESTARTS   AGE
      pod/ack-cluster-agent-655b75c987-dwp6b   1/1     Running   0          9s
      
      NAME                                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
      deployment.apps/ack-cluster-agent   1         1         1            1           26m
      
      NAME                                           DESIRED   CURRENT   READY   AGE
      replicaset.apps/ack-cluster-agent-655b75c987   1         1         1       26m
    6. [クラスターリスト] ページに戻り、作成したクラスターが [実行] ステータスであることを確認します。

確認

  • [操作] 列で [管理] をクリックし、クラスターの情報とリソースを表示します。
    [クラスター情報] エリアで、インターネット IP アドレスとクラスター API サーバーの関連ポートを提供する [API サーバーインターネットエンドポイント] を見つけます。 エンドポイントを使用すると、kubectl またはお使いの端末上のその他のツールを使用して、クラスターを管理できます。
  • kubectl を使用して作成したクラスターに接続します (詳細については、「kubectl」をご参照ください) 。次の操作を実行できます。
    • kubectl get node コマンドを実行して、クラスターノードを表示します。
    • kubeconfig ファイルを使用して、リモートエンドの外部 Kubernetes クラスターに接続し、外部クラスターにアプリケーションワークロードをデプロイします。
    • Helm 関数を使用してアプリケーションをリリースします。