Kubernetes详解(四十八)——ServiceAccount原理

今天继续给大家介绍Linux运维相关知识,本文主要内容是ServiceAccount原理。

一、Kubernetes认证、授权和准入控制

Kubernetes集群的API Server是资源访对象问和管理的唯一入口,也是整个Kubernetes集群的网关。正因为API Server如此重要,Kubernetes集群才会对每一个发送至API Server网关的请求进行合法性检验,其中包括身份验证、操作权限验证以及操作规范验证等,请求只有通过这一系列验证之后才会被存储进入etcd或者是访问资源。Kubernetes的API Server认证、授权和准入控制如下图所示:
在这里插入图片描述

二、ServiceAccount详解

在上图中的Pod中,对API Server的访问需要Service Account资源。在Kubernetes集群中,每个namespace都会自动创建一个默认的ServiceAccount,而当创建Pod时,如果没有指定使用的Service Account,那么Kubernetes就会为该Pod自动指定这个默认的ServiceAccount。同时Pod在创建后,如果没有指定ImagePullSecrets,就会自动把ServiceAccount的ImagePullSecrets添加到Pod中,并将token和ca.crt自动挂载到/var/run/secret/kubernetes.io/serviceaccount/目录下。
当然,我们也可以手动创建ServiceAccount,此时TokenController会检测ServiceAccount的创建,并为它们创建secret。当我们手动指定Pod所使用的ServiceAccount时,该ServiceAccount必须存在,如果不存在,那么Pod就不会被创建。
ServiceAcount与UserAcount的区别在于以下点:
1、UserAccount是为用户访问的,而ServiceAccount是为Pod访问而设计的。
2、UserAccount是跨namespace的,而ServiceAccount仅局限于它所在的namespace之内。

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124486667