本頁說明如何在 Google Distributed Cloud (GDC) 無網路連線裝置中修改系統構件。
在 GDC 中修改系統構件,管理及調整部署作業,
事前準備
如要修改系統構件,您必須取得診斷存取權,並具備必要的 Identity and Access 角色存取權:
- 診斷存取權是一種特殊存取模式,可讓你在顧客遇到問題時,安全地提供支援。如要取得這項存取權,請建立支援單。
- 系統構件登錄檔偵錯工具:具備所有 Harbor 資源的讀寫權限。請要求安全管理員授予您「系統構件登錄檔偵錯工具」(sar-debugger) 叢集角色。
- 系統 Artifact Registry harbor-system 密鑰 Debugger:在 harbor-system命名空間中具有偵錯工具存取權。請安全管理員授予您「系統構件登錄檔 harbor-system 密碼偵錯工具 (sar-harbor-system-secret-debugger)」角色。
上傳 Docker 映像檔
如要修改系統構件,必須上傳新的 Docker 映像檔。上傳方法取決於您要將容器映像檔推送至下列哪個登錄檔:
- 將容器映像檔上傳至啟動機器的 Artifact Registry。
- 將容器映像檔上傳至機構基礎架構叢集中的 Artifact Registry。
以下各節說明這兩種登錄檔類型的上傳指示。
在啟動機器中上傳容器映像檔
如要在啟動程序機器中將容器映像檔上傳至 Artifact Registry,請完成下列步驟:
- 請確認您已修正重大問題,並取得修改後的 Docker 映像檔。 
- 將新映像檔傳輸至 GDC 環境中的啟動程序節點。 
- 登入啟動節點。 
- 在啟動時間,於啟動機器中找出 Artifact Registry 的位址,並將其設為 - REGISTRY_IP環境變數:- REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}
- 擷取存取 Artifact Registry 的憑證。擷取管理員帳戶和密碼: - ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)
- 登入 Artifact Registry: - docker login $REGISTRY_IP -u admin -p $ADMIN_PASS- 系統會列印 - Login Succeeded訊息,確認您已成功登入 Artifact Registry。
- 為新映像檔加上標記: - docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG- 更改下列內容: - CONTAINER_IMAGE_URL:本機容器圖片網址,例如- gcr.io/repository/image:tag。
- PROJECT_NAME:Artifact Registry 專案名稱。
- IMAGE_NAME:容器映像檔名稱。
- TAG:容器圖片標記。
 
- 將新映像檔推送至 Artifact Registry: - docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
將容器映像檔上傳至機構基礎架構叢集
如要將容器映像檔上傳至機構基礎架構叢集上的 Artifact Registry,請完成下列步驟:
- 請確認您已修正重大問題,並取得修改後的 Docker 映像檔。 
- 將新映像檔傳輸至具有根存取權的節點,並使用根 - kubeconfig檔案,傳輸至無網路環境中的機構基礎架構叢集。
- 將機構基礎架構叢集 - kubeconfig路徑匯出為環境變數:- export ORG_INFRA_KUBECONFIG=KUBECONFIG_FILE_PATH- 將 - KUBECONFIG_FILE_PATH替換為- kubeconfig檔案的路徑。
- 找出叢集內 Artifact Registry 的位址,並設為 - REGISTRY_IP環境變數:- REGISTRY=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG get harborcluster / harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}
- 確認 - REGISTRY_IP包含有效網址,例如:- 10.200.0.36:10443- echo ${REGISTRY_IP}
- 檢查憑證授權單位 (CA) 憑證是否存在: - ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crt- 如果憑證不存在,請建立並設定憑證: - mkdir -p /etc/docker/certs.d/${REGISTRY_IP}/ chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ echo $(kubectl get secret harbor-cert-secret -n istio-system -o jsonpath='{.data.ca\.crt}' --kubeconfig $ORG_INFRA_KUBECONFIG) | openssl base64 -A -d > /etc/docker/certs.d/${REGISTRY_IP}/ca.crt chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
- 擷取存取 Artifact Registry 的憑證。使用下列指令擷取管理員帳戶和密碼: - ADMIN_PASS=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)
- 登入 Artifact Registry: - docker login $REGISTRY_IP -u admin -p $ADMIN_PASS- 系統會列印 - Login Succeeded訊息,確認您已成功登入 Artifact Registry。
- 為新映像檔加上標記: - docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG- 更改下列內容: - CONTAINER_IMAGE_URL:本機容器圖片網址,例如- gcr.io/repository/image:tag。
- PROJECT_NAME:Artifact Registry 專案名稱。
- IMAGE_NAME:容器映像檔名稱。
- TAG:容器圖片標記。
 
- 將新映像檔推送至 Artifact Registry: - docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
修改系統構件
使用 gdcloud artifacts 指令修改 GDC 中的系統構件。執行更換軟體套件、調整設定及套用修補程式等動作,更新、自訂及保護部署作業。
請執行下列動作:
- 管理 apt套件。
- 從 OCI 套件建構及擷取映像檔。
- 列出根 OCI 映像檔的可用版本。
- 修補現有套件。
- 從登錄檔提取及推送 OCI 套件。
- 顯示 OCI 組合的結構。
- 解壓縮 OCI 組合。
詳情請參閱 gdcloud artifacts。