Common CLI Command Operations
Alauda Container Platform 提供了命令行工具,供用户与 Alauda Container Platform Registry 进行交互。以下是一些常见操作和命令示例:
假设集群的 Alauda Container Platform Registry 服务地址为 registry.cluster.local,且您当前操作的命名空间为 my-ns。
请联系技术服务获取 kubectl-acp 插件,并确保其已正确安装在您的环境中。
目录
登录 Registry
通过登录 ACP 来登录集群的 Registry。
kubectl acp login <ACP-endpoint>
为用户添加命名空间权限
为用户添加命名空间拉取权限。
kubectl create rolebinding <binding-name> --clusterrole=system:image-puller --user=<username> -n <namespace>
为用户添加命名空间推送权限。
kubectl create rolebinding <binding-name> --clusterrole=system:image-pusher --user=<username> -n <namespace>
为服务账户添加命名空间权限
为服务账户添加命名空间拉取权限。
kubectl create rolebinding <binding-name> --clusterrole=system:image-puller --serviceaccount=<namespace>:<serviceaccount-name> -n <namespace>
为服务账户添加命名空间推送权限。
kubectl create rolebinding <binding-name> --clusterrole=system:image-pusher --serviceaccount=<namespace>:<serviceaccount-name> -n <namespace>
拉取镜像
从 Registry 拉取镜像到集群内(例如用于 Pod 部署)。
# 从当前命名空间(my-ns)的 Registry 拉取名为 my-app,标签为 latest 的镜像
kubectl acp pull registry.cluster.local/my-ns/my-app:latest
# 从其他命名空间(例如 shared-ns)拉取镜像(需要有 shared-ns 命名空间的拉取权限)
kubectl acp pull registry.cluster.local/shared-ns/base-image:latest
该命令会验证您在目标命名空间的身份和拉取权限,然后从 Registry 拉取镜像。
推送镜像
将本地构建的镜像或从其他地方拉取的镜像推送到 Registry 的指定命名空间。
您需要先使用标准容器命令行工具(如 docker)将本地镜像打标签(tag)为目标 Registry 的地址和命名空间格式。
# 给镜像打上目标地址标签:
docker tag my-app:latest registry.cluster.local/my-ns/my-app:v1
# 使用 kubectl 命令将其推送到当前命名空间(my-ns)的 Registry
kubectl acp push registry.cluster.local/my-ns/my-app:v1
将远程镜像仓库中的镜像推送到 Alauda Container Platform Registry 的指定命名空间。
# 如果您的远程镜像仓库中有镜像 remote.registry.io/demo/my-app:latest
# 使用 kubectl 命令将其推送到 Registry 的命名空间(my-ns)
kubectl acp push remote.registry.io/demo/my-app:latest registry.cluster.local/my-ns/my-app:latest
该命令会验证您在 my-ns 命名空间内的身份和推送权限,然后将本地打标签的镜像上传到 Registry。