本頁說明如何在 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
。