瞭解如何建立 ConfigMap,然後設定 Knative serving 服務和修訂版本,以使用該 ConfigMap。
服務的常見用途是使用 ConfigMap,將應用程式程式碼與設定分開。ConfigMap 與 Secret 類似,但 Secret 用於機密資訊,ConfigMap 則用於儲存非機密資料,例如連線字串、公開憑證、主機名稱和網址。如要進一步瞭解如何使用 ConfigMap,請參閱 Google Kubernetes Engine 說明文件。
啟用容器存取 ConfigMap 時,您可以選擇下列任一選項:
- 將 ConfigMap 掛接為磁碟區,掛接的磁碟區中會提供 ConfigMap 項目做為檔案。建議您這麼做,因為這樣可確保讀取 ConfigMap 時取得最新版本。
- 使用環境變數傳遞 ConfigMap。
建立 ConfigMap
建立 ConfigMap 的方式有很多種,詳情請參閱 GKE 說明文件的「ConfigMaps」頁面。為方便起見,下列步驟說明如何以簡單的方式建立 ConfigMap。
建立 ConfigMap 時,請務必在與執行 Knative serving 服務的叢集相同的命名空間中建立。這些操作說明使用 default
命名空間。
您可以透過指令列建立 ConfigMap:
kubectl create configmap NAME DATA
取代:
- NAME 是 ConfigMap 物件的名稱。
DATA 可以是下列任一項:
--from-file
標記,以及包含一或多個設定檔的每個目錄路徑。--from-literal
旗標和鍵/值組合,用於將每個項目新增至 ConfigMap。
例如:
kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
系統會建立並上傳 ConfigMap,供 default
命名空間中的叢集使用。
讓服務可使用 ConfigMap
建立 ConfigMap 後,您可以在部署新服務或更新現有服務並部署版本時,使用 Google Cloud 主控台或 Google Cloud CLI,將 ConfigMap 設為 Knative 服務的磁碟區或環境變數:
控制台
前往 Google Cloud 控制台的 Knative Serving:
如要設定部署的新服務,請按一下「建立服務」。如要設定現有服務,請按一下該服務,然後按一下「Edit & Deploy New Revision」(編輯及部署新的修訂版本)。
在「進階設定」下方,按一下「變數和密鑰」。
在「參照 ConfigMap」下方,從下拉式選單中選取所需的 ConfigMap。
- 在「參考方法」下拉式選單中,選取要使用 ConfigMap 的方式,例如掛接為磁碟區或公開為環境變數。
- 如果使用掛接做為磁碟區,請指定路徑,然後按一下「完成」。
- 如果您要以環境變數形式公開:
- 提供變數的「名稱」,然後從「金鑰」下拉式選單中選取對應的 ConfigMap 值。
- 按一下「新增」,新增其他 ConfigMap 值。
- 提供變數的「名稱」,然後從「金鑰」下拉式選單中選取對應的 ConfigMap 值。
- 按一下 [完成]。
按一下「下一步」繼續前往下一個部分。
在「設定這項服務的觸發方式」部分,選取要用來叫用服務的連線。
按一下「建立」,將映像檔部署到 Knative 服務,然後等待部署作業完成。
指令列
您可以使用 Google Cloud CLI 為新服務設定 ConfigMap,或更新現有服務:
如果是現有服務,請執行
gcloud run services update
指令,並搭配下列其中一個參數,更新 ConfigMap:範例:
gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
取代:
- SERVICE 改為您的服務名稱。
- KEY1=VALUE1,KEY2=VALUE2,並以半形逗號分隔每個 ConfigMap 的名稱和值配對清單。您可以為每個 KEY 指定掛接路徑,或提供環境變數。以正斜線
/
開頭,指定掛接路徑。所有其他鍵都對應至環境變數。針對每個 VALUE,指定 ConfigMap 名稱。如何指定多個參數。
指令參數選項
如要指定多組鍵/值組合,您可以指定多個參數,方便閱讀。範例:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
如果是新服務,請使用
gcloud run deploy
指令和--set-config-maps
參數執行 ConfigMap 設定:gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
取代:
- IMAGE_URL,並參照容器映像檔,例如
gcr.io/cloudrun/hello
。 - SERVICE 改為您的服務名稱。
- KEY1=VALUE1,KEY2=VALUE2,並以半形逗號分隔每個 ConfigMap 的名稱和值配對清單。您可以為每個 KEY 指定掛接路徑,或提供環境變數。以正斜線
/
開頭,指定掛接路徑。所有其他鍵都對應至環境變數。針對每個 VALUE,指定 ConfigMap 名稱。如何指定多個參數。
指令參數選項
如要指定多組鍵/值組合,您可以指定多個參數,方便閱讀。範例:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
- IMAGE_URL,並參照容器映像檔,例如