Using Alauda Container Platform Registry in Kubernetes Clusters
Alauda Container Platform (ACP) Registry 为 Kubernetes 工作负载提供安全的容器镜像管理。
目录
Registry Access Guidelines
- 推荐使用内部地址:对于存储在集群注册表中的镜像,部署时优先使用集群内部服务地址
internal-docker-registry.cpaas-system.svc,以确保最佳的网络性能并避免不必要的外部路由。 - 外部地址使用场景:外部入口域名(例如
registry.cluster.local)主要用于:- 集群外部的镜像推送/拉取(如开发人员机器、CI/CD 系统)
- 需要访问注册表的集群外部操作
Deploy Sample Application
- 在
my-ns命名空间中创建名为my-app的应用。 - 将应用镜像存储在注册表地址
internal-docker-registry.cpaas-system.svc/my-ns/my-app:v1。 - 每个命名空间中的 默认 ServiceAccount 会自动配置 imagePullSecret,用于访问
internal-docker-registry.cpaas-system.svc的镜像。
示例 Deployment:
Cross-Namespace Access
为了允许 my-ns 的用户拉取 shared-ns 的镜像,shared-ns 的管理员可以创建角色绑定以授予必要权限。
Example Role Binding
Best Practices
- 注册表使用:部署时始终使用
internal-docker-registry.cpaas-system.svc,确保安全性和性能。 - 命名空间隔离:利用命名空间隔离实现更好的安全性和镜像管理。
- 使用基于命名空间的镜像路径:
internal-docker-registry.cpaas-system.svc/<namespace>/<image>:<tag>。
- 使用基于命名空间的镜像路径:
- 访问控制:通过角色绑定管理跨命名空间的用户和 ServiceAccount 访问权限。
Verification Checklist
-
验证
my-ns中默认 ServiceAccount 的镜像访问权限: -
验证
my-ns中某用户的镜像访问权限:
Troubleshooting
- 镜像拉取错误:检查 Pod 规范中的 imagePullSecrets 是否正确配置。
- 权限拒绝:确保用户或 ServiceAccount 在目标命名空间拥有必要的角色绑定。
- 网络问题:验证网络策略和服务配置,确保能连接到内部注册表。
- DNS 解析失败:检查节点上的
/etc/hosts文件内容,确保internal-docker-registry.cpaas-system.svc的 DNS 解析配置正确。- 验证节点的 /etc/hosts 配置,确保
internal-docker-registry.cpaas-system.svc的 DNS 解析正确 - 注册表服务映射示例(internal-docker-registry 服务的 ClusterIP):
- 如何获取
internal-docker-registry当前 ClusterIP:
- 验证节点的 /etc/hosts 配置,确保