ECS インスタンスをワーカーノードとして ACK クラスタに追加する場合、またはワーカーノードをノードプールに再追加する場合は、ACK を構成してノードを自動的に追加するか、ACK コンソールでノードを手動で追加します。ノードをノードプールに追加すると、ノードプールの構成がノードによって自動的に使用され、ノードプールレベルでノードを一元管理できます。
制限
インスタンスタイプの制限
クォータ
制限 | 説明 | 推奨ソリューション |
ノードクォータ | クラスタに十分なノードクォータがあることを確認してください。ACK クラスタに関連するクォータの詳細については、「制限」をご参照ください。 | ノードクォータを増やすには、クォータセンターコンソール でクォータの増加を申請してください。 |
ECS インスタンスの制限
制限 | 説明 | 推奨ソリューション |
アカウント、リージョン、VPC | 追加する ECS インスタンスは、クラスタと同じ Alibaba Cloud アカウントに属している必要があります。さらに、追加する ECS インスタンスは、クラスタと同じリージョンおよび仮想プライベートクラウド(VPC)にデプロイされている必要があります。 | 要件を満たすように ECS インスタンスを再作成するか、クラスタを再作成します。 |
クラスタ | 他のクラスタに既に属している ECS インスタンスを追加することはできません。 | 他のクラスタに既に属している ECS インスタンスを追加する場合は、ECS インスタンスをクラスタから削除してから、目的のクラスタに追加します。詳細については、「ノードを削除する」をご参照ください。 |
ネットワークの制限
制限 | 説明 | 推奨ソリューション |
Terway | Terway には、追加する ECS インスタンスタイプでサポートされる Pod の最大数に次の制限があります。 各 ENI モードでサポートされる Pod の最大数は、インスタンスタイプでサポートされる ENI の最大数によって異なります。各 ENI モードでサポートされる Pod の最大数の計算方法の詳細については、「Terway を使用する」をご参照ください。インスタンスタイプでサポートされる Pod の最大数のクエリ方法の詳細については、「Terway を使用する」をご参照ください。 | |
Terway には、ENI に次の制限があります。 |
新しいゾーンのノードをクラスタに追加する場合、Terway の vSwitch 構成を更新する必要があります。そうしないと、ノードのプライマリ ENI の vSwitch からノード上の Pod に IP アドレスが割り当てられます。 | Pod vSwitch を変更する |
既存のノードをノードプールに追加すると、ノードにバインドされている ENI は保持されます。ENI が属する vSwitch は、ノード上の Pod に IP アドレスを割り当てるために使用されます。追加するノードにはプライマリ ENI が 1 つだけあることを確認してください。 | ノード上の Pod がノードの vSwitch に属さない IP アドレスを使用している場合は、ノードをクラスタから削除し、すべてのセカンダリ ENI を削除してから、ノードをクラスタに再追加します。 |
既存のノードをノードプールに追加する場合は、クラスタ RAM ロールが対応する ECS インスタンスに割り当てられていることを確認してください。そうしないと、権限の問題により、システムはノードでサポートされる Pod の最大数(MaxPod)を正しく計算できません。その結果、システムによって計算された ENI の最大数が正しくありません。 | RBAC を使用してクラスタ内のリソースに対する操作権限を管理する |
Flannel | クラスタが存在する VPC のシステムルートテーブルのカスタムルートエントリ数は、ルートテーブルのクォータ制限を超えることはできません。カスタムルートエントリの詳細については、「ルートテーブル」をご参照ください。 | クォータセンターコンソール でクォータの増加を申請してください。 |
IPv4/IPv6 デュアルスタック | 追加する ECS インスタンスのプライマリ ENI に IPv6 アドレスを割り当てる必要があります。 | ECS インスタンスのプライマリ ENI に IPv6 アドレスを割り当てる方法の詳細については、「IPv6 通信」をご参照ください。 |
セキュリティグループの制限
制限 | 説明 | 推奨ソリューション |
セキュリティグループタイプ | 既存の ECS インスタンスをノードプールに追加すると、インスタンスはノードプールのセキュリティグループにも追加されます。ECS の制限により、ECS インスタンスはベーシックセキュリティグループとアドバンストセキュリティグループに同時に属することはできません。したがって、ECS インスタンスが属するセキュリティグループのタイプは、ECS インスタンスが追加されるノードプールのタイプと同じである必要があります。 ノードプールのセキュリティグループは、ACK コンソールのノードプール [詳細] ページの [概要] タブで表示できます。ECS コンソールに移動して、ECS インスタンスが属するセキュリティグループを表示することもできます。セキュリティグループの詳細については、「概要」をご参照ください。 | ノードプールのセキュリティグループを変更したり、セキュリティグループのタイプを変更したりすることはできません。セキュリティグループの競合が発生した場合は、次のソリューションを使用してください。 |
セキュリティグルーパールール | ECS インスタンスのセキュリティグルーパールールは、ECS インスタンスが追加されるノードプールおよびクラスタのセキュリティグルーパールールと競合してはなりません。 | まず、既存のノードを目的のノードプールのセキュリティグループに追加します。 セキュリティグルーパールールチェック機能を使用して、ノードプールの各セキュリティグルーパールールをチェックします。 |
セキュリティグループの数 | 既存の ECS インスタンスをノードプールに追加すると、インスタンスはノードプールのセキュリティグループにも追加されます。インスタンスが属するセキュリティグループの数が上限を超えていないことを確認してください。デフォルトの上限は 5 です。 | セキュリティグループの制限と、ECS インスタンスのセキュリティグループのクォータ制限を増やす方法の詳細については、「セキュリティグループの制限」をご参照ください。 |
注意事項
インスタンスのリリース
クラスタまたはノードプールを削除しても、クラスタまたはノードプールに追加された ECS インスタンスは自動的にリリースされません。ECS インスタンスを手動でリリースする必要があります。詳細については、「ノードを削除する」をご参照ください。
課金
クラスタに追加した ECS インスタンスは、クラスタまたはクラスタ内のノードプールを削除してもリリースされません。不要なコストを避けるため、ECS インスタンスの課金を適宜確認することをお勧めします。詳細については、「課金概要」をご参照ください。
ノードプールとインスタンス構成
オペレーティングシステムとディスク
データの損失や破損を防ぐため、ECS インスタンスを追加する前にデータをバックアップすることをお勧めします。詳細については、「スナップショットを作成する」をご参照ください。
ACK を構成してノードを自動的に追加する場合、ACK はノードのオペレーティングシステムをノードプールのオペレーティングシステムにリセットします。ノードを手動で追加する場合、ノードのオペレーティングシステムは保持されます。追加するノードのオペレーティングシステムを保持するには、ノードを手動で追加します。
ACK を構成してノードを自動的に追加する場合、ノードのシステムディスクはリリースされますが、データディスクは保持されます。ただし、データディスクの ID は変更されます。データディスクのデータは影響を受けません。
ACK を構成してノードを自動的に追加する場合、システムディスクのユーザースナップショットは保持されます。自動スナップショットは、システムディスクの「ディスクのリリース中に自動スナップショットを削除する」属性の設定に基づいて、システムディスクとともに保持または削除されます。ECSコンソール のディスク詳細ページに移動し、[属性の変更] をクリックして、設定を表示または変更できます。
自動スナップショットポリシーを定期的に実行するための十分なスナップショットクォータがあることを確認するために、不要になったユーザースナップショットと自動スナップショットを削除することをお勧めします。
ノードを自動または手動で追加する
ノードを自動または手動で追加しても、クラスタ内の既存のノードまたはアプリケーションには影響しません。互換性の問題を避けるため、ECS インスタンスにサービスが既にデプロイされている場合は、ECS インスタンスをワーカーノードとして初期化しないことをお勧めします。
ACK を構成してノードを自動的に追加する場合、ACK はノードのオペレーティングシステムをノードプールのオペレーティングシステムに置き換えます。ノードを手動で追加する場合、ノードのオペレーティングシステムは保持されます。
ノードを手動で追加する場合、ノードの元のオペレーティングシステムは保持されます。オペレーティングシステムはリセットされません。「制限」に加えて、ノードを手動で追加する前に、次の制限にも注意する必要があります。
オペレーティングシステムが ContainerOS の ECS インスタンスを追加することはできません。詳細については、「ContainerOS」をご参照ください。
追加する ECS インスタンスのオペレーティングシステムでスワップが無効になっていることを確認してください。
コンテナデータとイメージをデータディスクに保存する場合は、データディスクが ext または XFS ファイルシステムを使用していることを確認してください。
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけて、その名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
[ノードプール] ページで、管理するノードプールを見つけ、[アクション] 列の [詳細] をクリックし、[既存のノードを追加] をクリックします。
インストールコマンドを取得し、ECS インスタンスにログインしてから、コマンドを実行して ECS インスタンスを ACK クラスタに追加する必要があります。一度に追加できる ECS インスタンスは 1 つだけです。
[既存の ECS インスタンスを選択] ウィザードページで、[モード] を [手動] に設定し、リストから既存の ECS インスタンスを選択して、[次のステップ] をクリックします。
[インスタンス情報の指定] ウィザードページで、パラメータを構成し、[次のステップ] をクリックします。
パラメータ | 説明 |
クラスタ ID/名前 | ECS インスタンスを追加するクラスタに関する情報。このパラメータは自動的に設定されます。 |
データディスク | コンテナとイメージデータをデータディスクに保存するかどうかを指定します。 ECS インスタンスにデータディスクがマウントされていて、最後のデータディスクのファイルシステムが初期化されていない場合、システムはデータディスクを ext4 に自動的にフォーマットします。次に、システムはディスクを使用して、/var/lib/docker(Docker のデフォルトのデータディレクトリ)および /var/lib/kubelet(kubelet のデフォルトのデータディレクトリ)にデータを保存します。 重要 ディスクをフォーマットすると、ディスク上のデータは失われます。システムがデータディスクをフォーマットする前に、データディスク上のデータをバックアップすることをお勧めします。 ECS インスタンスにデータディスクが接続されていない場合、システムはデータディスクを購入しません。
|
インスタンス名を保持 | デフォルトでは、[インスタンス名を保持] がオンになっています。インスタンス名を保持したくない場合は、[インスタンス名を保持] をオフにすることができます。この機能を無効にすると、ノードの名前変更ルールに基づいてノードの名前が変更されます。 |
インスタンス情報 | 追加する ECS インスタンスの ID と名前。 |
[完了] ウィザードページで、ECS インスタンスにリモートログインするために使用するコマンドをコピーし、[完了] をクリックします。
ECSコンソール にログインします。左側のナビゲーションウィンドウで、[インスタンスとイメージ] > [インスタンス] を選択します。次に、クラスタがデプロイされているリージョンを選択し、追加する ECS インスタンスを選択します。
[接続] 列の [接続] をクリックします。[接続とコマンド] ダイアログボックスで、接続方法を選択し、接続ページに移動します。
インスタンスへの接続方法の詳細については、「ECS インスタンスへの接続方法」をご参照ください。
接続ページで、手順に従って保存したコマンドを貼り付けます。次に、[実行] をクリックしてスクリプトを実行します。
スクリプトが実行されると、ECS インスタンスがクラスタに追加されます。
ECS インスタンスが追加された後、[ノードプール] ページのノードプールの [アクション] 列の [詳細] をクリックして、[ノード] タブで新しく追加されたノードに関する情報を表示できます。
現在のアカウント内の使用可能なすべての ECS インスタンスが ACK コンソールに表示されます。パラメータを構成すると、ECS インスタンスは自動的にクラスタに追加されます。
[既存の ECS インスタンスを選択] ウィザードページで、[モード] を [自動] に設定し、リストから既存の ECS インスタンスを選択して、[次のステップ] をクリックします。
重要
リストに ECS インスタンスが表示されない場合は、既存の ECS インスタンスが要件を満たしていないことを意味します。「制限」および「注意事項」を参照して、原因を特定してください。
[使用不可のインスタンスを表示] を選択して、ECS インスタンスをクラスタに追加できない理由を表示できます。チェックボックスをオンにしても ECS インスタンスが表示されない場合は、既存の ECS インスタンスがクラスタと同じリージョンおよび VPC に存在するかどうかを確認してください。
[インスタンス情報の指定] ウィザードページで、パラメータを構成し、[次のステップ] をクリックします。
パラメータ | 説明 |
クラスタ ID/名前 | ECS インスタンスを追加するクラスタに関する情報。このパラメータは自動的に設定されます。 |
データディスク | コンテナとイメージデータをデータディスクに保存するかどうかを指定します。 ECS インスタンスにデータディスクがマウントされていて、最後のデータディスクのファイルシステムが初期化されていない場合、システムはデータディスクを ext4 に自動的にフォーマットします。次に、システムはディスクを使用して、/var/lib/docker(Docker のデフォルトのデータディレクトリ)および /var/lib/kubelet(kubelet のデフォルトのデータディレクトリ)にデータを保存します。 重要 ディスクをフォーマットすると、ディスク上のデータは失われます。システムがデータディスクをフォーマットする前に、データディスク上のデータをバックアップすることをお勧めします。 ECS インスタンスにデータディスクが接続されていない場合、システムはデータディスクを購入しません。
|
インスタンス名を保持 | デフォルトでは、[インスタンス名を保持] がオンになっています。インスタンス名を保持したくない場合は、[インスタンス名を保持] をオフにすることができます。この機能を無効にすると、ノードの名前変更ルールに基づいてノードの名前が変更されます。 |
インスタンス情報 | 追加する ECS インスタンスの ID と名前。 |
[確認] メッセージで注意事項を読み、[確認] をクリックします。
ECS インスタンスが追加された後、[ノードプール] ページのノードプールの [アクション] 列の [詳細] をクリックして、[ノード] タブで新しく追加されたノードに関する情報を表示できます。
FAQ
クラスタに追加した ECS インスタンスをアップグレードまたはダウングレードすると、クラスタ内のビジネスに影響はありますか?
ECS インスタンスのスペックアップまたはスペックダウンには、通常、ECS インスタンスタイプ、インターネット帯域幅、インターネット帯域幅の課金方法、およびデータディスクの課金方法の変更が含まれます。詳細については、「インスタンス構成の変更の概要」をご参照ください。スペックアップまたはスペックダウンの方法は、ECS インスタンスにさまざまな影響を与えます。
再起動を必要としないアップグレードまたはダウングレードの場合は、実際のビジネスシナリオに基づいて影響を評価する必要があります。
インスタンスタイプの変更など、再起動を必要とするアップグレードまたはダウングレードは、ビジネスに悪影響を及ぼします。操作(ワーカーノードリソースのアップグレードまたはダウングレード)を実行する前に、削除されたアプリケーション Pod をホストするために追加ノードを追加する必要があるかどうかを確認する必要があります。次に、アップグレードまたはダウングレードするノードをドレインし、スケーリンググループと ACK クラスタから削除します。詳細については、「ノードを削除する」をご参照ください。
アップグレードまたはダウングレードが完了したら、このトピックの手順を実行して、ノードをクラスタに再追加します。
既存のノードを追加した後にタイムアウトエラーが発生した場合はどうすればよいですか?
ノードのネットワークと API サーバー の Classic Load Balancer(CLB)インスタンスのネットワークが接続されているかどうかを確認します。セキュリティグループが要件を満たしているかどうかを確認します。セキュリティグループの制限の詳細については、「セキュリティグループの制限」をご参照ください。その他のネットワーク接続の問題の詳細については、「ネットワーク管理に関する FAQ」をご参照ください。
異なるインスタンスタイプの既存のノードを同じ ACK クラスタに追加できますか?
はい、異なるインスタンスタイプのノードをノードプールに追加できます。これにより、指定したインスタンスタイプが使用できない場合、または指定したタイプの ECS インスタンスの在庫がない場合に、ノードのスケールアウトエラーを回避できます。これを行うには、次の手順を実行します。
ノードプールを作成または変更し、目的のインスタンスタイプを選択します。詳細については、「ノードプールを作成および管理する」をご参照ください。
「ノードを削除する」を参照して、ノードを削除およびドレインします。対応する ECS インスタンスはリリースしないでください。
「制限」および「ノードを自動または手動で追加する」を参照して、異なるインスタンスタイプの ECS インスタンスをノードプールに追加します。
ACK クラスタ間でノードを移動するにはどうすればよいですか?
ACK クラスタ間でノードを直接移動することはできません。既存のノードを追加する方法を使用する必要があります。これを行うには、次の手順を実行します。
「ノードを削除する」を参照して、ノードを削除およびドレインします。対応する ECS インスタンスはリリースしないでください。
「制限」および「ノードを自動または手動で追加する」を参照して、異なるインスタンスタイプの ECS インスタンスをノードプールに追加します。
既存のノードが追加された後、ノードプールの予想ノード数は自動的に変更されますか?
既存のノードを追加した後、予想ノード数は追加されたノードの数だけ自動的に増加します。たとえば、ノードプールの [予想ノード数] パラメータの値が 5 に設定されているとします。既存の ECS インスタンスをノードプールに追加すると、ノードプールの [予想ノード数] パラメータの値は自動的に 6 に変更されます。