本页面介绍了如何在 Google Distributed Cloud (GDC) 气隙设备中修改系统制品。
在 GDC 中修改系统制品,以管理和优化部署,
准备工作
如需修改系统制品,您必须获得诊断访问权限,并拥有必要的身份和访问权限角色:
- 诊断访问权限是一种特权访问模式,用于在客户遇到问题时安全地为其提供支持。您必须创建支持请求,才能获得此访问权限。
- 系统制品注册表调试器:拥有对所有 Harbor 资源的读取和写入权限。请让您的 Security Admin 为您授予 System Artifact Registry Debugger (sar-debugger) 集群角色。
- 系统 Artifact Registry harbor-system Secret Debugger:在 harbor-system命名空间中具有调试器访问权限。请让您的 Security Admin 为您授予 System Artifact Registry harbor-system secret Debugger (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 映像。 
- 将新映像转移到具有 root 访问权限的节点,该节点具有 root - 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 软件包的结构。
- 解压缩 OCI 软件包。
如需了解详情,请参阅 gdcloud artifacts。