k8s新增用户并授权其可查看所有名称空间的pod的权限

2023-11-18 / 0 评论 / 427 阅读
温馨提示:
本文最后更新于 2023-11-18,已超过半年没有更新,若内容或图片失效,请留言反馈。

本文记录了在k8s里新增用户并授权其可查看所有名称空间的pod的权限,当用户用此账号登陆后在k8s就只有查看Pods权限功能,而不能删除或者创建功能。

一、ssl认证
生成一个证书
(1)生成一个私钥
进入目录:cd /etc/kubernetes/pki/ 执行命令:(umask 077; openssl genrsa -out hiboy.key 2048)
k8s新增用户并授权其可查看所有名称空间的pod的权限
(2)生成一个证书请求
openssl req -new -key hiboy.key -out hiboy.csr -subj "/CN=hiboy"
(3)生成一个证书
openssl x509 -req -in hiboy.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out hiboy.crt -days 3650
k8s新增用户并授权其可查看所有名称空间的pod的权限

二、在k8s里新增加一个用户账号:hiboy
(1)把hiboy这个用户添加到kubernetes集群中,可以用来认证apiserver的连接
[root@ctdmaster1 pki]# kubectl config set-credentials hiboy --client-certificate=./hiboy.crt --client-key=./hiboy.key --embed-certs=true
k8s新增用户并授权其可查看所有名称空间的pod的权限
(2)在kubeconfig下新增加一个hiboy账号context信息
kubectl config set-context hiboy@kubernetes --cluster=kubernetes --user=hiboy
k8s新增用户并授权其可查看所有名称空间的pod的权限
(3)创建一个集群角色(clusterrole)
[root@ctdmaster1 ~]# vim hiboy-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: hiboy-get-pod
rules:

  • apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "list", "watch"]

    [root@ctdmaster1]# kubectl apply -f hiboy-clusterrole.yaml
    k8s新增用户并授权其可查看所有名称空间的pod的权限
    (4)创建一个clusterrolebinding
    [root@ctdmaster1]# kubectl create clusterrolebinding hiboy-get-pods --clusterrole=hiboy-get-pod --user=hiboy
    k8s新增用户并授权其可查看所有名称空间的pod的权限
    三、账号信息配置
    1、在系统添加一个hiboy的普通用户
    useradd hiboy #新增系统用户 hiboy
    passwd hiboy #设置hiboy登陆密码(hi135246)

    [root@ctdmaster1 ~]# useradd hiboy
    [root@ctdmaster1 ~]# passwd hiboy
    更改用户 hiboy 的密码 。
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

2、调整修改账号配置信息(不要直接修改root/.kube/config的信息,不然K8s会问题)
复制一份k8s配置信息:cp -ar /root/.kube /tmp/
修改/tmp/.kube/config文件,把kubernetes-admin和其他账号相关删除,只留hiboy用户
k8s新增用户并授权其可查看所有名称空间的pod的权限
并把current-context变成如下:current-context: hiboy@kubernetes
3、把配置信息复制到hiboy目录下
cp -ar /tmp/.kube/ /home/hiboy/
chown -R hiboy.hiboy /home/hiboy/
k8s新增用户并授权其可查看所有名称空间的pod的权限
4、切换账号测试
su - hiboy
kubectl get pods
kubectl get pods -n kube-system
k8s新增用户并授权其可查看所有名称空间的pod的权限
由上图可以,如果是新用户到hiboy登陆系统可以直接查到k8s里所有的pods信息,但是并不具备其他功能,如果需要其他权限也可以采取相类似的操作进行。

评论一下?

OωO
取消