阿里云容器服务团队在Kubernetes的基础上实现了控制器ACR credential helper,如图8-9所示。这个控制器可以让同时使用阿里云Kubernetes集群和容器镜像服务产品的用户,在不用配置自己用户名和密码的情况下,自动使用私有仓库中的容器镜像。
具体来说,控制器会监听acr-configuration这个ConfigMap的变化,其主要关心acr-registry和watch-namespace这两个配置。
前一个配置指定为临时账户授权的镜像仓库地址,后一个配置管理可以自动拉取镜像的命名空间。当控制器发现有命名空间需要被配置却没有被配置的时候,它会通过阿里云容器镜像服务的API来获取临时用户名和密码。
有了临时用户名和密码,ACR credential helper就为命名空间创建对应的Secret以及更改default SA来引用这个Secret。这样,控制器和Kubernetes集群本身的功能,一起使阿里云Kubernetes集群拉取阿里云容器镜像服务上的镜像的全部流程自动化了。