本页面介绍了如何在 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。