潜在的なセキュリティリスクを軽減するため、ContainerOS では追跡不可能な操作を防ぐ目的で、ユーザーによるシステムへの直接ログインが制限されています。メンテナンスのためにインスタンスにログインする必要がある場合、ContainerOS は、トラブルシューティングやパッケージのインストールなどの非定型タスク専用の管理コンテナを提供します。このトピックでは、管理コンテナのログイン、起動、停止、再起動、ステータス照会などの一般的な操作方法について説明します。
このトピックは、自動モードでないノードにのみ適用されます。
ContainerOS ノードのメンテナンス方法
|
管理コンテナには、ホスト環境よりも多くのソフトウェアパッケージが含まれており、YUM パッケージマネージャーを使用して追加のパッケージをインストールできます。コンテナから、システムプロセス、ネットワーク、および設定を確認できます。また、ホストにアクセスするための専用コマンドも提供されており、これは、Workbench、SSH、または VNC を介してインスタンスに接続することと同等です。
|
|
ContainerOS 3.5 以降では、シェルはホスト環境から削除されています。ContainerOS ノードのメンテナンス方法を選択するには、次の表をご参照ください。
|
方法
|
ContainerOS 3.5 以降
|
ContainerOS 3.5 より前
|
|
管理コンテナへのログイン
|
|
-
SSH キーペアをインスタンスにバインドする必要があります。
ノードプールを作成するときは、ログイン認証情報をキーペアに設定する必要があります。詳細については、「ノードプールの作成と管理」をご参照ください。
既存のノードプールの場合、SSH キーペアをインスタンスにバインドすることもできます。詳細については、「SSH キーペアのバインド」をご参照ください。
-
Workbench (パスワードなしのログインのみ) を使用してホストにログインします。
-
sudo lifseacli container start を実行して管理コンテナを起動します。
-
SSH を使用してログインします。
デフォルトでは、SSH サービス (sshd) はホスト上では無効になっています。
|
|
ホストへのログイン
|
管理コンテナにログインした後、sudo superman コマンドを実行します。
|
|
kubectl debug コマンドを使用して ContainerOS ノードをメンテナンスすることもできます。
ContainerOS 3.5 以降のログイン方法
|
カテゴリ
|
Workbench (パスワードなしのログインのみ)
|
VNC ログイン
|
|
前提条件
|
なし。
Cloud Assistant エージェントは管理コンテナにプリインストールされています。手動でインストールする必要はありません。
|
VNC ログインにはパスワード認証が必要です。最初に、Workbench のパスワードなしログインを使用して、管理コンテナのログインパスワードを設定する必要があります。
|
|
手順
|
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
対象ノードの アクション 列で、詳細 > ワークベンチのリモートアクセス を選択します。
-
画面の指示に従って、パスワードなしのログインを完了します。
|
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
対象ノードの アクション 列で、詳細 > VNC リモートアクセス を選択し、画面の指示に従って本人確認を完了します。
|
ContainerOS 3.5 より前のログイン方法
ホストへのログイン
|
カテゴリ
|
Workbench (パスワードなしのログインのみ)
|
VNC ログイン
|
|
前提条件
|
ノードが Cloud Assistant サービスへのネットワークアクセス権を持っていることを確認してください。
|
VNC ログインにはパスワード認証が必要です。最初に、Workbench のパスワードなしログインを使用して、管理コンテナのログインパスワードを設定する必要があります。
|
|
手順
|
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
対象ノードの アクション 列で、詳細 > ワークベンチのリモートアクセス を選択します。
|
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
対象ノードの アクション 列で、詳細 > VNC リモートアクセス を選択し、画面の指示に従って本人確認を完了します。
|
管理コンテナへのログイン
前提条件
-
ノードプールを作成するときは、ログイン認証情報をキーペアに設定する必要があります。詳細については、「ノードプールの作成と管理」をご参照ください。
既存のノードプールの場合、SSH キーペアをインスタンスにバインドすることもできます。詳細については、「SSH キーペアのバインド」をご参照ください。
-
Cloud Assistant エージェントがインストールされている必要があります。詳細については、「Cloud Assistant エージェントのインストール」をご参照ください。
-
セキュリティグループのルールでポート 22 が許可されている必要があります。詳細については、「セキュリティグループルールの管理」をご参照ください。
-
ECS インスタンスに対してパスワードなしのログインが有効になっている必要があります。
[セッション管理経由のリモート接続] ページで、[パスワードなしのログイン] タブをクリックし、すべてのリージョンでセッション管理が有効になっていることを確認してください。トグルが有効 (緑色) になっている必要があります。
ホスト環境へのアクセス
-
ECS コンソールにログインし、Cloud Assistant の コマンド パネルに移動します。詳細については、「コマンドの作成と実行」をご参照ください。
-
Cloud Assistant で、次のコマンドを実行して管理コンテナを起動します。
sudo lifseacli container start
期待される出力:
Downloading docker image...
Successfully downloaded docker image
Successfully start admin container!
この出力は、Cloud Assistant によって管理コンテナが正常に起動されたことを示します。
-
ローカルマシンのターミナルから、次のコマンドを実行して、指定した秘密鍵で管理コンテナにログインします。
説明
-
<ssh-private-key.pem> をインスタンスにバインドされているキーペアの秘密鍵に置き換えてください。<instance-ip> をインスタンスの IP アドレスに置き換えてください。
-
Workbench を使用して admin としてログインすることもできます。インスタンスにバインドされているキーペアの秘密鍵を使用します。インスタンスでポート 22 が開いていることを確認してください。
ssh -i <ssh-private-key.pem> admin@<instance-ip>
管理コンテナにログインすると、ホストのルートファイルシステムが読み取り専用で管理コンテナの /.lifsea/rootfs ディレクトリにマウントされます。このマウントを使用して、システム情報と設定を検索できます。
$ssh -i mainxt.pem admin@47.99.45.171
LifseaOS メンテナンスコンテナへようこそ!
このコンテナは Alibaba Cloud Linux 3 をベースにしているため、ほとんどの動作は
Alibaba Cloud Linux 3 の VM やコンテナと同じです。
デバッグ目的でいくつかの共通ツールがプリインストールされており、yum を通じて
必要なツールをインストールできます。
また、コンテナ内から LifseaOS ホストのルートファイルシステム (/.lifsea/rootfs を参照) に
アクセスすることも可能です。
実際の LifseaOS ホスト環境に入りたい場合は、「superman」 (`sudo superman`) という
ツールが提供されています。これを実行すると、LifseaOS ホストの rootfs 内に
ルートシェルで入ることができます。
お楽しみください!
[admin@iZbp1inxxxxtziZ ~]$
-
次のコマンドを実行して、管理コンテナからホスト環境にアクセスします。
-
ls コマンドを実行して、利用可能なシステムコマンドを一覧表示します。
[root@xxxs9Z /]# ls
bin boot dev etc home lib lib64 media mnt opt ostree proc root run sbin srv sys sysroot tmp usr var
ホスト環境では、限られた数のシステムコマンドしか利用できません。
管理コンテナの管理
ホスト環境に入った後、exit を実行して管理コンテナに戻ります。再度 exit を実行してログアウトします。管理コンテナは実行を継続するため、SSH 経由で再接続したり、コマンドを使用して停止、再起動、または削除したりできます。
|
操作
|
説明
|
|
管理コンテナの停止
|
sudo lifseacli container stop
|
|
管理コンテナの再起動
|
管理コンテナを起動した後にキーペアをバインドまたはアンバインドした場合、変更を有効にするには、コンテナを再起動する必要があります。 sudo lifseacli container restart
|
|
管理コンテナの削除
|
sudo lifseacli container rm
重要
管理コンテナを削除すると、インストールしたソフトウェアや保存したファイルもすべて破棄されます。管理コンテナを再度起動すると、新しいクリーンな環境が作成されます。重要なデータは管理コンテナに保存しないことを推奨します。
|
|
管理コンテナのステータス照会
|
sudo lifseacli container status
|
よくある質問
UNPROTECTED PRIVATE KEY FILE! というエラー
現象
次のエラーが表示されます。
$ssh -i manxi.pem admin@47
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'manxi.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "manxi.pem": bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
原因
秘密鍵ファイルに設定された権限が広すぎます。
ソリューション
chmod 400 <ssh-private-key.pem> コマンドを実行して、秘密鍵ファイルの権限を 400 に変更してください。<ssh-private-key.pem> を実際の秘密鍵ファイル名に置き換えてください。