ACK マネージドクラスターを作成する場合、ワーカーノードのみを構成する必要があります。マスターノードは、Container Service for Kubernetes (ACK) によって作成および管理されます。これにより、O&M コストが削減され、ビジネスアプリケーションに集中できます。このトピックでは、ACK コンソールで、API 操作を呼び出すことによって、および Terraform、SDK、CLI を使用して、ACK マネージドクラスターを作成する方法について説明します。
ACK クラスターを作成する前に、関連する基本情報について理解しておくことをお勧めします。詳細については、「Kubernetes の概念」、「製品紹介」、および「クラスター」をご参照ください。
ACK マネージドクラスターを初めて使用する場合は、キューブゲームから始めることができます。詳細については、「ACK を使用してマジックキューブゲームアプリケーションをデプロイする」をご参照ください。試用が終了したら、予期しないコストを避けるために、できるだけ早くリソースを解放してください。
計画と設計
クラスターを作成する前に、ビジネス要件に基づいてクラスターを計画および設計し、クラスターが安定して効率的かつ安全に実行できるようにします。ほとんどの ConfigMap は、クラスターの作成後に調整できます。ただし、一部の ConfigMap は、クラスターの作成後に変更できません。特に、クラスターの可用性とクラスターネットワークに関連する構成は変更できません。計画を立てるときは、次の要件が満たされていることを確認してください。
カテゴリ | 説明 |
デプロイメントの場所 |
|
バージョンと仕様 |
|
ネットワーク計画 |
|
準備
クラスターを作成する前に、ACK をアクティブ化し、ACK システムロールを Alibaba Cloud アカウントまたは RAM ユーザーに割り当てていることを確認してください。さらに、VPC、Server Load Balancer (SLB)、NAT ゲートウェイなどのクラウドサービスをアクティブ化していることを確認してください。詳細については、「ACK マネージドクラスターをすばやく作成する」をご参照ください。
従量課金方式で CLB などのサービスを購入する場合は、延滞料金が発生しないように、Alibaba Cloud アカウントの残高が十分にあることを確認してください。
クラスターの作成
ACK では、ACK コンソールで、API 操作を呼び出すことによって、および SDK、Terraform、CLI を使用してクラスターを作成できます。
ACK コンソールの使用
API
Terraform
SDK
CLI
次のステップ
アプリケーションのデプロイ: デプロイメント、StatefulSet、ジョブなどのワークロードを作成および管理できます。詳細については、「ワークロードをデプロイする」をご参照ください。
サービスディスカバリとネットワーク管理
サービス: ポッドのグループに固定アクセス ポータルを提供し、クラスタ内アクセスとインターネット アクセスを可能にします。
Ingress: Ingress を使用して、さまざまな転送ルールを構成できます。たとえば、ドメイン名またはロード バランシングのためのアクセス パスに基づいて、リクエストをさまざまな サービス に転送できます。
DNS ベースのサービス ディスカバリ: クラスタ内のワークロードにドメイン名解決サービスを提供します。これにより、クラスタ内のサービスは、特定の IP アドレスを必要とせずに、サービス名を使用して相互にアクセスできます。
可観測性: クラスタ ログの収集、アラートの監視、クラスタ ステータスの診断を可能にします。ACK が提供するインフラストラクチャ、コンテナ、ワークロードに関する可観測性ソリューションの詳細については、「可観測性」をご参照ください。
ストレージ: CSI プラグインは、アプリケーション データの永続ストレージ、機密データと構成データのストレージ、ストレージ リソースの動的プロビジョニングなどのストレージ要件を満たすために使用されます。
自動スケーリング 構成: Web アプリケーション、ゲーム サービス、オンライン教育など、ビジネス リソースの要件が予測困難な場合や定期的に変化する場合は、自動スケーリングを有効にすることをお勧めします。この機能には、HPA、CronHPA、VPA などのワークロード スケーリングと、ノードの自動スケーリングやインスタント ノードの弾力性などの計算リソースのスケーリングが含まれます。
きめ細かい権限付与
基本リソース (ACK が依存する Alibaba Cloud サービス) とクラスタ内部リソース (Kubernetes リソース) にきめ細かい権限を付与する方法については、ACK は RAM と Kubernetes のネイティブ RBAC メカニズムに基づいて複数の権限管理ソリューションを提供しています。詳細については、「権限付与」をご参照ください。
クォータと制限
クラスタサイズが大きい場合、またはアカウントに多数のリソースがある場合は、ACK クラスタに指定されているクォータと制限に従ってください。詳細については、「クォータと制限」をご参照ください。
制限: ACK 構成制限(アカウント残高、クラスタの容量制限など)。これは、クラスタ内のさまざまな Kubernetes リソースの最大容量です。
クォータ制限とクォータの増やし方: ACK クラスタのクォータ制限、および ACK が依存するクラウドサービス(ECS や VPC など)のクォータ制限。クォータを増やす場合は、関連するトピックをご覧ください。
よくある質問
ACK クラスタの使用時に発生する問題のトラブルシューティング方法の詳細については、「Troubleshooting」および「FAQ」をご参照ください。
ノード数がゼロのクラスタを作成できますか?
はい、できます。ノードの作成をスキップするか、クラスタの作成後に購入した ECS インスタンスをクラスタに追加する場合、構成時に [予期されるノード数] パラメータを 0 に設定できます。これにより、クラスタ内のインスタンス数も 0 に設定されます。次に、その他の必要なパラメータを構成します。ノードプールの構成を更新したり、さらにノードプールを作成したりできます。詳細については、「ノードプールを作成および管理する」をご参照ください。既存の ECS インスタンスをクラスタに追加する方法の詳細については、「既存の ECS インスタンスを ACK クラスタに追加する」をご参照ください。
購入した ECS インスタンスをクラスタに追加するにはどうすればよいですか?
ACK では、既存の ECS インスタンスをノードプールに手動または自動で追加できます。自動モードで既存のノードをノードプールに追加すると、ECS インスタンスの OS はノードプールで使用されている OS に変更され、ノードの元のシステムディスクは解放されます。 ECS インスタンスのオペレーティングシステムを保持するには、ECS インスタンスを手動で追加します。操作と使用上の注意の詳細については、「既存の ECS インスタンスを ACK クラスタに追加する」をご参照ください。
追加する ECS インスタンスとノードプールは、課金方法、ディスク構成、インスタンスタイプなど、同じか類似した構成にすることをお勧めします。これにより、後続のノードの一元管理が容易になります。
従量課金インスタンスをサブスクリプションノードプールに追加できますか?
はい、できます。詳細については、「既存の ECS インスタンスを追加する」をご参照ください。ただし、ノードプールの課金方法がサブスクリプションの場合、ノードプールに追加されるすべてのノードはサブスクリプションノードになります。課金方法、ディスク構成、インスタンスタイプなどが異なるノードを管理するために、異なるノードプールを作成することをお勧めします。詳細については、「ノードプールを作成および管理する」をご参照ください。
クラスタの作成時にポッドの数が不足するのはなぜですか?
このエラーメッセージは、次のいずれかの理由で表示されます。
コンポーネントによって消費される: クラスタコンポーネントはポッドにデプロイされます。ポッドはノードリソースを消費します。特定のコンポーネントでは、複数のポッドが必要になる場合があります。クラスタに多数のコンポーネントをインストールすると、コンポーネント用に多数のポッドが作成されます。
小規模インスタンス: Terway モードでは、ノードでサポートされるポッドの最大数は、インスタンスファミリによって提供されるElastic Network Interface (ENI) の数によって異なります。ノードでサポートされるポッドの最大数は CPU とメモリに直接関係していませんが、仕様の低い ECS インスタンスはサポートする ENI の数が少なく、ノードあたりのポッドの最大数も少なくなります。
ノード上のポッドの数が上限に達すると、新しいポッドのスケジュールが失敗します。これはサービスのパフォーマンスに影響します。使用可能なポッドの数を増やすには、ノードプールをスケールアウトして使用可能なノードを追加するか、ノードを更新してノードあたりのポッドの最大数を増やします。詳細については、「クラスタ内のポッドの最大数を増やす」をご参照ください。
ノードの使用可能な CPU とメモリリソースが、購入したインスタンスタイプのリソースよりも少ないのはなぜですか?
ACK は、Kubernetes コンポーネントとシステムプロセスを実行するために、特定量のノードリソースを予約します。これにより、オペレーティングシステムカーネル、システムサービス、および Kubernetes デーモンが期待どおりに実行できるようになります。ただし、これにより、ノードの割り当て可能なリソースの量がノードのリソース容量と異なる場合があります。詳細については、「リソース予約ポリシー」をご参照ください。
参考資料
ACK クラスタを使用する場合、不適切な操作によりサービス障害が発生する可能性があります。詳細については、「リスクの高い操作に関する使用上の注意と手順」をご参照ください。
クラスタへの接続方法の詳細については、「クラスタの kubeconfig ファイルを取得し、kubectl を使用してクラスタに接続する」をご参照ください。
古い Kubernetes バージョンには、セキュリティと安定性の問題がある可能性があります。クラスタを最新バージョンに更新することをお勧めします。詳細については、「ACK クラスタを手動で更新する」および「クラスタを自動的に更新する」をご参照ください。
中国本土以外にあるクロスリージョンコンテナイメージをプルする方法の詳細については、「GA インスタンスを使用してクロスドメインでコンテナイメージのプルを高速化する」をご参照ください。
サービスについてご質問がある場合は、「お問い合わせください」をご参照ください。










