认证,鉴权,准入控制

在这里插入图片描述
在这里插入图片描述
前两种都是服务器验证了客户端。但是客户端并没有验证服务器的真实性。

https证书认证。
在这里插入图片描述
在这里插入图片描述
补充:kubelet和kubectl的区别

kubelet:运行在cluster所有节点上,负责启动POD和容器
Kubelet:master派到node节点代表,管理本机容器
一个集群中每个节点上运行的代理,它保证容器都运行在Pod中
负责维护容器的生命周期,同时也负责Volume(CSI) 和 网络(CNI)的管理

kubeadm:用于初始化cluster

kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件
通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署

在这里插入图片描述

pod也访问api server比如coredns
在这里插入图片描述
因为都是kubeadm安装的 所以没有手动签发 都是自动签发的
在这里插入图片描述
就是集群认证信息的填充。
是个隐藏文件
在这里插入图片描述
还有证书信息以及私钥信息
包含集群的访问方式以及认证信息
在这里插入图片描述
如果是pod访问api server就需要借助sa

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到两种类型的secret
在这里插入图片描述
service Account:对于有些pod需要和api-server交互。比如flannel,coredns。但是api-server不是谁都可以访问的,对于pod来说就是通过service Account方案。

Opaque:编码加密方式的

dockerconfigjson:私有仓库去下载镜像,会有一些认证方案。这个认证是由docker 仓库完成的。需要嵌入用户名和密码信息。就可以通过该方式保存私有仓库认证的用户名和密码。让他在下载镜像的时候自动达成注入的方案。

第一种是由kubernets自动创建的,所以看下使用即可。

在这里插入图片描述

每一个命名空间下都会有一个自定义的secret
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

授权

在这里插入图片描述
在这里插入图片描述
资源就是deployment,pod,cpu,内存等资源
非资源就是原数据信息,比如pod的状态。
rbac都可以授予对应的权限。覆盖全面。
在这里插入图片描述
比如creat动作创建一个pod就是role,rolebinding就是吧role角色赋予给用户或者组或者sa,

比如创建一个role是readpod,在默认空间。将其敷于给角色zhangsan就是一个rolebinding的过程。
比如想要在不同命名空间下创建多个一样role很麻烦
所以创建一个cluserrole可以读取所有命名空间下的pod的信息。
直接通过rolebinding将cluserrole赋予给用户wangwu 和zhaoliu
相当于资源的下方

cluserRole里面管理了很多个角色(角色有相应的权限),进行RoleBinding操作,把相对应的角色赋予给某人。

在这里插入图片描述
将cluserRole通过CluserRoleBinding绑定给wangyang 那wangyang就有访问所有pod的权限。
可以狭义的理解为cluserrole包含全部的role
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表示定义一个pod-reader的Role,规则就是如果不写组表示所有的核心组API group,对pod类型支持get,获取,监听和列出的动作。如果吧这个rule赋予给某个用户就表示这个用户就可以在default命名空间下对pod进行获取等动作。

在这里插入图片描述
apiVersion集群的访问接口
表示就是如果吧这个cluserrole赋予给某个用户,某个用户进行cluserRolebind绑定的话,该用户就可以在所有的命名空间下对secrets进行获取,监控,列出等操作。
在这里插入图片描述
RoleBinding可以绑定role和cluerrole
但是clusterRoleBInding只能绑定cluserRole
subject:对象类型
授予的api组是xxx
赋予的role类型就是pod-reader,以及进行这个role时的api组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
manager组调用的api 接口
在这里插入图片描述
如果只有pods/log表示仅仅能看pod的日志信息
在这里插入图片描述

实操

在这里插入图片描述

一个k8s集群 比如运行很多程序
一组mysql集群。一组nginx集群

两个项目组 一个是dba. 一个是系统普通管理员sa

需要资源分割

现在比如一个用户devuser可以管理dev名称空间下的所有资源
在这里插入图片描述
直接使用这个用户登陆进去后访问k8s是访问不了的
在这里插入图片描述
需要创建改用户的证书访问信息

1.创建证书请求
在这里插入图片描述
用户名为devuser。组是K8s,rsa算法 2048位,host代表可以使用的主机,不写代表所有。
json方式
在这里插入图片描述
目录随意
证书请求
在这里插入图片描述
在这里插入图片描述
创建证书,一般情况下证书信息放在该目录下,所以切换。 -bare生成的证书文件名字
在这里插入图片描述
在这里插入图片描述
证书私钥和证书都好了
在这里插入图片描述
指定server
指定ca证书
指定是否需要加密的认证
指定服务器信息
创建devuser.kubeconfig的文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就可以看到集群信息的信息以及证书等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多了客户的信息
在这里插入图片描述
就是帮忙绑定到一个命名空间
需要首先创建该命名空间
在这里插入图片描述
在这里插入图片描述

写入xx文件中
在这里插入图片描述
可以看到又被写入一些命名空间信息
在这里插入图片描述
admin可以在任何命名空间下为所欲为,因为是管理员
所以该命令就是吧admin进行rolebinding,绑定到dev的名称空间,代表devuser用户可以在dev空间下为所欲为。
在这里插入图片描述
在这里插入图片描述
在此用户下建立目录

将kubeconfig拷贝过来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在还是不能访问集群的 因为没有切换上下文
该命令其实就是让kubectl读取config信息
在这里插入图片描述
在这里插入图片描述
创建一个pod
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
该用户就仅仅在dev空间下具有所有的权限。

准入控制

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值