https://www.sky365.co.jp/blog/gcp/gce-linuxssh.html
https://cloud.google.com/compute/docs/instances/ssh
https://akamist.com/blog/archives/639
https://cloud.google.com/vpc/docs/multiple-interfaces-concepts?hl=ja
https://cloud.google.com/compute/docs/disks/add-persistent-disk?hl=ja
https://laid-back-scientist.com/gcp-snapshot
https://laid-back-scientist.com/custom-image
https://cloud.google.com/compute/docs/instances/define-instance-placement
前作業
gcloud init
gcloud auth list
gcloud --version
gcloud projects create project01-9999999 \
--name="project01"
gcloud projects list
gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1
gcloud config set compute/zone asia-northeast1-a
gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111
gcloud services enable compute.googleapis.com
---------------------------------------------
プロジェクトレベル公開鍵を設定する
ssh-keygen
ls -l ~/.ssh/
echo $val
gcloud compute project-info add-metadata \
--metadata=ssh-keys="$(whoami):$val"
gcloud compute project-info describe
プロジェクトレベル公開鍵を削除する
gcloud compute project-info \
remove-metadata --keys=ssh-keys
---------------------------------------------
VMインスタンスの作成
gcloud compute instances create vm01 \
--machine-type=e2-micro \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network-interface=network-tier=STANDARD
gcloud compute instances list
gcloud compute instances describe vm01
(1)プロジェクトレベル公開鍵を使用する場合
gcloud compute ssh vm01 \
--ssh-key-file=~/.ssh/id_rsa
(2)公開鍵を自動で作成する場合
gcloud compute ssh vm01
gcloud compute instances stop vm01
gcloud compute instances start vm01
gcloud compute instances delete vm01 --quiet
---------------------------------------------
ネットワークインターフェースの作成
ネットワークインタフェース単独では作成できない模様
---------------------------------------------
ディスクの作成
gcloud compute disk-types list --zones asia-northeast1-a
gcloud compute disks create disk01 \
--size 10 \
--type pd-standard
gcloud compute disks list
gcloud compute disks describe disk01
ディスクのアタッチ
gcloud compute instances attach-disk vm01 \
--disk disk01
ディスクのデタッチ
gcloud compute instances detach-disk vm01 \
--disk disk01
ディスクの削除
gcloud compute disks delete disk01
---------------------------------------------
スナップショットの作成
gcloud compute disks list
gcloud compute snapshots create snap01 \
--source-disk vm01
gcloud compute snapshots list
gcloud compute snapshots describe snap01
スナップショットからvmを作成
gcloud compute instances create vm02 \
--source-snapshot snap01 \
--machine-type=e2-micro \
--network-interface=network-tier=STANDARD
スナップショットの削除
gcloud compute snapshots delete snap01
---------------------------------------------
イメージの作成
gcloud compute disks list
gcloud compute instances stop vm01
gcloud compute images create image01 \
--source-disk vm01
gcloud compute images list
gcloud compute images describe image01
gcloud compute instances start vm01
イメージからvmを作成
gcloud compute instances create vm03 \
--image image01 \
--machine-type=e2-micro \
--network-interface=network-tier=STANDARD
イメージの削除
gcloud compute images delete image01
---------------------------------------------
プレースメントポリシーの作成
スプレッド プレースメントポリシー。ホストのシステム障害の影響を軽減するために VM を分散させる場合には、スプレッド ポリシーを使用します。
コンパクト プレースメントポリシー。VM 間のネットワーク レイテンシを低くするために VM を相互に近い場所に配置する場合は、コンパクト ポリシーを使用します。
スプレッド プレースメントポリシー:
ポリシーごとに最大 8 台の VM をサポート
N1、N2、N2D、C2 マシンタイプのみをサポート
コンパクト プレースメントポリシー:
ポリシーごとに最大 150 台の VM をサポート
A2、C2、C2D、N2、N2D マシンタイプのみをサポート
スプレッド プレースメントポリシーを作成する
gcloud compute resource-policies create group-placement policy01 \
--availability-domain-count 2
コンパクト プレースメントポリシーを作成する
gcloud compute resource-policies create group-placement policy02 \
--collocation COLLOCATED
gcloud compute resource-policies list
gcloud compute resource-policies describe policy01
gcloud compute resource-policies describe policy02
プレースメントポリシーを適用してインスタンスを起動する
gcloud compute instances create vm04 \
--resource-policies policy01 \
--machine-type=f1-micro \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network-interface=network-tier=STANDARD \
--maintenance-policy=terminate \
--no-restart-on-failure \
--zone asia-northeast1-b
gcloud compute instances create vm05 \
--resource-policies policy02 \
--machine-type=n2d-standard-2 \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network-interface=network-tier=STANDARD \
--maintenance-policy=terminate \
--no-restart-on-failure
プレースメントポリシーの削除
gcloud compute resource-policies delete policy01
gcloud compute resource-policies delete policy02
---------------------------------------------
クリーンアップ
gcloud projects list
gcloud projects delete project01-9999999 --quiet