我使用kubectl来控制Azure上的Kubernetes服务(用于扩展和获取pod的状态)。 现在需要在生产中的脚本中自动调用kubectl是否安全,而不用担心凭据是否会过期?
这是我在生产服务器上做过的一次(需要通过网页手动登录)(os是Windows Server 2016):
az login
az account set --subscription="S"
az aks get-credentials --resource-group R --name C
这是在script/application中运行的脚本内容:
kubectl get pods
我可以确定现在可以调通,但是,之后会不会凭证过期,还需要重新手动登录?
要控制Azure Kubernetes服务,需要获得执行操作的权限。所以安全的核心是许可。你可以使用具有所需权限的服务主体,而无需进行登录交互的方式。所以az登录可以改为:
az login --service-principal -u service_principal_app_id -p service_principal_secret
要获取访问群集的凭据,有两个权限:
Azure Kubernetes
服务群集Admin角色或User角色通过凭证,就可以了,使用这种方式。
你的答案