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。