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: admin
  containers:
    - name: nginx
      image: 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+OMITTED
    server: https://192.168.56.172:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
- context:
    cluster: kubernetes
    user: test
  name: test@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
- name: test
  user:
    client-certificate-data: REDACTED
    client-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: default
  name: 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-pods
  namespace: default
subjects:
- kind: User
  name: test
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: myrole
  apiGroup: 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: default
  name: 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-pods
  namespace: default
subjects:
- kind: User
  name: test
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: myrole
  apiGroup: 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-myclusterrole
  namespace:  default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: myclusterrole
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: test

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding				#ClusterRoleBinding全局授权,无需指定namespace
metadata:
  name: clusterrolebinding-myclusterrole
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: myclusterrole
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: 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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122485.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—剑指OfferII LCR 044.在每个树行中找最大值【中等】

2023每日刷题(二十三) Leetcode—LCR 044.在每个树行中找最大值 DFS实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned …

单应用多语言切换(语言国际化)

目录 编写语言管理类 编写Activity 的父类 DEMO 实验界面--首页Activity DEMO 实验界面--设置语言Activity Demo 语言资源文件 参考连接 编写语言管理类 package com.example.languageapplicationimport android.content.Context import android.content.ContextWrapper i…

Oracle Primavera Unifier 23.10 新特征

根据官方的说法,Unifier 23.7 ~ 23.9 更多为对功能bug的修复,以下将对23.10进行重点介绍 Cost Sheets Cost Sheets Support Conditional Formatting Conditional formatting of table data is now supported in cost sheets with features such as ce…

Excel下拉填充时,如何使得数字不递增?

问题描述:Excel下拉填充时,如何使得数字不递增? 解决办法:先下拉填充数据之后,看到最后一个单元格的右下角有个填充设置的符号,右键选择复制单元格即可。其中这里的填充序列就是递增数字的操作。

高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论

文章目录 概述操作系统的限制因素文件句柄限制1. 进程限制2. 全局限制 端口号范围限制 概述 单台服务器可以支持的并发TCP连接数取决于多个因素,包括硬件性能、操作系统限制、网络带宽和应用程序设计。以下是一些影响并发TCP连接数的因素: 服务器硬件性…

split() 函数实现多条件转为数据为数组类型

使用 split() 函数并传递正则表达式 /[,;.-]/ 作为分隔符来将字符串按照逗号、分号和破折号进行拆分,并将结果赋值给 splitArray 数组。下面是一个示例代码: 在上面的示例中,我们使用 split() 函数将 inputString 字符串按照逗号、分号和破折…

低代码平台,业务开发的“银弹”

目录 一、为什么需要低代码平台 二、低代码平台的搭建能力 三、低代码其他能力 四、写在最后 随着互联网和信息技术的快速发展,各行各业都在积极拥抱数字化转型。在这个过程中,软件开发成为企业实现数字化转型的关键环节。然而,传统的软件开发…

IP协议,

文章目录 IP协议IP相当于OSI参考模型的第3层网络层与数据链路层的关系IP基础知识IP地址属于网络层地址路由控制数据链路的抽象化IP属于面向无连接型IP地址的基础知识IP地址的定义路由控制IPv6 IP协议 IP相当于OSI参考模型的第3层 IP(IPv4、IPv6)相当于…

70 内网安全-域横向内网漫游Socks代理隧道技术

目录 必要基础知识点:1.内外网简单知识2.内网1和内网2通信问题3.正向反向协议通信连接问题4.内网穿透代理隧道技术说明 演示案例:内网穿透Ngrok测试演示-两个内网通讯上线内网穿透Frp自建跳板测试-两个内网通讯上线CFS三层内网漫游安全测试演练-某CTF线下2019 涉及资源: 主要说…

el-table实现单选框+隐藏多选框+回显

0 效果 1 单选框 2 隐藏多选框 3 回显 回显数据要在el-table中添加两个属性

快速排序【2023年最新】

快速排序思想总结: 内附快排模版,可开袋即食。 学了一套快速排序的模版,接下来我说一下我的理解。 这套模板的思路是这样的,随机找到一个点,可以是数组中的左边界也可以是右边界,或者是数组中任何一个元…

Power Apps-“编辑“窗体组件

插入一个“编辑”窗体 连接数据源 在该组件的Item函数中编辑筛选符合条件的唯一记录 LookUp(表名,列名值) LookUp参考文档:Filter、Search 和 LookUp 函数(包含视频) - Power Platform | Microsoft Learn 数据表里的数据就一一对应出现在了组…

HarmonyOS开发:回调实现网络的拦截

前言 上一篇文章,分享了一个基于http封装的一个网络库,里面有一个知识点,在初始化的时候,可以设置请求头拦截和请求错误后的信息的拦截,具体案例如下: Net.getInstance().init({netErrorInterceptor: new M…

中国第二批,11个大模型备案获批

加上首批的 10 余个大模型,目前已有超过 20 个大模型获得审批。 据钛媒体独家报道,国内第二批通过备案的AI大模型包括11家公司,部分已面向全社会开放服务。加上首批的10余个大模型,目前已有超过20个大模型获得备案。 新一批备案…

【数据结构】手撕单链表

目录 前言 1 链表 1.1 链表的概念及结构 1.2 链表的分类 1.2.1 单向或者双向 1.2.2 带头或者不带头 1.2.3 循环或者非循环 1.2.4 无头单向非循环链表 1.2.5 带头双向循环链表 2 链表的实现 2.1 结构 2.2 结点的创建 2.3 尾插 2.4 头插 2.5 尾删 2.6 头删 2.7 …

竞赛 身份证识别系统 - 图像识别 深度学习

文章目录 0 前言1 实现方法1.1 原理1.1.1 字符定位1.1.2 字符识别1.1.3 深度学习算法介绍1.1.4 模型选择 2 算法流程3 部分关键代码 4 效果展示5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计 图像识别 深度学习 身份证识别…

Linux 进程终止和等待

目录 一&#xff1a;进程常见的退出方法 1. main 函数返回值 2.调用 exit 3.调用 _exit 二&#xff1a;异常问题 三&#xff1a;进程等待 1.概念 2.进程等待的必要性 3.进程等待的方法 <1>&#xff1a;wait --- 系统调用 <2>&#xff1a;waitpid 进程…

如何利用SD-WAN优化跨国企业访问SAP的性能

随着企业数字化的创新发展和应用系统部署规模的增长&#xff0c;企业传统网络已经无法满足应用系统对大上行带宽、确定性时延、高可靠和精准优化等能力的要求&#xff0c;因此在现有传统网络基础上&#xff0c;企业也需要不断变革WAN技术&#xff0c;以更稳定、更高效、更安全的…

【PHP网页应用】MySQL数据库增删改查 基础版

使用PHP编写一个简单的网页&#xff0c;实现对MySQL数据库的增删改和展示操作 页面实现在index.php&#xff0c;其中basic.php为没有css美化的原始人版本 函数实现在database.php 目录 功能基本实现版 CSS美化版 basicindex.php index.php database.php 代码讲解 功能基…