首页 > 其他分享 >kubernetes创建用户

kubernetes创建用户

时间:2024-08-21 08:55:05浏览次数:8  
标签:kubectl kubernetes -- 创建 用户 kubeconfig yaml csr developer

原文:https://hbayraktar.medium.com/how-to-create-a-user-in-a-kubernetes-cluster-and-grant-access-bfeed991a0ef

1.使用openssl生成密钥对和CSR(Certificate Signing Request )

openssl genrsa -out developer.key 2048
openssl req -new -key developer.key -out developer.csr -subj "/CN=developer"

2.创建CSR YAML文件

cat <<EOF > csr_template.yaml
apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
  name: developer-csr
spec:
  request: <Base64_encoded_CSR>
  signerName: kubernetes.io/kube-apiserver-client
  usages:
  - client auth
EOF

3.使用base64编码developer.csr文件中的内容,替换<Base64_encoded_CSR>

CSR_CONTENT=$(cat developer.csr | base64 | tr -d '\n')
sed "s|<Base64_encoded_CSR>|$CSR_CONTENT|" csr_template.yaml > developer_csr.yaml

4.在kubernetes中创建csr

#创建
kubectl create -f developer_csr.yaml
#查看
kubectl get csr
#通过CSR
kubectl certificate approve developer-csr
#查看通过的CSR证书
kubectl get csr developer-csr -o jsonpath='{.status.certificate}'

5.导出通过的CSR证书

kubectl get csr developer-csr -o jsonpath='{.status.certificate}' | base64 --decode > developer.crt

6.生成新的kubeconfig文件

#查看当前集群配置信息
kubectl config view
#根据当前集群信息创建新的kubeconfig文件
kubectl config set-cluster kubernetes --server=https://127.0.0.1:6443 --certificate-authority=/var/lib/rancher/k3s/server/tls/server-ca.crt --embed-certs=true --kubeconfig=developer.kubeconfig
#设置用户认证信息
kubectl config set-credentials developer --client-certificate=developer.crt --client-key=developer.key --embed-certs=true --kubeconfig=developer.kubeconfig
#设置用户上下文
kubectl config set-context developer-context --cluster=kubernetes --namespace=default --user=developer --kubeconfig=developer.kubeconfig
#切换到用户上下文
kubectl config use-context developer-context --kubeconfig=developer.kubeconfig

7.添加用户对应的ClusterRole,设置访问权限

#创建ClusterRole
cat <<EOF > developer-cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: developer-role
rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]
EOF
#绑定用户和ClusterRole
cat <<EOF > developer-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: developer-binding
namespace: default
subjects:
- kind: User
name: developer
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: developer-role
apiGroup: rbac.authorization.k8s.io
EOF
kubectl apply -f developer-cluster-role.yaml -f developer-role-binding.yaml

8.测试用户

kubectl --kubeconfig=developer.kubeconfig get pods
kubectl --kubeconfig=developer.kubeconfig run nginx --image=nginx
kubectl --kubeconfig=developer.kubeconfig get pods

标签:kubectl,kubernetes,--,创建,用户,kubeconfig,yaml,csr,developer
From: https://www.cnblogs.com/brightdays/p/18370342

相关文章

  • CentOS7设置默认免密登录用户root
    CentOS7设置默认免密登录用户root步骤1、打开要更改的CentOS系统2、切换到root用户2、reboot重启系统步骤1、打开要更改的CentOS系统2、切换到root用户2、reboot重启系统......
  • vSphere5.7.1.创建VM
    第一部分创建vm1.phoenixbios2.intelmotherboard3.intelpciidecontroller4.idecd-romdrive5.buslogicorlsilogicparallelscsicontroller6.amdorintelcpu,dependinguponthephysicalhardware7.intele1000oramdpcnetnic8.standardvgavideoadapt......
  • Python、R用RFM模型、机器学习对在线教育用户行为可视化分析|附数据、代码
    全文链接:https://tecdat.cn/?p=37409原文出处:拓端数据部落公众号分析师:ChunniWu随着互联网的不断发展,各领域公司都在拓展互联网获客渠道,为新型互联网产品吸引新鲜活跃用户,刺激用户提高购买力,从而进一步促进企业提升综合实力和品牌影响力。然而,为了更好地了解产品的主要受众群......
  • Swift与UIKit:构建卓越用户界面的艺术
    标题:Swift与UIKit:构建卓越用户界面的艺术在iOS应用开发的世界中,UIKit是构建用户界面的基石。自从Swift语言问世以来,它与UIKit的结合就为开发者提供了一个强大而直观的工具集,用于创建直观、响应迅速的应用程序。本文将带领读者深入了解如何使用Swift和UIKit来构建引人入胜的......
  • Kubernetes基础命令
    Kubernetes提供kubectl是使用KubernetesAPI与Kubernetes集群的控制面进行通信的命令行工具。这个工具叫做 kubectl。针对配置信息,kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。你可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig参数......
  • dokuwiki创建超过22个用户时用户管理器502报错的解决方法
    Dokuwiki超过22个用户时用户管理器502报错解决当DokuWiki启用了[ldaplocalauth]方式认证,并且创建的用户超过22个时,再次打开用户管理器浏览器会收到Nginx返回的502BadGateway报错。这个问题通常是由于Nginx的fastcgi缓存或头部缓冲区大小不足以处理从后端服务器(如PHP-FPM)接收......
  • svnhook---在提交前检查用户是否填入需要的日志
    一:svnhook机制svn的hook机制,跟其他很多类似的工具一样,hook机制的本身就是在某个具体的时机所触发的内容,类似于事件驱动的回调。举个简单的例子,我们使用svncommit的时候如果希望对日志的信息进行判断,如果日志中没有包含指定的信息,提示相关的错误信息,不允许提交。这样的场景,就是h......
  • svnhook---用户提交后,解析用户的提交信息,发送到企业微信机器人
    一:第一篇写到了在用户提交时做检测,不允许不填写提交日志和特定的信息,感兴趣的可以查看  https://www.cnblogs.com/a565810497/p/18369876二:现在来写一个用户成功提交后,我们拿到svn的提交日志,通过企业微信机器人发送到群组里三:下面是具体操作先复制一个脚本,去掉tmpl后缀,并且......
  • ToughRADIUS 快速安装指南 - 搭建开源用户认证
    ToughRADIUS快速安装指南ToughRADIUS是一种健壮、高性能、易于扩展的开源RADIUS服务器。本指南将引导您快速地在您的系统上安装和配置ToughRADIUS服务。当前版本是基于Go语言开发的。开源项目地址:https://github.com/talkincode/toughradius官方文档:https://www.to......
  • 使用 Pygame 创建简单的移动方块游戏
    Pygame是一个用于开发图形和多媒体应用的优秀Python库。下面,我们将逐步解释如何创建一个简单的游戏,其中一个蓝色方块可以在屏幕上移动。 安装Pygame首先,确保你已经安装了Pygame。可以通过以下命令安装:pipinstallpygame 游戏结构1.初始化Pygame开始时,需......