k8s的认证:

与API server通信的客户端大致有两类:
  1.集群客户端工具(kubectl、kubeadm、kubelet等)
  2.集群内pod.

任何客户端访问k8s时的过程:
  1.认证:任何客户端访问k8s,首先需要通过k8s的认证;认证通过是说明所用账号只是k8s的合法用户;
  2.授权:认证通过后,是否具有对k8s集群中资源的操作,需要k8s对其进行授权检查;
  3.准入控制:授权检查通过后,并不能说明你的操作都在我们指定的操作范围内;进一步补充授权。
认证:k8s中常见的认证方式有:token令牌认证和SSL认证。
授权:k8s中常见的授权方式有:Node、ABAC(Attribute Base Access Control基于属性的访问控制)、RBAC(Role Base Access Control基于角色的访问控制)
k8s是高度模块化设计的,认证、授权、准入控制等,都通过插件方式部署,可由用户自定义选择经由什么样的插件来完成何种控制逻辑。

每个名称空间下都会有一个默认的token,该名称空间下的pod使用默认使用这个token来与API Servre通信。

kubeadm初始化后生成的客户端证书和私钥在:.kube/config

k8s的kubectl等客户端工具对集群操作时,命令被转化为一个http协议的请求:
  如:若想访问default名称空间下的deployment控制器生成的nignx pod时的URL路径为:
  http://node_ip:node_port/apis/apps/v1/namespaces/default/deployments/nginx
 
service account(sa):
kubernetes集群有两类认证时的账号:
  user account(管理者、访问者)、service account(pod)。

创建一个sa:

1 kubectl create serviceaccount SA_NAME

若要对单独或一组pod使用单独token来实现权限的提升或者降级,需要单独创建pod账户(Service account)。
service account简写sa,创建一个sa的同时,系统会自动给这个sa生成一个token,用于使创建的sa连接API Server 。
查看某个pod使用的sa:kubectl describe pods POD_NAME 在输出的结果中寻找volumes段的SecretName。
pod若要使用某个自定义sa时,须在创建Pod时,在pod的资源清单中添加SA_NAME(spec.serviceAccountName:SA_NAME)。

例:k8s创建pod时,需要docker在镜像仓库中拉取镜像,若是私有镜像仓库,则需要提供账户及密钥,此时的解决方法有两种:

1.直接在定义pod时定义imagePullSecret。(较不安全)

2.创建单独的账户(sa),在sa中定义imagePullSecret,然后在创建pod时定义serviceAccountName为此sa名称。

转载于:https://www.cnblogs.com/Smbands/p/10900593.html

k8s的认证和service account简述相关推荐

  1. K8s认证机制、kubeconfig及配置、Service Account,K8s鉴权体系、RBAC及配置案例、Ingress工作机制,Ingress配置方式及金丝雀发布案例、Helm及常见用法

    添加两个以上静态令牌认证的用户,例如 tom 和 jerry,并认证到 Kubernetes 上: #生成token root@k8s-master01:~# echo "$(openssl ...

  2. k8s之 service account token

    在前一篇笔记中我们验证了使用sa的token作为一种认证,向apiserver发送请求,这里简述下它的认证原理和流程. 首先得知道这种token称为JWT(json web token),可以参考官网 ...

  3. Google Analytics Service account 认证指南

    GA官方文档:https://developers.google.com/analytics/devguides/reporting/core/v4/authorization Service acc ...

  4. kubernetes的Service Account

    kubernetes的Service Account Service account作用 Service account是为了方便Pod里面的进程调用Kubernetes API或其他外部服务. Se ...

  5. kubernetes的Service Account和secret关系

    https://blog.csdn.net/ccy19910925/article/details/80610336 Service Account Service Account概念的引入是基于这样 ...

  6. [置顶]kubernetes资源类型--secret和Service Account

    secret 概念 secret对象类型主要目的是保存和处理敏感信息/私密数据,比如密码,OAuth tokens,ssh keys等信息.将这些信息放在secret对象中比 直接放在pod或dock ...

  7. kubernetes资源类型--secret和Service Account

    secret 概念 secret对象类型主要目的是保存和处理敏感信息/私密数据,比如密码,OAuth tokens,ssh keys等信息.将这些信息放在secret对象中比 直接放在pod或dock ...

  8. 在Kubernetes Pod中使用Service Account访问API Server

    2019独角兽企业重金招聘Python工程师标准>>> 在Kubernetes Pod中使用Service Account访问API Server 博客分类: Kubernetes ...

  9. kubernetes的Service Account和secret

    Service Account Service Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Se ...

最新文章

  1. multiple Rational objects
  2. C++ 播放音频流(PCM裸流)
  3. pthread_create函数编译时报错:undefined reference to 'pthread_create'
  4. 项目已被os x使用 不能打开-黑苹果之路
  5. 大数据之-Hadoop3.x_MapReduce_自定义分区案例---大数据之hadoop3.x工作笔记0112
  6. 谈谈JavaScript中的function constructor和new关键字
  7. python中sklearn库更新_python库之sklearn
  8. A2DP和AVRCP蓝牙音频传输协议
  9. 魔鬼定律:你一偷懒,必然出错,麒麟LINUX新版本无法安装
  10. 广域网宽带接入技术九ADSL技术
  11. 图解图库JanusGraph系列-janusgraph图数据库的本地源码编译教程(janusgraph source code compile)
  12. 寒门再难出贵子(好好看一下,有很大收货的)
  13. 干货 | 互联网平台资金结算的合规处理方案
  14. Logistic Regression - IBM 员工离职预测
  15. Java做彩虹进度条,Android自定义控件-彩虹条进度条
  16. 浙江宁波天童禅寺重阳节前夕慰问鄞州区东吴福利院
  17. 鼠标手是否算工伤 专家:法定职业病才能获赔
  18. ActiveMQ学习 (一) JSM基本概念
  19. 海纳百川 有容乃大, 壁立千仞 无欲则刚
  20. 中国工业转向架炉膛市场深度研究分析报告

热门文章

  1. php怎么获取用户所在地址,php获取客户端ip及获取ip所在地址
  2. 使用pycharm配置flask项目,并使用git进行版本控制
  3. 【51单片机快速入门指南】4.4:I2C 读取HMC5883L / QMC5883L 磁力计
  4. onvif概念及应用?
  5. JAVA进阶day02
  6. 前端学习(3069):vue+element今日头条管理-loding处理
  7. [html] 如果一个标签元素同时出现两个class属性,两个class都会生效吗?为什么?
  8. PS教程第二十三课:套索工具
  9. [软技能] 请说说使用iconfont图标的优点和缺点
  10. 工作371-javascript判断数组为空