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

kubernetes集群编排(7)

目录

k8s认证授权

pod绑定sa

认证

授权


k8s认证授权

pod绑定sa

[root@k8s2 ~]# kubectl create sa admin        //在当前 Kubernetes 集群中创建一个名为 "admin" 的新服务账户[root@k8s2 secret]# vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:name: mypod
spec:serviceAccountName: admincontainers:- name: nginximage: nginx

认证

[root@k8s2 secret]# cd /etc/kubernetes/pki/
[root@k8s2 pki]# openssl genrsa -out test.key 2048
[root@k8s2 pki]# openssl req -new -key test.key -out test.csr -subj "/CN=test"
[root@k8s2 pki]# openssl  x509 -req -in test.csr -CA ca.crt -CAkey ca.key  -CAcreateserial -out test.crt -days 365
[root@k8s2 pki]#  kubectl config set-credentials test --client-certificate=/etc/kubernetes/pki/test.crt --client-key=/etc/kubernetes/pki/test.key --embed-certs=true
[root@k8s2 pki]# kubectl config set-context test@kubernetes --cluster=kubernetes --user=test

[root@k8s2 pki]# kubectl config view
apiVersion: v1
clusters:
- cluster:certificate-authority-data: DATA+OMITTEDserver: https://192.168.56.172:6443name: kubernetes
contexts:
- context:cluster: kubernetesuser: kubernetes-adminname: kubernetes-admin@kubernetes
- context:cluster: kubernetesuser: testname: test@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-adminuser:client-certificate-data: REDACTEDclient-key-data: REDACTED
- name: testuser:client-certificate-data: REDACTEDclient-key-data: REDACTED

切换用户

[root@k8s2 pki]# kubectl config use-context test@kubernetes
[root@k8s2 pki]# kubectl get pod

 

默认用户没有任何权限,需要授权

 切回admin

[root@k8s2 pki]# kubectl config use-context kubernetes-admin@kubernetes

 

[root@k8s2 rbac]# vim roles.yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:namespace: defaultname: myrole
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "watch", "list", "create", "update", "patch", "delete"]---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: test-read-podsnamespace: default
subjects:
- kind: Username: testapiGroup: rbac.authorization.k8s.io
roleRef:kind: Rolename: myroleapiGroup: rbac.authorization.k8s.io

[root@k8s2 rbac]# kubectl apply -f roles.yaml
role.rbac.authorization.k8s.io/myrole created
rolebinding.rbac.authorization.k8s.io/test-read-pods created[root@k8s2 rbac]# kubectl config use-context test@kubernetes
Switched to context "test@kubernetes".[root@k8s2 rbac]# kubectl run demo --image nginx[root@k8s2 rbac]# kubectl get pod

现在只能操作pod资源,其它不行

切回admin

[root@k8s2 rbac]# kubectl config use-context kubernetes-admin@kubernetes

授权

[root@k8s2 rbac]# vim roles.yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:namespace: defaultname: myrole
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "watch", "list", "create", "update", "patch", "delete"]---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: test-read-podsnamespace: default
subjects:
- kind: Username: testapiGroup: rbac.authorization.k8s.io
roleRef:kind: Rolename: myroleapiGroup: rbac.authorization.k8s.io---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: myclusterrole
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "watch", "list", "delete", "create", "update"]
- apiGroups: ["extensions", "apps"]resources: ["deployments"]verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding						#RoleBinding必须指定namespace
metadata:name: rolebind-myclusterrolenamespace:  default
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: myclusterrole
subjects:
- apiGroup: rbac.authorization.k8s.iokind: Username: test---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding				#ClusterRoleBinding全局授权,无需指定namespace
metadata:name: clusterrolebinding-myclusterrole
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: myclusterrole
subjects:
- apiGroup: rbac.authorization.k8s.iokind: Username: test

[root@k8s2 rbac]# kubectl apply -f roles.yaml[root@k8s2 rbac]# kubectl config use-context test@kubernetes[root@k8s2 rbac]# kubectl get deployments.apps -A

切回admin 回收

[root@k8s2 rbac]# kubectl config use-context kubernetes-admin@kubernetes[root@k8s2 rbac]# kubectl delete -f roles.yaml[root@k8s2 rbac]# kubectl config delete-user test
[root@k8s2 rbac]# kubectl config delete-context test@kubernetes

 

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

相关文章:

  • mfc 下的OpenGL
  • 机器翻译目前广泛应用于文档翻译以及硬件翻译
  • 木材加工工厂数字孪生可视化管理平台,赋能传统木材制造业数字化高质转型
  • 企业级低代码开发,科技赋能让企业具备“驾驭软件的能力”
  • 在WSL2中安装多个Ubuntu实例
  • java--实体javaBean
  • 重温设计模式之什么是设计模式?
  • CSS关于默认宽度
  • JDBC(二)
  • LeetCode----149. 直线上最多的点数
  • 19、Flink 的Table API 和 SQL 中的自定义函数及示例(3)
  • Flutter IOS 前后台切换主题自动变化的问题
  • rabbitmq入门学习
  • 说说对Fiber架构的理解?解决了什么问题?
  • Spring Security笔记
  • 快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLab
  • [vmware]vmware虚拟机压缩空间清理空间
  • 一篇文章带你使用(MMKV--基于 mmap 的高性能通用 key-value 组件)
  • Pytorch 里面torch.no_grad 和model.eval(), model.train() 的作用
  • Ozon产品内容评级功能上线,妙手ERP实力助力Ozon卖家全方位打造爆款产品!
  • Linux 下最主流的文件系统格式——ext
  • 变量环境、变量提升和暂时性死区
  • yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
  • 【神经网络】【GoogleNet】
  • 网络安全深入学习第八课——正向代理(工具:ReGeorg)
  • Jmeter全流程性能测试实战
  • Python算法例8 将整数A转换为B
  • 一个基于百度飞桨封装的.NET版本OCR工具类库 - PaddleOCRSharp
  • 在 CelebA 数据集上训练的 PyTorch 中的基本变分自动编码器
  • 利用Ansible实现批量Linux服务器安全配置