将 Linux 工作负载部署到目标集群
从来源平台迁移工作负载后,您可以使用该流程生成的部署工件将迁移的工作负载容器部署到其他集群。
Skaffold 可处理用于构建、推送和部署应用的工作流。如需了解详情,请参阅使用 Skaffold 构建和部署多个映像。
准备工作
在部署工作负载之前,应先执行以下操作:
在目标集群上部署
以下部分介绍了在集群上部署工作负载的可用选项。
在目标集群上部署并使用 GCR 作为 Docker 注册表
如需确保目标集群可以访问 Container Registry (GCR),请创建包含访问 GCR 所需的凭据的 Kubernetes Secret:
按照创建用于访问 Container Registry 和 Cloud Storage 的服务账号中所述,创建用于部署的服务账号。
此过程允许您下载名为
m4a-install.json
的 JSON 密钥文件。创建包含访问 GCR 所需的凭据的 Kubernetes Secret:
kubectl create secret docker-registry gcr-json-key \ --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat ~/m4a-install.json)" \ --docker-email=account@project.iam.gserviceaccount.com
其中:
docker-registry
用于指定 Kubernetes Secret 的名称,在此示例中为 gcr-json-key。docker-server=gcr.io
用于将 GCR 指定为服务器。docker-username=_json_key
用于指定 JSON 密钥文件中包含用户名。docker-password
用于指定使用 JSON 密钥文件中的密码。docker-email
用于指定服务账号的电子邮件地址。
使用以下任一方法设置 Kubernetes Secret:
更改默认的
imagePullSecrets
值:kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
修改
deployment_spec.yaml
文件以将imagePullSecrets
值添加到spec.template.spec
定义中:spec: containers: - image: gcr.io/PROJECT_ID/mycontainer-instance:v1.0.0 name: mycontainer-instance ... volumes: - hostPath: path: /sys/fs/cgroup type: Directory name: cgroups imagePullSecrets: - name: gcr-json-key
在目标集群上部署并使用具有基本身份验证的 Docker 注册表
如果您使用 Docker 注册表来存储迁移映像,则注册表必须支持使用用户名和密码进行基本身份验证。您可以通过多种方式配置与 Docker 注册表的只读连接,因此您应该使用适合您的集群平台和 Docker 注册表的方法。
应用生成的部署 YAML 文件
使用 kubectl
将部署规范应用于目标集群,例如生产集群。
kubectl
确保目标集群具有 Docker 映像注册表的读取权限。
部署容器:
kubectl apply -f deployment_spec.yaml
后续步骤
- 了解如何完成迁移后映像更新。