实验RBAC授权linux系统普通用户访问k8s集群

网友投稿 303 2022-09-09

实验RBAC授权linux系统普通用户访问k8s集群

实验资源详见:​​《kubernetes原理精讲【自签证书原理+实践篇】》​​

1、在192.168.1.10主机配置RBAC授权linux系统普通用户访问k8s集群# 一般情况,生产kubernetes集群系统按运维职责划分多个命名空间并配置多个维护账户,kubernetes对这些安全需求场景都有很好支持# 因为是HA方案三个master节点kubernetes集群,在任一master节点执行步骤命令都可以。# 切到linux系统root账户,创建learn账户,并设置密码useradd learnpasswd learn#按提示输入密码learn1234#2、创建k8s集群普通账号learn相关证书mkdir -p /root/kubernetes/rbacopenssl genrsa -out learn.key 2048openssl req -new -key learn.key -out learn.csr -subj "/CN=learn/O=learn"openssl x509 -req -in learn.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out learn.crt -days 36503、创建k8s集群普通账号learn的contextkubectl config set-context learn-context --cluster=kubernetes --namespace=default --user=learn# 验证k8s集群context, 包含:kubernetes-admin@kubernetes(集群安装时自动创建)和learn-contextkubectl config get-contexts# 创建的k8s集群contextkubectl config use-context learn-context# 验证contextkubectl config current-context# k8s集群普通账号learn证书添加到k8s集群kubectl config set-credentials learn --client-certificate=learn.crt --client-key=learn.key# 实操提示:删除context命令:kubectl config delete-context learn-context # 验证命令会输出k8s资源没有授权的错误日志kubectl get pods -n learn --context=learn-context4、切回root账户,通过yaml文件创建角色和角色绑定# 切换到k8s集群超级管理员contextkubectl config use-context kubernetes-admin@kubernetes# 验证contextkubectl config current-context# k8s集群支持授权资源类型较多,生产环境根据运维职责需求分配资源角色权限 # 上传rabc授权yaml文件到master01节点/root/kubernetes/rbac目录下cd /root/kubernetes/rbac# 创建角色kubectl create -f learn-role.yaml# 角色权限绑定kubectl create -f learn-role-binding.yaml# 创建集群角色kubectl create -f learn-cluster-reader.yaml# 集群角色权限绑定kubectl create -f learn-ClusterRoleBinding.yaml# 查看角色创建和角色权限绑定结果kubectl get rolekubectl get rolebindingkubectl get clusterrolekubectl get ClusterRoleBinding# 实操提示:集群资源权限,需集群授权,如:nodes、PersistentVolume5、将linux系统root账号$HOME/.kube/config文件拷贝到linux系统普通账号learn的$HOME/.kube下mkdir -p /home/learn/.kube/cp $HOME/.kube/config /home/learn/.kube/chown -R learn:learn /home/learn/cp /root/kubernetes/rbac/learn.crt /home/learn/cp /root/kubernetes/rbac/learn.key /home/learn/chown -R learn:learn /home/learn/# 修改config文件,将learn.crt和learn.key文件地址改为/home/learn/目录下vi /home/learn/.kube/config6、在linux的root账号下,切换到新创建learn账号,验证授权正确# 如果授权正确,切到learn账号后,执行下面kubectl命令输出内容正确(实操提示:learn账号有权限的资源类型输出均正确,无权限的资源会提示无权限)kubectl config use-context learn-contextkubectl config current-contextkubectl get po -o widekubectl get po -o wide -n learnkubectl get deploy -o widekubectl get deploy -o wide -n learnkubectl get no -o widekubectl get ns -o wide.....7、在linux的learn账号下,验证完成后,可切回k8s集群管理员账号查看集群信息kubectl config use-context kubernetes-admin@kubernetes8、在linux的root账号下,变更授权,验证权限# 新增/删除权限kubectl edit role learn-reader

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:「开源摘星计划」docker登录Harbor认证原理分析
下一篇:公关界的007:男士广告也可以勇敢一点,理然这支视频有态度!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~