以前は機能していたGCPVMインスタンスにSSHで接続できません
昨日、同じ構成を使用して異なるタスクを実行するGCPVMインスタンスをいくつか作成しました。GCPコンソールを介してこれらのインスタンスにSSHで接続でき、すべて正常に機能していました。
今日、タスクが完了したかどうかを確認したいのですが、ブラウザを介してこれらのインスタンスにSSHで接続できなくなりました...エラーメッセージは次のとおりです。
Connection via Cloud Identity-Aware Proxy Failed
Code: 4010
Reason: destination read failed
You may be able to connect without using the Cloud Identity-Aware Proxy.
そこで、Cloud Identity-AwardProxyを無効にして再試行しました。しかし、それは次のようになります。
Connection Failed
An error occurred while communicating with the SSH server. Check the server and the network configuration.
ランニング
gcloud compute instances list
すべてのインスタンスが表示され、ステータスはRUNNINGです。しかし、私が走ったとき
gcloud compute instances get-serial-port-output [instance-name]
上記のコマンドから返された[instance-name]を使用します。(これは、インスタンスのブートディスクの空き容量が不足していないかどうかを確認するためのものです。)
(gcloud.compute.instances.get-serial-port-output) Could not fetch serial port output: The resource '...' was not found
いくつかの追加情報:
同じインターネット(自宅のインターネット)からVMインスタンスにアクセスしていて、他のすべては同じ
ですプロジェクトの所有者です
私のアカウントは$ 300クレジット
のGCP無料トライアルを使用していますインスタンスにはマシンタイプがありますc2-standard-4で、Linuxディープラーニングを使用
しています。gcloud設定は私には正しく見えます。
$ gcloud config list
[component_manager]
disable_update_check = True
[compute]
gce_metadata_read_timeout_sec = 5
[core]
account = [my_account]
disable_usage_reporting = True
project = [my_project]
[metrics]
environment = devshell
更新:
インスタンスの1つをリセットすると、そのインスタンスにSSHで正常に接続できるようになりました。ただし、インスタンスで実行されているジョブはリセット後に停止しました。
他のインスタンスでジョブを実行し続けたい。リセットせずに他のインスタンスにSSHで接続する方法はありますか?
回答
問題はVM側にあります。実行しているタスクにより、sshサービスは着信接続を受け入れることができなくなり、再起動後にのみ接続できました。
を使用してインスタンスのシリアルコンソール出力を表示できるはずですgcloud compute instances get-serial-port-output [instance-name]が、そうでない場合は、代わりにGCPコンソールを使用してみてください。インスタンスの詳細に移動し[Serial port 1 (console)][1]てをクリックすると、出力が表示されます。
コンソールを介してVM(ログイン)と対話することもできます。これは、何かがsshサービスを停止した場合に特に役立ちますが、そのためにはログイン/パスワードが必要なので、最初にVMにアクセスするか、起動スクリプトを使用してユーザーにパスワードを追加する必要があります。しかし、もう一度-これには再起動が必要です。
いずれの場合も、VMを再起動するのが最善のオプションのようです。ただし、ログを調べて、しばらくするとsshサービスが停止する原因を突き止めようとする場合があります。または、使用して、独自の(ディスク容量、メモリ、CPUなど)を作成することができますcronしdf -Th /mountpoint/path | tail -n1 >> /name_of_the_log_file.log。
たとえばcron、sshサービスのチェックと開始に使用できます。
また、(ドキュメントによると)想定どおりに機能しない場合は、IssueTrackerにアクセスして新しい問題を作成し、さらにヘルプを入手してください。