当前位置: 首页 > news >正文

k8s集群配置普通用户权限

集群管理员:负责管理 Kubernetes 集群的用户,拥有最高权限,可以对集群中的资源进行任何操作

开发者:在 Kubernetes 集群中部署和管理自己的应用,可能有限制的权限,仅能管理特定的命名空间或资源。

第三方服务:需要与 Kubernetes 集群交互的外部系统或服务,如监控、日志管理等。

日常工作中尽量不适用root权限(权限太大,我们使用普通用户进行操作)

配置普通用户操作:

1、准备证书

普通用户需要通过证书进行验证,然后通过RBAC授权。因此需要先创建证书,创建证书有两种方式,通过k8s csr申请,直接通过命令创建

创建证书请求文件 lyj-csr.json

{

  "CN": "lyj",

  "hosts": [],

  "key": {

    "algo": "rsa",

    "size": 2048

  },

  "names": [

    {

      "C": "CN",

      "ST": "BeiJing",

      "L": "BeiJing",

      "O": "k8s",

      "OU": "System"

    }

  ]

}

生成证书  

cfssl gencert -ca=/data/tls/k8s/ca.pem -ca-key=/data/tls/k8s/ca-key.pem -config=/data/tls/k8s/ca-config.json -profile=kubernetes lyj-csr.json | cfssljson -bare client

设置名为kubernetes集群

kubectl config set-cluster kubernetes \

  --certificate-authority=/data/kubernetes/ssl/ca.pem \

  --embed-certs=true \

  --server="https://192.168.7.100:6443" \

  --kubeconfig=lyj-config

设置用户

kubectl config set-credentials lyj \

  --client-certificate=./client.pem \

  --client-key=./client-key.pem \

  --embed-certs=true \

  --kubeconfig=lyj-config

设置上下文信息

kubectl config set-context default \

  --cluster=kubernetes \

  --user=lyj \

  --kubeconfig=lyj-config

切换上下文

kubectl config use-context default --kubeconfig=lyj-config

为用户授权:

mkdir /home/lyj/.kube

cp /root/.kube/config  /home/lyj/.kube/

chown -R lyj:lyj lyj/

权即创建角色,并将角色与对象绑定

创建lyj-rbac.yaml 文件并进行应用

Kubectl apply -f lyj-rbac.yaml

--

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRole

metadata:

  name: test

rules:

- apiGroups: ["*"] # "" 表示所有api组

  resources: ["pods","pods/log","deployments"] #*表示所有资源

  verbs: ["list","watch","get","create","delete"]

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

  name: testclusterrolebinding

subjects:

# 你可以指定不止一个“subject(主体)”

- kind: User

  name: lyj # "name" 是区分大小写的

  apiGroup: rbac.authorization.k8s.io

roleRef:

  # "roleRef" 指定与某 Role 或 ClusterRole 的绑定关系

  kind: ClusterRole        # 此字段必须是 Role 或 ClusterRole

  name: test  # 此字段必须与你要绑定的 Role 或 ClusterRole 的名称匹配

  apiGroup: rbac.authorization.k8s.io

再验证下切换用户到普通用户lyj,进行集群命令操作

http://www.lryc.cn/news/356650.html

相关文章:

  • clickhouse——clickhouse单节点部署及基础命令介绍
  • MATLAB基础应用精讲-【数模应用】价格敏感度PSM分析(附python代码实现)
  • 数据驱动的UI艺术:智能设计的视觉盛宴
  • 栈的特性及代码实现(C语言)
  • 防火墙如何端口映射?
  • 咖啡看书休闲时光404错误页面源码
  • 中央事件bus
  • 中国上市企业行业异质性数据分析
  • 【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)
  • 鸿蒙ArkUI-X跨语言调用说明:【平台桥接(@arkui-x.bridge)】
  • ts面试题: 面试题2
  • .NET 某和OA办公系统全局绕过漏洞分析
  • Git-01
  • GitLab的原理及应用详解(七)
  • Vue中使用Vue-scroll做表格使得在x轴滑动
  • 【高频】从输入URL到页面展示到底发生了什么?
  • 【CSharp】ushort[]的IntPtr快速转换为ushort[]无符号短整型数组
  • 释放 OSINT 的力量:在线调查综合指南
  • 22.Volatile原理
  • Vue 3中的v-for指令使用详解
  • GB-T 43694-2024 网络安全技术 证书应用综合服务接口规范
  • AI大模型:掌握未知,开启未来
  • 【C语言习题】26.字符逆序
  • windows和linux下的库文件比较
  • 第七十九节 Java面向对象设计 - Java访问级别
  • Vue进阶之Vue项目实战(四)
  • fix leakage脚本
  • MySQL中视图是什么,有什么作用
  • 【面试题】JavaScript基础高频面试(下)
  • 对于个人而言,大数据时代如何更好地管理自己的信息?