Container > NHN Container Service(NCS) > 使用ガイド

テンプレート

テンプレートは、ワークロードの実行に必要なコンテナ、ネットワークなどのリソースを定義するサービスです。

テンプレートの作成

NHN Container Service(NCS)を使用するには、先にテンプレートを作成する必要があります。Container > NHN Container Service(NCS)ページでテンプレートタブをクリックし、テンプレートの作成をクリックします。テンプレートの作成に必要な項目は次のとおりです。

項目 説明
テンプレート名 テンプレートの名前。32文字以内の英字小文字と数字、一部記号(-)のみ入力できます。
テンプレートの説明 テンプレートの説明。255文字以内で入力できます。
コンテナ名 コンテナの名前。253文字以内の英字小文字と数字、一部記号(-)のみ入力できます。
コンテナレジストリ コンテナイメージのレジストリ
  • NHN Container Registry(NCR)使い方はNCR使用ガイドをご覧ください。
  • Docker Hubまたはその他レジストリ使用時レジストリタイプを選択する必要があります。
レジストリタイプ レジストリのタイプ。パブリックまたはプライベートを選択できます。
イメージURL コンテナイメージの情報。255文字以内の英字小文字と数字、一部記号(-, \_, ., ,, /, @, :)のみ入力できます。
レジストリID プライベートレジストリ認証に使用されるID
レジストリパスワード プライベートレジストリ認証に使用されるパスワード
メモリ コンテナに割り当てるメモリ
ポート コンテナで使用するポート
CPU コンテナに割り当てるCPU数。0.25~16の間の数を0.25個単位で入力できます。
GPU使用有無 コンテナのGPU使用有無を決定します。
GPUタイプ コンテナに割り当てるGPUタイプを決定します。
コマンド コンテナが起動する時に実行されるコマンド。イメージに指定されたENTRYPOINTより優先されます。
引数 コンテナの起動時に渡される引数。イメージに指定されたCMDより優先されます。
作業ディレクトリ コンテナの作業ディレクトリ。イメージに指定されたWORKDIRより優先されます。
環境変数 コンテナに設定する環境変数
ライフサイクルフック コンテナの作成、終了時に実行するコマンドを設定できます。
作成直後に入力したコマンドが失敗すると、コンテナが再起動されます。
コマンド実行前にコンテナが終了した場合、コマンドが実行されない場合があります。
  • ワークロード作業のGracePeriodSecondsは30秒です。
作成直後(postStart)例) bash,-c,curl $URL/postStart
終了直前(preStop)例) bash,-c,curl $URL/preStop
コンフィグマップ Object Storageにアップロードしたファイルをコンテナディレクトリにマウントして使用できます。
  • Appkey:ファイルデータを使用するプロジェクトのObject StorageサービスのAppkeyを入力します。
  • User Access Key: Object StorageサービスにアクセスするユーザーのUser Access Keyを入力します。 User Access KeyはNHN Cloudコンソールのアカウント > APIセキュリティ設定 ページで作成および確認できます。
  • User Secret Key: Object StorageサービスにアクセスするユーザーのSecret Access Keyを入力します。 Secret Access KeyはNHN Cloudコンソールのアカウント > APIセキュリティ設定ページで作成および確認できます。
  • オブジェクトURL:オブジェクトダウンロードURLを入力します。
  • コンテナマウントパス:コンテナのマウントパスを入力します。
    • 入力したパスにファイルがマウントされます。
シークレット Secure Key Managerに保存した機密データファイルをコンテナディレクトリにマウントして使用することができます。
  • キーID:Secret Key Managerサービスの機密データタイプのIDを入力します。
  • コンテナのマウントパス: コンテナのマウントパスを入力します。
    • 入力されたパスにファイルがマウントされます。
NASストレージ接続 コンテナに接続するNASストレージを入力します。
  • 名前:ストレージ名。 63文字以内の英字小文字と数字、一部記号(-)のみ入力できます。
  • NAS接続パス: NASストレージの接続情報を入力します。
    • NASストレージを使用する場合、Storage > NASページで接続するNASストレージの接続情報を入力します。使い方はNAS使用ガイドを参照してください。
    • 別途構築されたNFSv3サーバーを使用する場合、NFSサーバーのマウントポイントを入力します。
  • コンテナ接続パス:コンテナのマウントパスを入力します。
    • $コンテナ接続パス/$ストレージ名にマウントされます。
テンプレートと同じVPCを使用するNASストレージのみ使用できます。
状態点検 コンテナの状態を点検するコマンドを構成できます。
  • アクティブかどうか(LivenessProbe):コンテナが動作中かどうかを確認します。
  • 起動するかどうか(startupProbe):コンテナ内のアプリケーションが起動されたかどうかを確認します。
状態点検が失敗した場合はコンテナが再起動されます。
実行制限時間 初期化コンテナのみ実行制限を設定できます。
設定しない場合、30秒に自動設定されます。
実行制限時間を超えた場合、ワークロードはFailed状態に変更されます。
ネットワーク VPCに定義されたサブネットのうち、ワークロードに接続するサブネット
テンプレートバージョン名 テンプレートのバージョン名。16文字以内の英小文字、数字、一部記号(-)のみ入力できます。
テンプレートバージョン説明 テンプレートバージョンの説明、255文字以内で入力できます。
DNS ワークロードで使用するDNSサーバーを設定します。
Private DNS連動が必要な場合はPrivate DNS Server IPを入力します。
HostAliases IPアドレスにホスト名を設定します。

必要な情報を入力し、テンプレートの作成をクリックするとテンプレートが作成されます。

[注意] NCS環境点検作業または一時的なエラーによりコンテナ(task)が再起動される場合、作成されたログとコンテナ内のデータは初期化されます。再起動されても維持が必要なデータはNASストレージを使用してください。

[参考] /var/${ワークロード名}パスにコンテナ間の一時的な共有ストレージが提供されます。

[参考] テンプレートに同じプロトコルのポートは1つのみ追加できます。 TCPとHTTP, HTTPS, TERMINATED_HTTPSは同じポートを使用できません。 HTTP, TERMINATED_HTTPSプロトコルを使用するとロードバランサーでClient IPを識別できるX-Forwarded-For Headerが追加されます。

[参考] コンテナごとに臨時ストレージは20GBが提供されます。提供された使用量を超える場合、コンテナが再起動され、一時ストレージは初期化されます。

[参考] コンフィグマップとシークレットは、テンプレート作成時の情報を使用します。元のファイルやシークレットデータが変更されても、既に作成されたテンプレートの情報は影響を受けません。 コンフィグマップは、同一組織内のプロジェクトObject Storageのみ使用できます。 シークレットは同じプロジェクトのSecure Key Managerを活用します。シークレットを使用するには、まずSecure Key Managerサービスを有効にする必要があります。 [参考] 初期化コンテナはTCP、UDPプロトコルのみ使用できます。 初期化コンテナはライフサイクルフック、状態チェックを使用できません。 初期化コンテナはロードバランサーに含まれません。

テンプレートの照会

作成したテンプレートはContainer > NHN Container Service(NCS)ページのテンプレートタブで確認できます。テンプレートリストには使用中のワークロード数、最新テンプレートバージョン、テンプレートバージョン数が表示されます。

基本情報

特定テンプレートをクリックして基本情報タブで詳細情報を確認できます。

項目 説明
名前 テンプレートの名前とID
説明 テンプレートの説明
コンテナ テンプレートの最新バージョンに定義されたコンテナの数
CPU テンプレートの最新バージョンに定義されたコンテナのCPU数を加えた数
GPU テンプレートの最新バージョンに定義されたコンテナのGPU数を加えた数
作成日 テンプレートが作成された日付
VPC テンプレートに設定されたVPCの後ろ
サブネット テンプレートに設定されたサブネット
DNS テンプレートに設定されたDNS Server情報
HostAliases テンプレートに設定されたHostAliases情報
最新テンプレートバージョン テンプレートに作成された最新バージョン
テンプレートバージョン数 テンプレートに作成されたバージョン数
使用中のワークロード数 テンプレートを使用しているワークロードの数

使用中のワークロード

特定テンプレートをクリックした後、使用中のワークロード タブに移動してテンプレートを使用中のワークロードリストを確認できます。

テンプレートの削除

削除するテンプレートを選択し、テンプレートの削除をクリックすると削除されます。

[参考] 該当テンプレートを使用しているワークロードが存在する場合、テンプレートを削除できません。

バージョンの作成

テンプレートリストでバージョン表示をクリックし、バージョンの作成をクリックします。テンプレート作成とバージョン作成の他の項目は次のとおりです。

項目 説明
テンプレートバージョン 新しいバージョンの基準テンプレートバージョンを選択します。
コンテナ修正 基準テンプレートバージョンに設定された情報が自動的に追加されます。レジストリアカウントとコンフィグマップのAppKey、User Access Key、User Secret Key情報は、既存の情報を使用するかどうかを選択できます。
即時配布 基準テンプレートバージョンを使用中のワークロードに新しいバージョンのテンプレートを即時適用するかどうかを選択できます。即時配布を使用する場合、ローリングアップデート方式でワークロードのテンプレートが変更されます。
ネットワーク バージョン作成ではワークロードに接続するサブネットを選択できません。テンプレート作成で選択したサブネットを使用します。

バージョン照会

テンプレートリストでバージョン表示をクリックしてバージョンリストを確認できます。バージョンリストにはコンテナリソースの合計が表示されます。

基本情報

特定バージョンをクリックして基本情報タブで詳細情報を確認できます。

コンテナ

特定バージョンをクリックした後、コンテナタブに移動してバージョンに追加したコンテナリストを確認できます。コンテナリストから特定コンテナを選択して詳細情報を確認できます。

項目 説明
コンテナ名 コンテナの名前
タイプ コンテナタイプ
イメージURL コンテナイメージの情報
メモリ コンテナに割り当てられたメモリ
CPU コンテナに割り当てられたCPU数
GPU コンテナに割り当てられたGPU情報
ポート コンテナで使用するポート
コマンド コンテナ起動時に実行されるコマンド
引数 コンテナの起動時に渡される引数
作業ディレクトリ コンテナの作業ディレクトリ
環境変数 コンテナに設定された環境変数
ストレージ コンテナに接続されたストレージ
ライフサイクルフック コンテナに設定されたライフサイクルフック
コンフィグマップ コンテナに接続されたオブジェクトファイルとマウントパス
シークレット コンテナに接続された機密データとマウントパス
状態点検 コンテナに設定された状態点検

テンプレートの削除

特定のバージョンをクリックした後、使用中のワークロードタブに移動して、そのバージョンを使用しているワークロードのリストを確認できます。

バージョンの削除

削除するバージョンを選択し、バージョンの削除をクリックすると削除されます。

[参考] 該当バージョンを使用するワークロードが存在する場合はバージョンを削除できません。

ワークロード

定義したテンプレートを利用してコンテナを実行するサービスです。

ワークロードの作成

Container > NHN Container Service(NCS) ページでワークロードタブをクリックし、ワークロードの作成をクリックします。ワークロードの作成に必要な項目は次のとおりです。

項目 説明
テンプレート テンプレートの名前
  • テンプレートの選択をクリックして作成されたテンプレートの中から選択します。
  • テンプレートバージョンの選択をクリックして、テンプレートに作成されたバージョンの中から選択します
  • テンプレートの管理をクリックして、新しいテンプレートを作成します。
名前 ワークロードの名前。32文字以内の英字小文字と数字、一部記号(-)のみ入力できます。
説明 ワークロードの説明。255文字以内で入力できます。
作業リクエスト数 実行するテンプレート数。1~100の間の値を入力できます。
配布コントローラー ワークロード作業の配布コントローラーを選択できます。
  • デプロイメント: Stateless式でコンテナIPが流動的で、作業が並列に実行されます。
  • ストレートフルセット: Stateful方式でコンテナIPが固定され、 作業が順次実行されます。
予約実行 時間ベースのスケジュールを設定してワークロード実行を予約できます。
  • 基準時間:予約タスク時間に対するタイムゾーンを指定します。
  • Cron式:予約の繰り返し周期をCron式で入力できます。
  • 予約実行ヒストリー保管数:終了した予約タスクを保管する最大数を入力します。保管された作業はログ、イベント、コンテナ情報を確認できます。
  • 同時実行ポリシー:作業繰り返し周期によって作成された作業の同時性ポリシーを指定します。
    • Forbid:既存作業が完了していない場合、新たに実行しません。
    • Replace:既存の作業が新しい作業に 置き換えられます。置き換えられた場合、既存作業のヒストリーは残りません。
ワークロードの予約を設定すると、作業リクエスト数は1つになり、配布コントローラーはデプロイメントに固定されます。
ワークロード実行周期が10分以下の場合、ロードバランサーを有効にできません。
オートスケーラー リソース使用率に応じて、ワークロードの作業数を自動調整できます。
  • 増設/縮小条件:監視するリソース指標、基準値、維持時間を指定します。
  • 最大/最小作業数:自動調整される最大/最小作業数を設定します。
  • 増設/縮小後の待機時間:増設/縮小が発生した後、再度発生するまでの待機時間を設定します。
予約実行を設定した場合、オートスケーラーは使用できません。
終了予約 ワークロードの作業終了時間を予約設定できます。
  • 基準時間:作業終了予約時間のタイムゾーンを指定します。
  • 終了日時:作業が終了する時間を入力できます。
予約された終了時間になると、全ての作業が終了し、FIP、ドメインを含む全てのリソースは削除されます。
ロードバランサー テンプレートのコンテナ情報にポートが指定されている場合にのみ使用ボタンが有効になります。
  • Floating IP: Floating IPを使用するためには、必ずインターネットゲートウェイが設定されたサブネットに接続されている必要があります。
    • 外部からコンテナにアクセスするにはFloating IPを使用する必要があります。 Floating IPを使用するとdomain URLが追加されます。
  • ヘルスチェック:ロードバランサーでワークロードのヘルスチェックを試行します。
  • IPアクセス制御グループ:アクセス制御グループをロードバランサーに適用できます。
  • コンテナでTERMINATED_HTTPSプロトコルを使用する場合、SSL証明書を登録する必要があります。
  • ロードバランサーのポートとプロトコルはテンプレートのコンテナに定義されたポートとプロトコルを使用します。
レガシーネットワーク環境ではロードバランサーを使用できません。
内部ロードバランサー NCS内でのみ通信可能なロードバランサーを使用できます。テンプレートのコンテナ情報にポートが指定されている場合のみ、使用ボタンが有効になります。
  • IP:ロードバランサーのIPを指定します。
    • 自動割り当て:ワークロードのサブネットから割り当てられたIPを使用します。
    • 指定:特定IPを使用します。 他のリソースで使用しているIPを入力した場合、ワークロードはそのIPで他のリソースと連動できません。
  • 内部ロードバランサーはTCP、UDPプロトコルのみをサポートします。 HTTP、HTTPS、TERMINATED_HTTPSが指定された場合は、TCPに変更されて作成されます。
Private DNS VPC内でアクセス可能なドメインを使用できます。
  • Private DNS Zone:レコードセットを作成するZoneを選択します。
  • TTL:レコードセット情報の更新周期を秒単位で入力します。
セキュリティグループ ワークロードのセキュリティグループを指定できます。
ワークロードセキュリティグループを選択した場合、コンテナポートのセキュリティルールを作成する必要があります。
ワークロードセキュリティグループを選択しない場合、NCSで作成したセキュリティグループが適用され、コンテナポートのセキュリティルールが自動的に作成されます。

必要な情報を入力し、ワークロードの作成をクリックするとワークロードが作成されます。

[参考] レガシーネットワーク環境ではロードバランサーを使用できません。 予約設定時、作業リクエスト数は1個に固定されます。 ワークロード実行周期が10分以下の場合、ロードバランサーを有効にできません。 同時実行ポリシー(Replace)によって既存作業が新しい作業に置き換えられる場合、既存作業のヒストリーは残りません。

[参考] 予約実行のCron式(* * * * *)の各フィールドの意味は次のとおりです。

フィールド名 値の許容範囲 許容される特殊文字
0-59 * / , -
時間 0-23 * / , -
1-31 * / , ?
1-12
JAN-DEC
* / , -
曜日 0-6
SUN-SAT
* / , ?

[参考] 内部ロードバランサーIPでローカル通信を行うことはできません。 [注意] ワークロードで使用中のPrivate DNS ZoneまたはPrivate DNSレコードセットを削除すると、VPC内でドメイン連動ができなくなります。

ワークロードの照会

作成したワークロードはContainer > NHN Container Service(NCS)ページのワークロードタブで確認できます。

基本情報

特定ワークロードをクリックして基本情報タブで詳細情報を確認できます。

項目 説明
名前 ワークロードの名前とID
説明 ワークロードの説明
テンプレート 使用されたテンプレートの名前
配布コントローラー ワークロードの配布コントローラー
作業リクエスト数 実行するテンプレートの数
作業実行数 実行されたテンプレートの数
オートスケーラー ワークロードに設定されたオートスケーラー情報
作成日 ワークロードが作成された日付
VPC ワークロードに設定されたVPC
サブネット ワークロードに設定されたサブネット
セキュリティグループ ワークロードに設定されたセキュリティグループの名前
Private DNS ワークロードに設定されたPrivate DNS情報
ロードバランサー ロードバランサー情報
内部ロードバランサー 内部ロードバランサー情報

[参考] ワークロードの状態は、含まれているすべてのコンテナとロードバランサーの状態を考慮して決定されます。個別コンテナの状態は実行コンテナタブで確認できます。

実行コンテナ

特定ワークロードをクリックした後、実行コンテナタブで詳細表示をクリックしてコンテナ詳細情報を確認できます。

項目 説明
コンテナ名 コンテナの名前
タイプ コンテナタイプ
イメージURL コンテナイメージの情報
IP コンテナに割り当てられたIPアドレス
状態 コンテナの状態
再起動回数 コンテナが再起動した回数
メモリ コンテナに割り当てられたメモリ
CPU コンテナに割り当てられたCPUの数
GPU コンテナに割り当てられたGPUの情報
ポート コンテナで使用するポート
コマンド コンテナ起動時に実行されるコマンド
引数 コンテナの起動時に渡される引数
作業ディレクトリ コンテナの作業ディレクトリ
環境変数 コンテナに設定された環境変数
ストレージ コンテナに接続されたストレージ
ライフサイクルフック コンテナに設定されたライフサイクルフック
コンフィグマップ コンテナに接続されたオブジェクトファイルとマウントパス
シークレット コンテナに接続された機密データとマウントパス
状態点検 コンテナに設定された状態点検
開始日 コンテナが起動した日付

作業再起動

特定ワークロードをクリックした後、実行コンテナタブで作業再起動をクリックしてワークロードの特定作業を再起動できます。

[注意] 作業が再起動されると作業のモニタリング、イベント、ログ情報が削除され、確認できません。 再起動中は該当作業を使用できません。

コンテナ接続

特定ワークロードをクリックした後、実行コンテナタブでコンテナ接続をクリックしてコンテナに接続できます。 コンテナに接続するためには、イメージにbashまたはshのようなshellがインストールされている必要があります。

[参考] コンテナ接続後、3分間動作がなかった場合は接続が終了します。 コンテナのlocale設定により、他の言語は入力されない場合があります。 ターミナルページでページを更新した場合、ターミナル接続は終了します。

[注意] 本機能は顧客の便宜性のために提供されるサービスです。コンソールに接続して実行するすべてのコマンドおよび、それに伴う結果に対する責任はユーザーにあります。

モニタリング

特定ワークロードをクリックした後、モニタリングタブでコンテナのリソース使用率を確認できます。コンテナ指標は15秒単位で収集され、最大1年間保管されます。 モニタリングを提供する項目は次のとおりです。

項目 単位 説明
CPU使用率 % コンテナに割り当てられたCPU基準で使用率が提供されます。
メモリ使用率 % コンテナに割り当てられたMemory基準で使用率が提供されます。
ネットワークデータ送信 bps ワークロードの作業基準でネットワークデータ送信情報が提供されます。
ネットワークデータ受信 bps ワークロードの作業基準でネットワークデータ受信情報が提供されます。
ディスク使用率 % コンテナに追加されたNASストレージの使用率が提供されます。
臨時ストレージ使用率 % ワークロードの作業基準で臨時ストレージ使用率が提供されます。
GPU使用率 % コンテナに割り当てられた GPUの使用率が提供されます。
GPUメモリ使用率 % コンテナに割り当てられた GPUメモリの使用率が提供されます。
GPU電力使用量 mW コンテナに割り当てられた GPU 電力使用量が提供されます。
GPU温度 コンテナに割り当てられたGPU温度が提供されます。

イベント

特定ワークロードをクリックし、イベントタブでコンテナにて発生したイベント情報を確認できます。イベント状態選択をクリックしてイベントの状態ごとにイベントを確認できます。

項目 説明
状態 イベントの状態
タイプ イベントのタイプ
説明 イベントの説明
イベント最初の発生日時 イベントの最初の発生日時
イベント最終発生日時 イベントの最終発生日時
発生数 イベントが発生した回数

[参考] イベントは最大30日間のみ維持され、30日以前の情報は確認できません。 コンテナの現在と最後の状態についての詳細理由もイベントで確認できます。

ログ

特定ワークロードをクリックした後、ログタブでコンテナのログを確認できます。 照会したい時間に多くのログが発生した場合、一部のログだけが照会される場合があります。すべてのログが照会されない場合は、時間範囲を減らして再試行してください。

[参考] ログは2か月間保管されます。

ワークロード実行ヒストリー

ワークロード実行ヒストリーを確認するワークロードを選択し、ワークロード実行ヒストリータブでワークロードテンプレートの変更進行状況および履歴を確認できます。

項目 説明
テンプレート名 ワークロードが使用するテンプレート名
実行時間 該当テンプレートを使用するワークロードの配布開始時間
終了時間 該当テンプレートを使用するワークロードの終了時間
状態 配布状態
succeeded:配布完了
pending:配布中
terminated:終了したワークロード

照会されたヒストリー情報をクリックしてワークロード実行ヒストリー詳細情報を確認できます。

[参考] 実行中のワークロードのヒストリーには終了時間が表示されず、状態がsucceededで維持されます。 [注意] ワークロード削除後はワークロード実行ヒストリーを確認できません。

予約実行ヒストリー

予約実行ヒストリーを確認するワークロードを選択して予約実行ヒストリータブで実行された作業リストを確認できます。

項目 説明
作業ID 実行された予約タスクID
実行時間 予約タスク実行時間
終了時間 予約タスク終了時間
状態 予約タスク状態
waiting:予約実行準備中
running:予約タスク実行中
completed:予約タスク正常終了
error:予約タスク異常終了

ワークロードの変更

変更するワークロードを選択した後、基本情報タブで変更をクリックして実行中のワークロードを変更できます。

項目 説明
説明 ワークロードの説明
テンプレート 実行中のワークロードのテンプレート変更
テンプレートを変更すると、ローリングアップデート方式でワークロードが無中断配布されます。
作業が1つずつ順番に置き換えられ配布中に既存作業と新しい作業が同時に実行された状態になる場合があります。
ワークロード実行ヒストリータブで変更結果を確認できます。
作業リクエスト数 実行中のワークロードの作業数の変更
作業リクエスト数増加:既存の作業は維持しながら新しい作業が作成されます。
作業リクエスト数の減少:減少した作業数だけ作業が終了します。
オートスケーラー 実行中のワークロードのオートスケーラー設定の変更
終了予約 ワークロード作業の終了予約設定を変更
予約実行 予約実行情報を変更
予約実行ヒストリー保管数は、変更時間から設定され、変更前に実行された作業がすべて削除されるまで、ヒストリー数と設定値が一致しない場合があります。
ロードバランサー ワークロードのロードバランサー, Floating IP, ヘルスチェック, SSL証明書を使用するかどうかを変更

[注意] ロードバランサーを使用してワークロードサービスを利用中にテンプレートを変更する場合、瞬断が発生する可能性があります。

[参考] ワークロードがPending, Suspended, Terminated状態の場合、ロードバランサーを変更できません。 ワークロード変更に失敗した場合(例:イメージエラー)変更試行が終了し、作業交換が発生しません。

ワークロード停止/再起動

ワークロード停止を実行すると、ワークロードのすべての作業が終了します。

ワークロードの再起動を実行すると、ロードバランサーIPは変更されます。

[参考] 配布コントローラーによっては、ワークロードの停止/再起動を実行すると、コンテナIPが変更される場合があります。

[注意] ワークロードを停止するとログ、イベント、臨時ストレージはは初期化されます。 ワークロードを停止しても作業繰り返し周期になると予約実行ヒストリーは削除されます。

ワークロードの削除

削除するワークロードを選択し、ワークロードの削除をクリックすると削除されます。

NCSサービス利用ロール

ロールを設定することで、NCSサービスおよびリソースにアクセスできるロールを制御できます。

NCS サービス利用ロールの修正

NCSの実行ロールはNHN Cloud Console画面で設定します。 1. プロジェクト 画面でメンバー管理タブをクリックします。 2. ロールを変更するメンバーを選択します。 3. 下部のロール修正をクリックして、サービス別のロールを追加します。 * 左側の領域で基本インフラサービスを選択した後、右側の領域でロールを選択します。 4. 完了をクリックしてプロジェクトメンバーに変更されたロールを適用します。

ロールの詳細については、メンバー管理を参照してください。

ロールの詳細まとめ

NCSサービスを利用するためには、次のロールが必要です。

ロール 権限
Infrastructure MEMBER 基本インフラサービスRead(読み取り)
Infrastructure NCS ADMIN NCS Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)
Infrastructure Security Group ADMIN Load Balancer Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)
Infrastructure Load Balancer ADMIN Security Group Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)

[参考] Infrastructure NCS ADMIN, Infrastructure Load Balancer ADMIN, Infrastructure Security Group ADMIN役割はInfrastructure MEMBERロールを含みます。 Infrastructure ADMINは基本インフラサービスの全てのロールを含みます。

NCS最小ロール付与

本番環境では必要なロールのみ追加することを推奨します。NCS機能を利用するための最低限のロールは以下の通りです。

機能 Infrastructure MEMBER Infrastructure NCS ADMIN Infrastructure Security Group ADMIN Infrastructure Load Balancer ADMIN
テンプレートの照会 O
テンプレートの作成 O O
テンプレートの削除 O O
ワークロードの照会 O
ワークロードの作成及び変更 O O O
ワークロードの削除 O O O

[参考] テンプレートを作成するためには、Infrastructure NCS ADMINとInfrastructure Security Group ADMIN権限が必要です。 Infrastructure NCS ADMIN権限だけでは、照会のみ可能です。

参考事項

リージョン

  • NCSは韓国(パンギョ)リージョンでのみ使用できます。

リソース提供ポリシー

テンプレート/コンテナ

  • テンプレートに記述されているコンテナは、それぞれ異なるコンテナポートを使用するように設定する必要があります。
  • コンテナポートに直接接続する場合は、セキュリティグループが正しく設定されていることを確認する必要があります。
  • コンテナポートを指定していないテンプレートを使用する場合、ロードバランサーを作成できません。
  • ロードバランサーを使用する場合、コンテナに追加されていないポートはセキュリティグループにポートを追加しても使用できません。
  • プライベートレジストリに存在するコンテナイメージを活用してコンテナを作成できます。サポートされるソースレジストリタイプとURL、Access ID、Access Secretは次のとおりです。
ソースレジストリタイプ Access ID Access Secret
Azure Container Registry アクセスキーユーザー名 アクセスキー暗号
Google Cloud Container Registry _json_key サービスアカウントの秘密鍵(JSONタイプ)
Docker Hub Username Password
Harbor Username Password
Quay json_file {
"account_name": "$ユーザーアカウント",
"docker_cli_password": "$Quayで作成した暗号化されたPassword"
}
  • コンテナイメージ内でコンテナがサービスのために使用することに決定したポートとテンプレートのコンテナポートは一致する必要があります。
    • 80ポートをサービスすることに指定された基本nginxコンテナイメージを利用する場合、コンテナポートに80を指定する必要があります。コンテナイメージの内容を変更して他のポートをサービスするように設定した場合は、そのポート番号を指定する必要があります。
  • コンフィグマップとシークレットはテンプレート作成時の情報を使用します。元のファイルや秘密データが修正されても、既に作成されたテンプレートの情報は影響を受けません。
    • コンフィグマップまたはシークレットの内容を更新し、その変更を反映するには、新しいテンプレートまたはバージョンを作成し、ワークロードを実行する必要があります。

GPU

分類 タイプ 名前 RAM GPU数 MIG Profile名
Graphics Optimized ncs1 ncs1.g1m5 5GB 1 MIG 1g.5gb
Graphics Optimized ncs1 ncs1.g2m10 10GB 2 MIG 2g.10gb

トラブルシューティング

NCSサービスを使用しながら経験する可能性があるさまざまな問題を解決する方法を説明します。

ワークロード

  • ワークロードが正常に作成され、コンテナも正常に実行中の時にFailedCreatePodSandBox/CNITimedOutWaitingForVIFsタイプのコンテナイベントが発生する現象
    • 当該イベントはNCSで使用するためのNetwork Interfaceが作成完了していない場合に発生します。テンプレート作成直後にワークロードを作成したり、ワークロードを大量作成したりする場合に一時的に発生するイベントで、一定時間が経過すると当該イベントは発生しません。
  • ワークロードがPending状態の時にIpAddressGenerationFailureタイプのコンテナイベントが発生する現象
    • 当該イベントは指定したサブネットに使用できるIPアドレスが存在しない場合に発生します。サブネットのCIDRを変更するか、他のサブネットを使用してテンプレートを作成する必要があります。
  • ワークロードのテンプレート変更後に継続してpending状態が維持される現象
    • 追加された作業のイベントを確認してコンテナが実行されない原因を確認できます。
  • リソース不足でワークロード作成失敗現象
エラーメッセージ 説明
{{.Resource}}リソースが不足しているためワークロードを作成できません。 NCS環境のリソースが不足しているためワークロードを作成できません。
しばらくしてから再試行するか、サポートにお問い合わせください。
作成可能な{{.Resource}}を超えました。限度を上げるにはサポートにお問い合わせください。 プロジェクトのNCS Quotaが超過しました。
詳細については、 NHN Container Service(NCS)リソース提供ポリシーを参考してください。

NHN Cloudサービス連動

ワークロードが削除または再起動されるとログは削除され、照会できません。 重要なログをバックアップしたり、特定のログを検索して照会するためにLog & Crash Search(L&C)サービスと連動できます。

下記の内容はロギングエージェント(FluentBit, Logstash)をサイドカーコンテナで作成してL&C連動する方法について説明します。

FluentBitの詳細はFluent Bit: Official Manualを参照してください。 Logstashの詳細はLogstash Referenceを参照してください。 Log & Crash Search使い方はLog & Crash Searchコンソール使用ガイドを参照してください。

[参考] コンテナ間の一時的な共有ストレージにログをファイルとして作成する方法について説明しました。 コンテナのログをファイルで作成する場合、ワークロードのログタブではログ照会ができません。

FluentBitを利用して連動

  • FluentBitでL&Cと連動するためには設定ファイルを作成する必要があります。下記のように設定ファイルを作成してObject Storageにアップロードします。
[SERVICE]
    Flush        1
    Daemon       Off
    Log_Level    warn
    Parsers_File parsers.conf
    Plugins_File plugins.conf
    HTTP_Server  Off

[INPUT]
    Name tail
    Path /var/{ワークロード名}/{ログファイル名}

[OUTPUT]
    Name                 http
    Match                *
    Host                 api-logncrash.cloud.toast.com
    Port                 443
    URI                  /v2/log
    Format               json
    Log_response_payload false
    Tls                  On
    Tls.verify           Off

[FILTER]
    Name  modify
    Match *
    Rename log body
    Add host           ${HOSTNAME}
    Add projectName    {L&C AppKey}
    Add projectVersion {ユーザー指定プロジェクトバージョン}
    Add logVersion     {ログフォーマットバージョン}
    Add logType        {ログタイプ}
    Add logSource      {ログソース}
    Add logLevel       {ログレベル}
  • テンプレートに下記のようにコンテナを追加して作成します。
項目 alpine(ログ作成) fluentbit(ログ送信)
コンテナ名 alpine fluentbit
イメージURL alpine:latest fluent/fluent-bit:2.2.1
コマンド ログをファイルに残すために下記のように入力します。
  • sh,-c,while true; do echo "hello world" >> /var/{ワークロード名}/{ログファイル名}; sleep 1; done
コンフィグマップ Object Storageにアップロードしたfluentbit設定ファイルをインポートできる情報を追加します。
>コンテナのマウントパスは下記のように入力します。
  • /fluent-bit/etc/fluent-bit.conf
  • 該当テンプレートでワークロードを作成すると、alpineで作成したログをL&Cで検索して照会できます。

Logstashを利用して連動

  • LogstashでL&Cと連動するためには設定ファイルの作成が必要です。下記のように設定ファイルを作成してObject Storageにアップロードします。
input {
  file {
    path => "/var/{ワークロード名}/{ログファイル名}
    start_position => "beginning"
    ignore_older => 0
  }
}
filter {
  mutate {
    remove_field => [ "@version", "@timestamp", "path", "tags" ]
    rename => {
      "message" => "body"
      "host" => "host"
    }
    add_field => {
      "projectName" => "{L&C AppKey}"
      "projectVersion" => "{ユーザー指定プロジェクトバージョン}"
      "logVersion" => "{ログフォーマットバージョン}"
      "logType" => "{ログタイプ}"
      "logSource" => "{ログソース}"
      "logLevel" => "{ログレベル}"
    }
  }
}
output {
  http {
    url => "https://api-logncrash.cloud.toast.com/v2/log"
    http_method => "post"
    format => "json"
    ssl_verification_mode => "none"
  }
}
  • テンプレートに下記のようにコンテナを追加して作成します。 | 項目 | alpine(ログ作成) | logstash(ログ送信) | | --- | -------------- | ---------------- | | コンテナ名 | alpine | logstash | | イメージURL | alpine:latest | logstash:8.11.0 | | メモリ | 256 | 1024 | | コマンド | ログをファイルに残すために下記のように入力します。
    • sh,-c,while true; do echo "hello world" >> /var/{ワークロード名}/{ログファイル名}; sleep 1; done
    | | | 環境変数 | | XPACK_MONITORING_ENABLED : false | | コンフィグマップ | | Object Storageにアップロードしたlogstash設定ファイルをインポートできる情報を追加します。
    コンテナのマウントパスは下記のように入力します。
    • /usr/share/logstash/pipeline/logstash.conf
    |
  • 該当テンプレートでワークロードを作成すると、alpineで作成したログをL&Cで検索して照会できます。
TOP