【Kubernetes运维篇】RBAC之创建集群用户管理K8S

这篇具有很好参考价值的文章主要介绍了【Kubernetes运维篇】RBAC之创建集群用户管理K8S。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


需求:公司新入职两位运维同事,分别是zhangsan、lisi,刚入职肯定不能给K8S管理员权限,所以需要创建两个系统账号,分别对应不同的权限:
  • zhangsan用户:对uat名称空间拥有管理员权限
  • lisi用户:对所有命名空间拥有查看Pod的权限

一、创建zhangsan集群用户赋予uat名称空间管理员权限

第一步:生成一个私钥

cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out zhangsan.key 2048) 

第二步:生成一个证书请求

openssl req -new -key zhangsan.key -out zhangsan.csr -subj "/CN=zhangsan"

第三步:生产一个证书

openssl x509 -req -in zhangsan.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out zhangsan.crt -days 3650

第四步:将zhangsan用户加入集群用户中,用来认证apiserver的连接

kubectl config set-credentials zhangsan --client-certificate=./zhangsan.crt --client-key=./zhangsan.key --embed-certs=true

验证:

kubectl config view

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,# 3-Kubernetes容器编排,kubernetes,运维,容器,RBAC授权,K8S集群用户

第五步:添加zhagnsan用户上下文

kubectl config set-context zhangsan@kubernetes --cluster=kubernetes --user=zhangsan

验证:

kubectl config view

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,# 3-Kubernetes容器编排,kubernetes,运维,容器,RBAC授权,K8S集群用户

第六步:切换到zhangsan用户,默认没有任何权限

kubectl config use-context zhangsan@kubernetes

可以切换后,先切换回来管理用户

kubectl config use-context kubernetes-admin@kubernetes

第七步:创建uat名称空间 绑定zhangsan用户在uat名称空间拥有管理员权限

kubectl create namespace uat
kubectl create rolebinding zhangsan -n uat --clusterrole=cluster-admin --user=zhangsan

第八步:切换zhangsan用户,测试是否有权限

kubectl config use-context zhangsan@kubernetes
kubectl get pods -n uat

第九步:在Linux中添加一个zhagnsan系统用户,并赋予密码

useradd zhangsan
passwd zhangsan

第十步:将/root/.kube/目录复制到zhangsan用户家目录,并赋权

cp -rp /root/.kube /home/zhangsan
chown -R  zhangsan:zhangsan /home/zhangsan

第十一步:切换zhangsan用户修改/home/zhangsan/.kube/config只保留张三用户信息

su - zhangsan
vim .kube/config

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,# 3-Kubernetes容器编排,kubernetes,运维,容器,RBAC授权,K8S集群用户

测试使用zhangsan用户访问集群

kubectl get pods -n uat

OK,测试没问题后就可以吧Linux的zhangsan系统用户提交给新来的运维同事等,让新来的同事只有在uat命名空间操作的权限。

二、创建lisi集群用户赋予查看所有名称Pod权限

第一步:生成一个私钥

cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out lisi.key 2048) 

第二步:生成一个证书请求

openssl req -new -key lisi.key -out lisi.csr -subj "/CN=lisi"

第三步:生产一个证书

openssl x509 -req -in lisi.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out lisi.crt -days 3650

第四步:将lisi用户加入集群用户中,用来认证apiserver的连接

kubectl config set-credentials lisi --client-certificate=./lisi.crt --client-key=./lisi.key --embed-certs=true

验证:

kubectl config view

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,# 3-Kubernetes容器编排,kubernetes,运维,容器,RBAC授权,K8S集群用户

第五步:添加lisi用户上下文

kubectl config set-context lisi@kubernetes --cluster=kubernetes --user=lisi

验证:

kubectl config view

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,# 3-Kubernetes容器编排,kubernetes,运维,容器,RBAC授权,K8S集群用户

第六步:切换到lisi用户,默认没有任何权限

kubectl config use-context lisi@kubernetes

可以切换后,先切换回来管理用户

kubectl config use-context kubernetes-admin@kubernetes

第七步:创建clusterrole赋予查看Pod的权限,因为是查看所有命名空间Pod,所以这里使用clusterrole

cat clusterrole.yaml 
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: clusterrole-lisi
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch" ,"list"]
kubectl apply -f clusterrole.yaml

第八步:创建clusterrolebinding绑定lisi用户

kubectl create clusterrolebinding  lisi --clusterrole=clusterrole-lisi --user=lisi

第九步:切换lisi用户测试权限

kubectl config use-context lisi@kubernetes
kubectl get pods

第十步:在Linux中添加一个lisi系统用户,并赋予密码

useradd lisi
passwd lisi

第十步:将/root/.kube/目录复制到lisi用户家目录,并赋权

cp -rp /root/.kube /home/lisi
chown -R  lisi:lisi /home/lisi

第十一步:切换zhangsan用户修改/home/lisi/.kube/config只保留张三用户信息

su - lisi
vim .kube/config

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,# 3-Kubernetes容器编排,kubernetes,运维,容器,RBAC授权,K8S集群用户

测试使用lisi用户访问集群

kubectl get pods

OK,至此结束!文章来源地址https://www.toymoban.com/news/detail-569621.html

到了这里,关于【Kubernetes运维篇】RBAC之创建集群用户管理K8S的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 25-k8s集群中-RBAC用户角色资源权限

            我们通过k8s各组件架构,指导各个组件之间是使用https进行数据加密及交互的,那么同理,我们作为“使用”k8s的各种资源,也是通过https进行数据加密的;         k8s通过我们家目录下的证书来判断我们是谁?通过证书内容,认定我们的权限; 用户证书的位置 [r

    2024年02月22日
    浏览(46)
  • 使用Vagrant创建和管理本地Kubernetes(K8s)集群的步骤是什么

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内容:Vagrant 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 在本文中,我们将探讨如何使用Vagrant来创建和管理一个本地的

    2024年02月09日
    浏览(44)
  • 【Kubernetes运维篇】零故障升级Pod健康探测详解

    中文官方参考文档: Pod探测是Kubernetes中的一种机制, 用于检测Pod的状态和健康状况。当探测到Pod状态不正常时,根据重启策略进行相应的Pod操作 ,探测可以帮助Kubernetes集群自动化地管理容器的健康状态,提高应用程序的可靠性和可用性。 探测针对Pod中容器进行操作,所以探

    2024年02月08日
    浏览(50)
  • 【Kubernetes运维篇】ingress-nginx实现业务灰度发布详解

    1、场景一:将新版本灰度给部分用户 假设线上运行了一套对外提供 7 层服务的 Service A 服务,后来开发了个新版本 Service AA需要上线,但不想直接替换掉原来的 Service A,希望先灰度一小部分用户,等运行一段时间足够稳定了再逐渐全量上线新版本,最后平滑下线旧版本。 这

    2024年02月15日
    浏览(53)
  • 解密Kubernetes(K8s)集群的创建过程和关键步骤

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内容:Kubernetes集群 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 创建Kubernetes集群是在云原生环境中托管和管理容器化应

    2024年02月09日
    浏览(44)
  • K8S:Rancher管理 Kubernetes 集群

    Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理, 以确保集群的安全性,加速企业数字化转型。超过 40000 家企业每天使用 Rancher 快速创新。 官网:https://docs.rancher.cn/ Rancher 和 k8s 都是用来作为容器的调度与

    2024年02月07日
    浏览(52)
  • 云原生Kubernetes:阿里云托管k8s集群ACK创建和使用

    目录   一、理论 1.容器服务Kubernetes版 2.ACK Pro版集群概述 3.ACK版本说明 二、实验 1.创建专有版Kubernetes集群 三、问题 1.依赖检查未通过   (1)概念 阿里云容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称容器服务ACK)是全球首批通过Kubernetes一致性认证的服务平

    2024年02月13日
    浏览(79)
  • 远程管理服务器 用户组创建 1(运维笔记)

    修改跳板机名称: 修改跳板机网络模式为仅主机模式,ssh连接 假设有三个开发人员: 为三个开发人员设置密码: 创建相应的目录,给开发人员使用: 查看开发人员属组: 创建一个组: 添加用户附加组 查看组信息 赋予权限,更改目录权限: 冒险位(setuid):4000针对一些命令,临

    2023年04月13日
    浏览(52)
  • K8s攻击案例:RBAC配置不当导致集群接管

    01、概述 Service Account本质是服务账号,是Pod连接K8s集群的凭证。在默认情况下,系统会为创建的Pod提供一个默认的Service Account,用户也可以自定义Service Account,与Service Account关联的凭证会自动挂载到Pod的文件系统中。 当攻击者通过某个web应用获取到一个Pod权限时,如果RBAC权

    2024年02月02日
    浏览(46)
  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包