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:

 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名称。

k8s的认证和service account简述的更多相关文章

  1. k8s学习笔记之九: Service Account

    第一章.前言 每一个用户对API资源进行操作都需要通经过以下三个步骤: 第一步:对客户端访问进行认证操作,确认是否具有访问k8s权限 token(共享秘钥) SSL(双向SSL认证) ....通过任何 ...

  2. Service Account和RBAC授权

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

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

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

  4. k8s的认证授权

    一.ServiceAccount Service account是为了方便Pod里面的进程调用Kubernetes API或其他外部服务而设计的.它与User account不同   User acc ...

  5. Service Account和其secrets 作用和场景,看了不亏。。

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

  6. 错误: No API token found for service account "default",

    [root@kubernetes-master pods]# kubectl create -f mysql.yaml Error from server (ServerTimeout): error ...

  7. kubernetes的Service Account和secret

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

  8. SQL Server 2012 Managed Service Account

    原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html 转载请注明出处 (一)Windows服务使用的登陆帐号 Windows服务只有登录到某一帐户的情况下才 ...

  9. SSRS2:Reporting Service 配置Service Account

    1,Service Account SSRS以一个Service方式实现,有三部分组成:Web Service,Report Manager和一个后台的进程,这个Service运行的账号就是Servi ...

随机推荐

  1. LeetCode 179 Largest Number 把数组排成最大的数

    Given a list of non negative integers, arrange them such that they form the largest number.For examp ...

  2. 联想电脑Fn+F6禁用触摸板功能不管用

    我的原因是电脑没有安装触摸板驱动,解决方法:去联想官网根据自己的主机编号下载适合自己的触摸板驱动,安装重启即可解决

  3. 最小生成树(prim算法和kruskal算法)

    学习博客:https://www.cnblogs.com/zhangming-blog/p/5414514.html 其实就是加点法:从不属于这个集合的点中找从本集合可以找到的最小边,加入本集合 看代 ...

  4. (转)Linux系统stat指令用法

    <Linux系统stat指令用法>  原文:https://www.cnblogs.com/linux-super-meng/p/3812695.html stat指令:文件/文件系统的详 ...

  5. 如何设计企业移动应用 by宋凯

    移动应用设计内部培训 by宋凯 企业移动应用的特点:简约.效率.增强ERP与环境的结合.及时.安全.企业内社交. 一句话定义你的移动应用:然后围绕这句话来设计你的APP. 一:如何定义你的应用: 1, ...

  6. Java基础重点指南

    Java基础重点指南 每个人都有自己的学习方法,下面是我学完Java后总结的一些要点: 一:(了解)Java诞生于1995年,由Sun公司开发.它把源代码编译成“中间码”,然后通过“Java虚拟机”把 ...

  7. bootstrapTable的数据后端分页排序

    数据后端分页排序,其实就是sql语句中oeder by做一些限制. 之前在写sql语句中的order by是写死,既然要写活,就要传参数到后台. 之前讲到bootstrapTable的queryPar ...

  8. bootstrap标签tab切换

    <ul class="nav nav-tabs" id="myTab"> <li class="active">&l ...

  9. HTTPS与SSL(二)

    CA Ca介绍 电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系 ...

  10. SpringBoot的优缺点

    优点: 1.快速构建项目 2.对主流开发框架的无配置继承 3.项目可独立运行,无须外部依赖Servlet容器 4.提高运行时的应用监控 5.极大地提高了开发.部署效率 6.与云计算的天然集成 缺点: ...