Container Service for Kubernetes (ACK) クラスターを使用すると、クラウド上で実行されるコンテナ化されたアプリケーションを便利かつ効率的に管理できます。 このトピックでは、ACKコンソールを使用して、マジックキューブゲームアプリケーションをACKクラスターにすばやくデプロイ、公開、および監視する方法について説明します。
概要
このトピックでは、ack-cubeという名前のアプリケーションが、オンラインマジックキューブゲームとして実行するようにデプロイされます。 このアプリケーションは、コンテナーイメージを使用してACK Proクラスターにデプロイされます。 このトピックの次の手順を実行すると、マジックキューブゲームアプリケーションがACK Proクラスターにデプロイされます。
ACKを有効化し、ACKに権限を付与し、ACKクラスターを作成します。
ACKコンソール、Resource Orchestration Service (ROS) 、またはkubectlを使用して、マジックキューブゲームアプリケーションをデプロイします。
ack-cube Serviceの外部IPアドレスを使用して、インターネット経由でアプリケーションにアクセスします。
手順
次のいずれかの方法を選択して、マジックキューブゲームアプリケーションをデプロイします。
ACKコンソールを使用する: クラスターをすばやく作成し、アプリケーションをデプロイおよび公開し、ACKコンソールでアプリケーションにアクセスできます。
ROSの使用: ROSを使用して、数回クリックするだけでクラスター環境をデプロイし、アプリケーションにアクセスできます。
kubectlを使用する: kubectlを使用すると、クラスターをすばやく作成し、クラスターに接続し、アプリケーションをデプロイして公開し、クラスターにアクセスできます。 Cloud ShellまたはWorkbenchを使用してクラスターに接続することもできます。
ACKコンソール
初めてACKを使用する場合は、ACKを有効化し、ACKにアクセス許可を付与する必要があります。 次に、ACKクラスターを作成し、クラスターにマジックキューブゲームアプリケーションをデプロイします。
1. クラスターをすばやく作成する
ACKとACKの機能を正常に使用できるようにするには、まずACKと必要なクラウドサービスを有効化し、必要なデフォルトの役割をACKに割り当てる必要があります。 公式ガイドに従ってクラスター設定を構成し、承認を完了することを推奨します。 詳細については、「ACK管理クラスターの迅速な作成」をご参照ください。 ACKクラスターの課金およびACKクラスターで使用されるクラウドリソースの詳細については、「課金」をご参照ください。
ACKクラスターをすばやく作成する場合は、クラスターパラメーターにデフォルト設定を使用できます。 本番環境でクラスターを作成する場合は、「ACK管理クラスターの作成」をご参照ください。
ACKコンソールにログインします。 On theクラスターページをクリックします。クラスターの作成.
ページの上部で、[ACK管理クラスター] タブをクリックします。 [クラスター仕様] は [プロフェッショナル] を選択します。 インターネット経由でクラスターにアクセスする必要がある場合は、[APIサーバーをEIPで公開] を選択します。 次に、ページの右下隅にある [次へ: ノードプールの設定] をクリックします。
[インスタンスタイプ] セクションで、c6 compute-optimizedインスタンスファミリーに属するecs.c6.xlargeなど、4 vCoresと8 GiBのメモリを提供するインスタンスタイプを選択します。 次に、ページの右下隅にある [次へ: コンポーネントの設定] をクリックします。
[Monitor container] の [ACK Cluster Monitoring Basic Edition] を選択します。 ACK Cluster Monitoring Basic Editionは無料です。 次に、ページの右下隅にある [次へ: 注文の確認] をクリックします。
ページの右下隅にある [クラスターの作成] をクリックします。
2. アプリケーションのデプロイと公開
この手順では、展開を使用してステートレスアプリケーションを展開する方法と、アプリケーションをインターネットに公開する方法を示します。 アプリケーションは魔法のキューブゲームです。 デプロイの作成に使用されるパラメーターの詳細については、「デプロイを使用したステートレスアプリケーションの作成」をご参照ください。
[クラスター] ページで、ack-demoクラスターの名前をクリックします。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
[デプロイメント] ページの右上隅にある [イメージから作成] をクリックします。
[基本情報] ウィザードページで、アプリケーション名をack-cubeに設定します。
[次へ] をクリックします。 [コンテナー] ウィザードページで、コンテナーパラメーターを設定します。
パラメーター
説明
例
イメージ名
イメージ名を入力します。
この例では、
registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0
が指定されています。リソース制限
アプリケーションのリソース制限を指定します。 これにより、アプリケーションが過剰な量のリソースを占有することを防ぎます。
この例では、メモリの1 vCoreと1,024 MiBが指定されています。 エフェメラルストレージは空のままです。
必要なリソース
アプリケーション用に予約されているリソースの量を指定します。 これにより、リソース不足によるアプリケーションの使用不能を防ぎます。
この例では、メモリの0.5 vCoresと512 MiBが指定されています。 エフェメラルストレージは空のままです。
ポートマッピング
コンテナーポートを設定します。
この例では、TCPポート80が設定され、ack-cubeと名付けられています。
[次へ] をクリックします。 [詳細] ウィザードページで、[サービス] の右側にある [作成] をクリックします。
[サービスの作成] ダイアログボックスで、サービスパラメーターを設定し、[作成] をクリックします。 これにより、ack-cubeアプリケーションを公開するサービスが作成されます。
パラメーター
説明
例
名前
サービスの名前を入力します。
ack-cube-svc
サービスタイプ
サービスのタイプ。 このパラメータは、サービスへのアクセス方法を指定します。 SLB > CLB > リソースの作成を選択します。 テスト環境では、Classic Load Balancer (CLB) リソースのデフォルト設定を使用できます。
この例では、デフォルト設定を使用します。
ポートマッピング
[サービスポート] と [コンテナーポート] を指定します。 コンテナーポートは、バックエンドポッドで公開されているものと同じである必要があります。
この例では、サービスポートとコンテナーポートは両方とも80に設定されています。
[詳細設定] ウィザードページの右下隅で、[作成] をクリックします。
アプリケーションが作成されると、[完了] ウィザードページにリダイレクトされます。 アプリケーションに含まれるリソースオブジェクトを見つけ、[詳細の表示] をクリックしてアプリケーションの詳細を表示します。
3. アプリケーションにアクセスするAccess the application
この手順では、サービスを使用してアプリケーションにアクセスする方法を示します。
にログインします。ACKコンソール . [クラスター] ページで、作成したクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 default名前空間のack-cubeアプリケーションをクリックします。 [アクセス方法] タブをクリックします。 ack-cube-svc Serviceを選択し、[外部エンドポイント] 列のハイパーリンクをクリックしてマジックキューブゲームを開始します。 を選択します。
ROS
ROSを使用すると、テンプレートを使用して、ACKクラスターとマジックキューブゲームアプリケーションをクラスターに10分以内にすばやくデプロイできます。 アプリケーション用に作成されたSLBインスタンスにパブリックIPアドレスが割り当てられます。 ブラウザを使用してこのIPアドレスにアクセスし、マジックキューブゲームを開始できます。
ACKとACKの機能を正常に使用できるようにするには、まずACKと必要なクラウドサービスを有効化し、必要なデフォルトの役割をACKに割り当てる必要があります。 公式ガイドに従ってクラスター設定を構成し、承認を完了することを推奨します。 詳細については、「ACK管理クラスターの迅速な作成」をご参照ください。 ACKクラスターの課金およびACKクラスターで使用されるクラウドリソースの詳細については、「課金」をご参照ください。
クイック設定リンクをクリックして、ROSコンソールに移動します。 スタックの作成ページが表示されます。 ページの上部で、スタックを作成するリージョンを選択します。 この例では、中国 (フフホト) が選択されています。 その他のパラメーターを設定し、[作成] をクリックします。
パラメーター
説明
例
スタック名
カスタム名を入力することができます。
stack_2023-06-12_cBesTX8FB
クラスター名
カスタム名を入力することができます。
説明既存のクラスターの名前は指定できません。
ack-demo-cube
VSwitch利用可能ゾーン
ゾーンを選択します。
ゾーン A
[インスタンスタイプ]
インスタンスファミリーを選択します。
インスタンスタイプは、[vCoresの数] と [メモリサイズ] でフィルタリングできます。 [アーキテクチャ] および [タイプ] パラメーターを設定して、インスタンスタイプをフィルタリングすることもできます。
汎用タイプg6
Workerシステムディスクのカテゴリ
ノードのシステムディスクタイプを選択します。
使用可能なディスクタイプは、選択したインスタンスタイプによって異なります。 さまざまなインスタンスタイプでサポートされているディスクタイプの詳細については、「インスタンスファミリーの概要」をご参照ください。 ドロップダウンリストに表示されないディスクタイプは、選択したインスタンスタイプではサポートされていません。
cloud_essd
インスタンスパスワード
ノードへのログインに使用するパスワードを入力します。
パスワードを入力してください。
[スタック情報] タブの [ステータス] パラメーターに [作成済み] が表示されている場合、スタックが作成されます。
[スタック情報] タブの [ステータス] パラメーターに [作成済み] が表示されない場合、スタックは作成されません。 [クイック診断] をクリックすると、診断の詳細が表示されます。
アプリケーションへのアクセスをテストします。
[スタック情報] タブの [ステータス] パラメーターに [作成済み] が表示されるまで待ちます。 次に、[スタック情報] タブの右側にある [出力] タブをクリックします。 CubeAddressの横にあるハイパーリンクをクリックして、マジックキューブゲームを開始します。
kubectl
1. クラスターをすばやく作成する
ACKとACKの機能を正常に使用できるようにするには、まずACKと必要なクラウドサービスを有効化し、必要なデフォルトの役割をACKに割り当てる必要があります。 公式ガイドに従ってクラスター設定を構成し、承認を完了することを推奨します。 詳細については、「ACK管理クラスターの迅速な作成」をご参照ください。 ACKクラスターの課金およびACKクラスターで使用されるクラウドリソースの詳細については、「課金」をご参照ください。
ACKクラスターをすばやく作成する場合は、クラスターパラメーターにデフォルト設定を使用できます。 本番環境でクラスターを作成する場合は、「ACK管理クラスターの作成」をご参照ください。
ACKコンソールにログインします。 On theクラスターページをクリックします。クラスターの作成.
ページの上部で、[ACK管理クラスター] タブをクリックします。 [クラスター仕様] は [プロフェッショナル] を選択します。 インターネット経由でクラスターにアクセスする必要がある場合は、[APIサーバーをEIPで公開] を選択します。 次に、ページの右下隅にある [次へ: ノードプールの設定] をクリックします。
[インスタンスタイプ] セクションで、c6 compute-optimizedインスタンスファミリーに属するecs.c6.xlargeなど、4 vCoresと8 GiBのメモリを提供するインスタンスタイプを選択します。 次に、ページの右下隅にある [次へ: コンポーネントの設定] をクリックします。
[Monitor container] の [ACK Cluster Monitoring Basic Edition] を選択します。 ACK Cluster Monitoring Basic Editionは無料です。 次に、ページの右下隅にある [次へ: 注文の確認] をクリックします。
ページの右下隅にある [クラスターの作成] をクリックします。
2. クラスターへの接続
クラスターに接続するには、kubectl、Workbench、またはCloud Shellを使用できます。
CloudShell
インターネット経由でクラスターに接続したいが、kubectlクライアントを設定したくない場合は、Alibaba Cloudが提供するwebベースのコマンドラインツールであるCloud Shellを使用できます。 Cloud Shellを起動すると、Cloud Shellは自動的にLinux VMを作成します。 Linux VMは無料で使用できます。 VMには、クラウド管理ツールとシステムツールがプリインストールされています。 これらのツールは、Cloud Shellが提供するWeb IDEと一緒に使用して、クラウドリソースを管理できます。 この手順では、Cloud Shellを使用してACKクラスターに接続する方法を示します。 詳細については、「Cloud Shellでのkubectlの使用によるACKクラスターの管理」をご参照ください。
にログインします。ACKコンソール. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。 次に、作成したクラスターの名前をクリックします。 On theクラスター情報ページ、選択.
Cloud Shellを起動するには数秒かかります。 Cloud Shellの起動後、Cloud Shellインターフェイスでkubectlコマンドを実行して、クラスターとクラスター内のアプリケーションを管理できます。
kubectl
インターネット経由でクラスターに接続する場合は、オンプレミスマシンにkubectlクライアントをインストールできます。 この手順では、kubectlクライアントを使用してACKクラスターに接続する方法を示します。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
kubectlクライアントをインストールして設定します。 詳細については、「kubectlのインストールと設定」をご参照ください。
にログインします。ACKコンソール. 左側のナビゲーションウィンドウで、クラスター. [クラスター] ページで、ack-demoクラスターを見つけ、その名前をクリックします。 [クラスター情報] ページで、[接続情報] タブをクリックします。 [パブリックアクセス] タブの [コピー] をクリックして、インターネット経由でクラスターにアクセスするために使用される資格情報をコピーします。 に資格情報を貼り付けます。設定ファイル内の$ホーム /.kubeディレクトリを作成し、ファイルを保存してから終了します。
説明が. kubeフォルダーと設定ファイルが存在しない$ホーム /ディレクトリを作成するには、フォルダとファイルを手動で作成する必要があります。
kubectlコマンドを実行して、クラスターのネットワーク接続を確認します。
次のコマンドを実行して、クラスターの名前空間を照会します。
kubectl get namespace
期待される出力:
NAME STATUS AGE arms-prom Active 4h39m default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
[ワークベンチ]
インターネット経由でクラスターに接続する必要がない場合は、Alibaba Cloudが提供するリモート接続ツールであるWorkbenchを使用して、追加のソフトウェアをインストールすることなくブラウザーからACKクラスターに接続できます。 詳細については、「Workbenchを介したインスタンスへの接続」をご参照ください。
にログインします。ACKコンソール. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。 次に、作成したクラスターの名前をクリックします。 On theクラスター情報ページ、選択.
Workbenchを開始するには数秒かかります。 Workbenchの起動後、Workbenchインターフェイスでkubectlコマンドを実行して、クラスターとクラスター内のアプリケーションを管理できます。
3. アプリケーションのデプロイと公開
この手順では、デプロイを作成してkubectlを使用してステートレスアプリケーションをデプロイする方法と、LoadBalancerサービスを使用してアプリケーションを公開する方法を示します。 アプリケーションを公開する方法の詳細については、「自動作成されたSLBインスタンスを使用してアプリケーションを公開する」をご参照ください。
次のYAMLテンプレートを使用して、ack-cube.yamlファイルを作成します。
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: ack-cube # The name of the application. labels: app: ack-cube spec: replicas: 2 # The number of pod replicas. selector: matchLabels: app: ack-cube # You must specify the same value for the selector of the Service that is used to expose the application. template: metadata: labels: app: ack-cube spec: containers: - name: ack-cube image: registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 # Replace the value with the address of the image that you want to use in the <image_name:tags> format. ports: - containerPort: 80 # The container port that you want to expose. resources: limits: # The resource limits. cpu: '1' memory: 1Gi requests: # The resource requests. cpu: 500m memory: 512Mi
次のコマンドを実行して、ack-cubeアプリケーションをデプロイします。
kubectl apply -f ack-cube.yaml
次のコマンドを実行して、アプリケーションのステータスを照会します。
kubectl get deployment ack-cube
期待される出力:
NAME READY UP-TO-DATE AVAILABLE AGE ack-cube 2/2 2 2 96s
次のYAMLテンプレートを使用して、ack-cube-svc.yamlファイルを作成します。 ack-cube.yamlファイルの
selector
をmatchLabels
の値に設定します。 この例では、値はapp: ack-cube
です。 これにより、アプリケーションがサービスのバックエンドに追加されます。apiVersion: v1 kind: Service metadata: labels: app: ack-cube name: ack-cube-svc namespace: default spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: ack-cube # You must specify the value of the matchLabels parameter in the YAML file that is used to create the Deployment. type: LoadBalancer
次のコマンドを実行して、ack-cube-svcという名前のサービスを作成し、サービスを使用してアプリケーションを公開します。
ACKは、インターネットに接続するSLBインスタンスを自動的に作成し、インスタンスをサービスに関連付けます。
kubectl apply -f ack-cube-svc.yaml
次のコマンドを実行して、LoadBalancerサービスが作成されていることを確認します。
作成したアプリケーションは、出力のEXTERNAL-IP列のIPアドレスを使用して公開されます。
kubectl get svc ack-cube-svc
期待される出力:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ack-cube-svc LoadBalancer 172.16.72.161 47.94.xx.xx 80:31547/TCP 32s
(オプション) リリースリソース
ACK Proクラスターの課金対象項目には、クラスター管理とクラウドリソースが含まれます。 クラスター管理料金はACKで課金されます。 クラウドリソース料金は、対応するクラウドサービスによって課金されます。
クラスターが不要になった場合は、クラスターを削除できます。 ACKコンソールにログインします。 [クラスター] ページで、クラスターの [操作] 列で [詳細] > [削除] を選択してクラスターを削除します。 [クラスターと関連リソースの削除] ページで、[削除するリソースを選択] し、[削除] をクリックします。 ACKクラスターを削除する方法の詳細については、「クラスターの削除」をご参照ください。
関連ドキュメント
ビジネスのリソース要求が予測できない場合、または定期的に変更される場合は、ビジネスの自動スケーリングを有効にすることを推奨します。 たとえば、webアプリケーション、ゲームサービス、またはオンライン教育アプリケーションの自動スケーリングを有効にできます。 自動スケーリング機能には、ワークロードスケーリングと計算リソースのスケーリングが含まれます。 詳細については、「自動スケーリングの概要」をご参照ください。
サービスを介してアプリケーションを公開するだけでなく、Ingressを使用してレイヤー7でアプリケーショントラフィックのルーティングを有効にできます。 詳細については、「NGINX Ingressの作成」をご参照ください。
コンテナーのパフォーマンスを監視するだけでなく、クラスターインフラストラクチャ、アプリケーションのパフォーマンス、およびワークロードの操作を監視できます。 Kubernetesの可観測機能には、モニタリングとロギングが含まれます。 モニタリングにより、開発者はシステム操作を追跡できます。 ロギングは、診断およびトラブルシューティングを容易にする。 詳細については、「Observability system overview」をご参照ください。