今天早上發現我 SSH 怎麼連都連不進我的 GCE,用各種方式排查都沒什麼結果,真的讓人很頭痛,我想應該會把這個 VM 砍掉再重新建一個新的實例吧,但在排查過程中也可以學到一些雲端跟網路的概念,每次跟一個問題相處久慢慢就會對那些模糊的知識有更清晰的了解,這算是一個 Trouble Shooting 的好處吧,雖然很痛苦就是了。
另外,今天也上網找看看有沒有免費可以用的 Redis 服務,單純用來做實驗的額度應該不用到太多,找到了 Redis 官網和 Render 的免費雲服務,創建了 Database 也可以用 GUI Tool 連到了,算是有點小進展,只是還不能測試 SpringBoot 有沒有辦法連到,等等 VM 的問題解決。
簡單整理一下今天在 Trouble Shooting 碰到的概念,總結成知識點,雖然啥也沒解決就是了。
Firewall Rule 就是用來控制進出 VM 流量的種種規則,每條規則包含了:
Network Tags 就是 Firewall Rule 控制的範圍,Firewall Rule會定義貼了哪些標籤的 VM 會適用這個規則、規則可以指定套用到哪些標籤的 VM,用來做分組管理,例如:有 web-server
標籤的 VM 才開放 80 port。
Cloud Shell 是 Google 提供的免費雲端終端環境,運行在 Google 的伺服器上,對應的是帳戶層級,每個 Google 帳戶有一個 Cloud Shell 實例,但會根據當前選擇的專案來設定操作環境,不管切換到哪個專案,Cloud Shell 環境本身是一樣的,且已經預先安裝了 gcloud、kubectl 等 CLI 工具。
Cloud Shell 會自動設定 gcloud config set project [專案ID]
,所有 gcloud 指令會對當前選擇的專案執行,但可以在同一個 Cloud Shell 中切換不同專案。
與 GCE Terminal 的關係:
Serial Console **是 VM 層級的,**直接連接到 VM 的硬體層介面,繞過所有網路,直接與 VM 的系統核心通訊,就像直接在 VM 前面坐著,插上鍵盤螢幕
什麼時候用?
會想做這些主要還是出於對部署的好奇,平時工作上其實沒有什麼機會實作一個產品生命週期的部署階段,頂多就是點一點 Jenkins 自動化部屬而已,部署腳本也不是自己寫的,但看著看著就慢慢產生興趣,對自己不擅長的事總是覺得很酷。
再來就是希望對網路概念有一定程度的理解,因為是轉職過來的,所以對基本網路知識可以說是從零開始,剛開始連 IP 是什麼都不知道,到現在慢慢了解種種特性,一路走來也真是不容易。