在 Cloud Code for VS Code 中使用 Google Cloud 和 Kubernetes YAML

Cloud Code for VS Code 專門為了讓 Kubernetes 和 Cloud Build 設定更容易而設計,其結構定義方便檢查原始碼結構和有效值並提供錯誤敍述。Cloud Code 提供立即可用的一般結構定義解決方案、智慧型完成作業,以及將游標放置上方即可查看說明文件的功能。

支援的 YAML 設定檔

Cloud Code 也支援熱門的 Kubernetes 自訂資源定義 (CRD),例如Kubeflow

使用自訂結構定義

使用 Cloud Code 時,您可以在 settings.json 檔案中透過 cloudcode.yaml.crdSchemaLocations 設定提供自己的 CRD 結構定義。您可以指向本機檔案或網址。指向 github.com 的網址會自動轉換為 raw.githubusercontent.com

從叢集提取結構定義

在 Kubernetes 檢視畫面中切換至執行 Kubernetes v1.16 以上版本的叢集時,Cloud Code 會自動提取所有已安裝 CRD 的結構定義。

使用程式碼片段進行設定

一般 YAML 結構定義的立即可用程式碼片段使用 Command/Ctrl+Space 來檢視選項),其更容易建立新 YAML 檔案或新增到現有 YAML 檔案,不但過程準確無誤,還能同時兼顧最佳做法。填入第一個欄位後,Cloud Code 會填完剩餘的執行個體,讓您更輕鬆處理重複欄位。

Cloud Code 提供下列程式碼片段:

  • Anthos Config Management - Cluster
  • Anthos Config Management - Cluster Selector
  • Anthos Config Management - Config Management
  • Anthos Config Management - Namespace Selector
  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Secret
  • Kubernetes - Service
  • Migrate to Containers - Export
  • Migrate to Containers - PersistentVolumeClaim
  • Migrate to Containers - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

依內容完成

Cloud Code 會依據目前的結構定義,提供內容相關的自動完成功能及相關文件,協助您選擇正確的選項。

Kubernetes 結構定義的關聯內容自動完成選項

驗證 YAML 結構定義

Cloud Code 提供結構定義驗證支援,可標示 YAML 檔案中的無效標記和值,並在可能時建議修正方式。

名稱欄位的值以紅色底線標示,醒目顯示無效值 1234;懸停文字顯示:類型錯誤。預期應為字串。

懸停游標即可查看說明文件

當您將指標懸停在結構定義中的某個值上,Cloud Code 即會呈現相關說明文件。

將指標懸停在結構定義中的值上時顯示的說明文件資訊

存取資源定義

如要查看資源定義,請在資源上按一下滑鼠右鍵,然後選擇「Go to Definition」或「Peek Definition」

套用 YAML 檔案

如要使用目前檔案套用設定變更,請開啟指令面板 (按下 Ctrl/Cmd+Shift+P 鍵,或依序點選「View」(瀏覽) >「Command Palette」(指令面板)),然後執行「Cloud Code: Apply Current JSON/YAML File to K8s Deployed Resource」(Cloud Code:將目前的 JSON/YAML 檔案套用至 Kubernetes 已部署的資源)

這個指令會顯示差異檢視畫面,供您查看變更。系統詢問是否要套用這項變更時,請按一下「套用」。這會執行 kubectl apply -f

查看 YAML 檔案之間的差異

如要查看來源控制項和已部署 YAML 檔案之間的 YAML 檔案差異,請開啟指令面板 (按下 Ctrl/Cmd+Shift+P 鍵,或依序點選「View」(瀏覽) >「Command Palette」(指令面板)),然後執行「Cloud Code: Diff Current JSON/YAML File with K8s Deployed Resource」

模擬執行 YAML 檔案

當您在 YAML 檔案中輸入資訊時,Cloud Code 會自動執行試運轉,並以黃色波浪線標示所有錯誤。

如果伺服器根據模擬測試結果,認為程式碼的某個部分有錯誤,就會顯示黃色波浪線。這可能包括違反政策、名稱重複,或是 Cloud Code 未在用戶端執行的驗證 (例如最大連接埠號碼)。

如要查看 YAML 檔案中的錯誤說明,請將指標懸停在以黃色底線標示的程式碼上。

在 `hello.deployment.yaml` 上進行伺服器端試驗驗證時失敗,並以快訊形式顯示錯誤訊息。錯誤詳細資料位於「輸出」管道中;命名空間「random-namespace」不存在

在 Cloud Code 向 Kubernetes 伺服器檢查之前,系統會以紅色波浪線標示偵測到的錯誤。舉例來說,在需要指定字串的地方指定數字,就會觸發紅色波浪線。

使用密鑰

使用設定對應和密鑰是 Kubernetes 的重要環節。如要使用 Cloud Code 查看 base64 密鑰內容,只要將指標懸停在密鑰上方即可解碼。

將指標懸停在密鑰上即可解碼

後續步驟

取得支援

如要提供意見回饋,請前往 GitHub 回報問題,或在 Stack Overflow 上提問。