GCEインスタンス/GKEノードにSSH接続するメモ


目的

  • GCEインスタンスを起動
  • GCEインスタンスにSSH接続
  • WindowsPCからとりあえずSSH接続できるところまで
  • おまけ:GKEノード(Kubernetes)にSSH接続

前提

  • Googleアカウントがある
  • プロジェクトを作成済

作業

  • 作成を押してVMを作り始める

  • リージョンを決める。無料対象はアメリカ西側など限られるので注意
  • インスタンス性能を決める。microが無料らしいのでmicroを選択。デフォルトは違うので注意。
  • SSDの容量を決める。30Gまで無料らしい。せっかくなので変更しておく。

  • SSHでつなぐので固定外部IPをアタッチする
  • AWSと同じく使わないで放置しておくと料金が発生するらしいので注意

  • 必要事項を入力し生成
  • AWSと同じく使わないで放置しておくと料金が発生するらしいので注意

  • インスタンスが作成されるまで待つ

GCEインスタンスにSSH接続したい場合

  • メタデータメニューからSSH認証鍵タブを選択
  • 手持ちのSSH公開鍵を登録

  • SSH公開鍵を貼り付ける

  • SSHクライアントで接続してみる。

  • コマンドラインの場合
//win
ssh -i "C:\Users\appuser\Desktop\work\sshkey\kp-appuser" [email protected]

//mac
ssh -i appuser-key [email protected]

GKEノードにSSH接続したい場合

  • Cloud ShellからNode名を指定して"gcloud compute ssh"で接続
$ kubectl get pod -o wide
NAME                                READY   STATUS             RESTARTS   AGE   IP           NODE                                            NOMINATED NODE   READINESS GATES
sample-app-server-644758d6d-2gvsb   0/1     CrashLoopBackOff   220        18h   10.48.1.10   gke-sample-cluster-default-pool-abcbad49-2w8m   <none>           <none>
sample-app-server-644758d6d-5x8k4   0/1     CrashLoopBackOff   220        18h   10.48.2.6    gke-sample-cluster-default-pool-abcbad49-95gp   <none>           <none>
sample-app-server-644758d6d-67dfh   0/1     CrashLoopBackOff   220        18h   10.48.1.11   gke-sample-cluster-default-pool-abcbad49-2w8m   <none>           <none>


$ gcloud compute ssh gke-sample-cluster-default-pool-abcbad49-2w8m
$ journalctl -n 50 --no-pager

ファイアウォールで拒否される場合

  • コネクションタイムアウトなどはファイアウォールが整備されていない可能性が高いです
  • ファイアウォールルールを作成してインスタンスに設定します。
  • 作成したファイアウォールルールはインスタンスのネットワークタグとして適用し有効化する
  • 個人的にココが非常に分かりづらかったので注意ですね