Container Service コンソール上で、素早く、簡単に Kubernetes クラスターを作成できます。

背景

クラスターの作成中は、Container Service により以下の操作が行われます:

  • ECS (Elastic Compute Service) インスタンスの作成および SSH 公開鍵を利用した管理ノードから他のノードへのログイン設定をします。 CloudInit による Kubernetes クラスターのインストールおよび設定をします。
  • セキュリティグループを作成します。 セキュリティグループにより、すべての ICMP ポートの VPC (Virtual Private Cloud) インバウンドアクセスが許可されます。
  • 既存の VPC をお使いでない場合、新しい VPC および VSwitch を作成し、VSwitch への SNAT を作成します。
  • VPC ルーティングルールを作成します。
  • NAT ゲートウェイおよび共有帯域幅パッケージまたは EIP (Elastic IP) を作成します。
  • RAM (Resource Access Management) ユーザーおよび Access Key を作成します。 RAM ユーザーは ECS インスタンスの照会、作成、削除に関する権限、クラウドディスクの追加、削除に関する権限、SLB (Server Load Balancer)、CloudMonitor、VPC、Log Service および NAS (Network Attached Storage) 上での操作に関するすべての権限を持ちます。 Kubernetes クラスターにより、設定に応じた SLB インスタンス、クラウドディスクおよび VPC ルーティングのダイナミックな作成が行われます。
  • SLB インタンスの作成および 6443 番ポートを開放します。
  • SLB インタンスの作成および 6443 番ポートを開放します。 (インターネットからの SSH アクセスの有効化を選択した場合、クラスターの作成時に 22 番ポートが開放されます。 それ以外の場合では 22 番ポートは開放されません。)

前提条件

Container Service、ROS (Resource Orchestration Service) および RAM などのサービスが有効化されている必要があります。

Container Service コンソールROS コンソールおよびRAM コンソールにログインし、対応するサービスを有効化します。

Container Service Kubernetes クラスターのデプロイは、 Alibaba Cloud ROS のアプリケーションデプロイ機能により行われます。 そのため、Kubernetes の作成前に ROS を有効化する必要があります。

制限

  • クラスターで作成された SLB インスタンスは 従量課金請求のみのサポートです。
  • Kubernetes クラスターは VPC ネットワークタイプのみのサポートです。
  • デフォルトでは、それぞれのアカウントには、アカウントによって作成されるクラウドリソースに関する指定されたクォータがあります。 クラウドリソースの数がクォータを超えた場合、アカウントはクラスターを作成できなくなります。 クラスターの作成前に十分なクォータを持っているか確認してください。 クォータを増やす場合は、チケットを起票し、サポートセンターへお問い合わせください。
    • デフォルトでは、それぞれのアカウントですべてのリージョンにおいて 5 つまでのクラスターを作成でき、それぞれのクラスターには 40 ノードまで追加できます。 それ以上のクラスターおよびノードを作成する場合は、チケットを起票し、サポートセンターへお問い合わせください。
      Kubernetes では、デフォルトの VPC ルートの最大数は 48 です。つまり、デフォルトで VPC を使用する場合は、 Kubernetes クラスターは 48 ノードまでとなります。 ノード数を増やしたい場合は、まず、VPC ルート数を増やすためのターゲットとなる VPC に関するチケットを起票し、サポートセンターへお問い合わせの後、Container Service に関するチケットを起票し、サポートセンターへお問い合わせください。
    • デフォルトでは、それぞれのアカウントで 100 個のセキュリティグループを作成できます。
    • デフォルトでは、それぞれのアカウントで 60 個まで従量課金の SLB インスタンスを作成できます。
    • デフォルトでは、20 個まで EIP を作成できます。
  • ECS インスタンスの制限は以下のようになります:
    • CentOS のみのサポートです。
    • 従量課金およびサブスクリプションによる ECS インスタンスが作成できます。

手順

  1. Container Service コンソールにログインします。
  2. Kubernetes 上で、左側のナビゲーションウィンドウから [クラスター] をクリックします。
  3. 右上角の [Kubernetes クラスターの作成] をクリックします。


    デフォルトでは、[Kubernetes クラスターの作成] ページが表示されます。



  4. クラスター名を入力します。

    クラスター名は、1 文字以上 63 文字以下で数字、漢字、英字およびハイフン (-) を含むことができます。

  5. クラスターの設置されているリージョンおよびゾーンを選択します。


  6. クラスターのネットワークタイプを選択します。 Kubernetes クラスターは VPC ネットワークタイプのみのサポートです。

    VPC: [自動作成] を選択して VPC と Kubernetes クラスターを一緒に作成するか、[既存を使う] を選択して既存の VPC を使用します。 [既存を使う] を選択した場合、2 つの表示されたドロップダウンリストから VPC および VSwitch を選択できます。

    • 自動作成: クラスター作成時に、システムにより自動的にお使いの VPC への NAT ゲートウェイが作成されます。
    • 既存を使う: 選択した VPC に NAT ゲートウェイがある場合、Container Service によりその NAT ゲートウェイが使用されます。 選択した VPC に NAT ゲートウェイがない場合、システムにより自動的にデフォルトの NAT ゲートウェイが作成されます。 システムによる NAT ゲートウェイの自動作成を希望しない場合、[VPC 用 SNAT の設定] をオフにします。
      オフにした場合、NAT ゲートウェイを設定し、セキュリティ保護されたアクセスによる VPC インターネット環境を実装するか、手動で SNAT の設定が必要です。 NAT ゲートウェイの実装または 手動での SNAT 設定を行わない場合、VPC 上のインスタンスが正常にインターネットにアクセスできず、クラスター作成が失敗します。


  7. ノードタイプを選択します。 従量課金およびサブスクリプションがサポートされます。
  8. マスターノードを設定します。

    マスターノードのインスタンスタイプを選択します。

    • 現在、CentOS のみのサポートです。
    • 現在、マスターノードは 3 つのみ作成できます。
    • デフォルトでは、システムディスクはマスターノードに接続されます。 利用可能なシステムディスクは SSD クラウドディスクおよび Ultra クラウドディスクです。


  9. ワーカーノードを設定します。 ワーカーノードの作成または既存のインスタンスを追加できます。
    • 現在、CentOS のみのサポートです。
    • それぞれのクラスターは 37 個までワーカーノードを含むことができます。 それ以上のノードの作成を希望される場合は、チケットを起票し、サポートセンターへお問い合わせください。
    • デフォルトでは、システムディスクはワーカーノードに接続されます。 利用可能なシステムディスクは SSD クラウドディスクおよび Ultra クラウドディスクです。
    • ワーカーノードに手動でデータディスクを接続できます。 データディスクには SSD クラウドディスク、Ultra クラウドディスクまたは ベーシックディスクを利用できます。
    1. ワーカーノードの作成のため、インスタンスタイプを選択し、ワーカーノードの数を設定します。 この例では、1 つのワーカーノードを作成します。


    2. 既存のインスタンスを追加するには、あらかじめ ECS インタンスを 現在お使いのリージョンに作成する必要があります。


  10. ログインモードを設定します。
    • キーペアを設定します。
      クラスター作成時、キーペアログインノードを選択し、 [新しいキーペアの作成] をクリックします。 ECS コンソールで、キーペアを作成します。 詳細は、SSH キーペアの作成をご参照ください。 キーペアの作成後、クラスターへのログイン資格情報としてキーペアを設定します。


    • パスワードを設定します。
      • ログインパスワード: ノードログインパスワードを設定します。
      • パスワードの確認: 設定したノードログインパスワードを確認します。
  11. Pod Network CIDR および Service CIDR パラメーターを設定します。
    これら 2 つのパラメーターは [既存を使う] VPC を選択した場合のみ利用できます。

    Pod Network CIDR および Service CIDR を指定します。 "Pod Network CIDR" および "Service CIDR" のどちらも VPC により使用される CIDR (Classless Inter-Domain Routin) ブロックおよび VPC 上の既存の Kubernetes クラスターと重複できません。 クラスター作成後に値を変更することはできません。 加えて、"Service CIDR" は ポッドネットワーク CIDR と重複できません。 Kubernetes CIDR ブロックの計画法について、詳しくはVPC での Kubernetes CIDR ブロックの設定をご参照ください。

  12. 利用可能な Docker のバージョンおよび Kubernetes のバージョンが表示されます。 バージョンを参照し、必要に応じてバージョンを選択してください。


  13. VPC の SNAT ゲートウェイを設定するかどうかを選択します。
    [自動作成] を選択する場合、SNAT ゲートウェイの設定が必要です。 [既存を使う] を選択する場合、SNAT ゲートウェイを自動的に設定するかどうかを選択できます。 SNAT ゲートウェイの自動設定を選択しない場合、インターネットへのセキュリティ保護されたアクセスを行う VPC インスタンスの NAT ゲートウェイの設定、または SNAT ゲートウェイの設定を手動で行えます。 NAT ゲートウェイの設定または SNAT ゲートウェイの設定を行わない場合、VPC 上のインスタンスがインターネットにアクセスできず、クラスター作成が失敗します。


  14. [パブリック SLB を利用した API サーバーの公開] を有効化するかどうかの選択をします。
    API サーバーにより、様々はリソースオブジェクト (ポッドやサービスなど) への、追加、削除、編集、確認、監視および他のHTTP Rest インターフェイスが提供されます。
    1. このオプションの有効化を選択した場合、SLB が作成され、マスターノードのために 6443 番ポートが開放されます。 6443 番ポートは API サーバーに対応します。 kubeconfig を使ってインターネットへの接続およびインターネットを介したクラスターの操作を行えます。
    2. このオプションを有効化しなかった場合、インターネット SLB は作成されません。 kubeconfig をVPC への接続および VPC 内のクラスターの操作にのみ使用できます。


  15. インターネットからの SSH ログインの有効化するかどうか選択します。
    インターネットからの SSH アクセスを有効化するために、 [パブリック SLB を利用した API サーバーの公開] を選択する必要があります。
    • インターネットからの SSH アクセスを有効化した場合、SSH によるクラスターへのアクセスが可能になります。
    • インターネットからの SSH アクセスを有効化しなかった場合、SSH によるクラスターのアクセス、または kubectl によるクラスターへの接続を行えません。 SSH によるクラスターインスタンスへのアクセスには、手動で ECS インタンスへの EIP をバインドし、セキュリティグループルーるを設定し、SSH ポート (22 番) を開放してください。 詳細については、SSH を使用した Kubernetes クラスターへのアクセスをご参照ください。


  16. お使いの ECS にクラウドモニタリングプラグインをインストールするかどうかを選択します。
    ECS ノードにクラウドモニタリングプラグインをインストールできます。これにより、CloudMonitor コンソール上で作成した ESC インスタンスのモニタリング情報を参照できます。


  17. ログサービスを使うかどうか選択します。 既存のプロジェクトの選択、またはプロジェクトの作成ができます。

    [SLS の使用] を選択した場合、クラスターにおいてログサービスプラグインが自動的に設定されます。 アプリケーション作成の際、シンプルな設定により迅速にログサービスを使用できます。 詳しくは、Log Service を利用した Kubernetes クラスターログの収集をご参照ください。



  18. 高度な設定を表示するかどうかを選択します。
    1. ネットワークプラグインを選択します。 利用可能なネットワークプラグインは "Flannel" および "Terway" です。 詳しくは、Kubernetes クラスターネットワークには、Terway または Flannel プラグインのどちらを選択するべきですか ?をご参照ください。
      • Flannel: シンプルで安定したコミュニティ Flannel CNI プラグインです。 いくつかのシンプルな機能のみ提供されます。 例えば、Kubernetes ネットワークポリシーはサポートしていません。
      • Terway: Alibaba Cloud Container サービスにより開発されたネットワークプラグインです。 コンテナーに Alibaba Cloud ENI (Elastic Network Interfaces) を割り当てることができます。 Kubernetes Network Policy によりコンテナー間のアクセスポリシーを定義できます。 加えて、個々のコンテナーに帯域幅制限を設定できます。
    2. ノードに関するポッド数を設定します。1 つのノードによって実行される最大のポッド数です。 デフォルト値を使用することを推奨します。


    3. カスタマイズ Cluster CA を使用するかどうか選択します。 このオプションが選択された場合、CA 証明書が Kubernetes クラスターに追加されます。これにより、サーバーとクライアント間での情報交換のセキュリティ保護が向上します。


  19. 右上角の [作成] をクリックします。
マルチノード Kubernetes クラスターは一般的に作成に 10 分ほどかかります。

クラスターデプロイ結果を参照します。

クラスターの作成が成功した後、Container Service、Kubernetes コンソールのクラスターリストで作成したクラスターを参照できます。


  • クラスターログを参照するため、クラスターの右にある、[ログの参照] をクリックします。 より詳細な情報を参照する場合は、[スタックイベント] をクリックします。


  • クラスターの右側にある [管理] をクリックすることで、クラスターの基本情報および接続情報を参照できます。


    Cluster 情報セクション:
    • API サーバーインターネットエンドポイント: インターネットを介して Kubernetes API サーバーによりサービスが提供される際の IP アドレスおよびポート番号 これにより、kubectl を使用したクラスターまたはターミナル上での他のツールの管理が可能になります。
    • API サーバーイントラネットエンドポイント: クラスター内部で Kubernetes API サーバーによりサービスが提供される際の IP アドレスおよびポート番号です。 この IP アドレスは SLB インスタンスのアドレスで、バックエンドの 3 つのマスターノードによりサービスが提供されます。
    • マスターノード SSH IP アドレス: SSH を使って直接マスターノードにログインでき、クラスターのルーチンメンテナンスを実行できます。
    • サービスアクセスドメイン: テスト用のアクセスドメイン名によるクラスター上のサービスが提供されます。 サービスアクセスドメイン名のサフィックスは <cluster_id>.<region_id>.alicontainer.com です。
    例えば、SSH からマスターノードにログインし、 kubectl get node を実行し、クラスターのノード情報を参照できます。


    前出の図で示されるように、クラスターは 4 つのノードを持ち、3 つのマスターノードおよび パラメーターを設定した際に設定した 1 つのワーカーノードからなります。