Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
內容目錄
地區 (Region) 指的是實際的地理位置,區域 (Zone) 則是資料中心的邏輯分割方式,一個地區可以有多個區域。
區域底下的資源稱為 Zonal Resources。
建立實體:Compute Engines > VM Instances > CREATE INSTANCE。
建立後可以直接在面板中用 SSH 連線,也可以透過指令碼建立 SSH 連線。
gcloud compute ssh gcelab2 --zone us-central1-f
透過 SSH 進入實體後,可以開始安裝 Nginx。
sudo su - apt-get update apt-get install nginx -y
檢查 Nginx 是否執行。
ps auwx | grep nginx
從 GCP 面板的 External IP 取得可從外部存取的 IP 位址。
gcloud compute instances create gcelab2 --machine-type \ n1-standard-2 --zone us-central1-f
透過 --help
選項可以查看 gcloud compute instance create
的預設值。
gcloud compute instances create --help ## 可以用 gcloud config set 變更預設值
使用 get-value
取得預設的 zone 跟 region
gcloud config get-value compute/zone gcloud config get-value compute/region
剛開始應該都會是 (unset)。
可以透過 project-info describe
尋找預設的 Region 與 Zone (google-compute-default-zone
)
gcloud compute project-info describe --project <your_project_ID>
環境變數再用來寫堆疊程式碼 (Stacked Scripts) 的時候很好用。
export PROJECT_ID=<your_project_ID> export ZONE=<your_zone> # 輸出環境變數 echo $PROJECT_ID echo $ZONE
gcloud compute instances create gcelab2 \ --machine-type n1-standard-2 \ --zone $ZONE
# 簡單版 gcloud -h # 詳細說明 gcloud config --help gcloud help config # 與前面的結果一樣 # 查詢組態 gcloud config list gcloud config list --all # 包含 unset 的組態 # 列出所有 components gcloud components list
可以使用 interactive
介面,會協助自動完成指令。(但是真的很難用)
sudo apt-get install google-cloud-sdk # 啟用 interactive gcloud beta interactive
gcloud compute ssh gcelab2 --zone $ZONE
第一次連結時,會先建立 SSH Key。
在 Home 目錄底下的內容會跨專案、跨實體存在,所以即使刪除了 VM 實體後仍會存在。
Kubernetes 在做的事情:
(資料來源:https://ithelp.ithome.com.tw/articles/10192401)
gcloud config set compute/zone us-central1-a
gcloud container clusters create [CLUSTER-NAME]
gcloud container clusters get-credentials [CLUSTER-NAME] # 執行後會產生 Fetching cluster endpoint and auth data. kubeconfig entry generated for [CLUSTER-NAME].
使用 kubectl create deployment
從 gcr.io 的映像檔將專案部署到叢集中。
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
使用 kubectl expose deployment
讓專案可以給外部存取。--port
來指定開放的連接埠。
kubectl expose deployment hello-server --type=LoadBalancer --port 8080
用 kubectl get service
檢查目前叢集的狀態:
kubectl get service ## 顯示結果 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-server LoadBalancer 10.xx.xxx.xxx xx.xx.xxx.xxx 8080:30477/TCP 3m10s kubernetes ClusterIP 10.xx.xxx.1 <none> 443/TCP 14m
接著可以透過 http://EXTERNAL-IP:8080 存取服務。
gcloud container clusters delete [CLUSTER-NAME]