Kubernetes (十五) 认证与授权

一. 访问控制                                                                                                              

二.UserAccount与serviceaccount区别                                                                                    将认证信息添加到serviceAccount中,要比直接在Pod指定imagePullSecrets要安全很多

                 1. 首先命令创建sa 

                2  把serviceaccount和pod绑定起来   vim pod3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  serviceAccountName: admin      #指定的sa创建的admin用户
  containers:
    - name: game2048
      image: reg.westos.org/westos/game2048
 

              3. 添加secrets到serviceaccount中

 kubectl patch serviceaccount admin -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'

      #此时镜像拉取策略

      这里的私有仓库未公开仍然可以拉取

    三.UserAccount认证                                                    

 cd /etc/kubernetes/pki/                    #默认证书生成位置

 openssl genrsa -out test.key 2048  #生成自签名证书

openssl req -new -key test.key -out test.csr -subj "/CN=test"  #通过csr拿到test.key

 openssl  x509 -req -in test.csr -CA ca.crt -CAkey ca.key  -CAcreateserial -out test.crt -days 365 

 kubectl config set-credentials test --client-certificate=/etc/kubernetes/pki/test.crt --client-key=/etc/kubernetes/pki/test.key --embed-certs=true #创建安全上下文(test用户)

kubectl config set-context test@kubernetes --cluster=kubernetes --user=test#创建对应的上下文切换

kubectl config use-context test@kubernetes                          #切换用户为test
kubectl config use-context kubernetes-admin@kubernetes  #切换用户为admin
     切换用户后执行命令报错因没有权限
        开始设置权限测试                         vim roles.yaml

         kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default   #在这里创建的
  name: myrole       #创建的角色
rules:
- apiGroups: [""]
  resources: ["pods"]  #针对pod设置的以下权限
  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

      设置权限测试 (2)           

           此时在文件中添加权限模块解决这个问题       

         记得切回admin用户   在上面文件中添加模块即可      vim roles.yaml

---
kind: ClusterRole    #全局资源
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: myclusterrole
rules:
- apiGroups: [""]
  resources: ["pods"]  #针对的资源pod下命令
  verbs: ["get", "watch", "list", "delete", "create", "update"]
- apiGroups: ["extensions", "apps"]
  resources: ["deployments"] #和资源deployment下面的命令
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding                #RoleBinding必须指定namespace
metadata:
  name: rolebind-myclusterrole
  namespace:  default           #指定的namespace
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: myclusterrole
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: test

      设置权限测试 (3)           

    此时在文件中添加权限模块解决这个问题

        记得切回admin用户   在上面文件中添加模块即可      vim roles.yaml

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding               #ClusterRoleBinding全局授权
metadata:
  name: clusterrolebinding-myclusterrole
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: myclusterrole
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: test

 回收实验: kubectl delete -f roles.yaml

                    kubectl config delete-user test

                    kubectl config delete-context test@kubernetes

   四. 服务账户的自动化                                                                                        


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关闭Windows自动更新的6种方法

关闭Windows自动更新的6种方法! 方法一:通过Windows设置关闭Windows自动更新 步骤1. 按WinI打开Windows设置页面。步骤2. 单击“更新和安全”>“Windows更新”,然后在右侧详情页中选择“暂停更新7天”选项即可在此后7天内关闭Windows更新…

【Linux】相关背景及环境搭建

前言: 认识 Linux, 了解 Linux 的相关背景,学会如何使用云服务器,掌握使用远程终端工具 xshell 登陆 Linux 服务器 文章目录 一、Linux介绍1.1 关于UNIX1.2 Linux的诞生及发展历程1.3 Linux开源1.4 Linux在各个行业的现状1.5 发行版本 二、Li…

LeetCode 热题 100 | 双指针(上)

目录 1 283. 移动零 2 11. 盛最多水的容器 3 15. 三数之和 菜鸟做题第一周,语言是 C 1 283. 移动零 解题思路: 两个指针一前一后遍历数组前者永远指向 0,后者永远在寻找非 0 数的路上后者找到一个非 0 数就和前者进行一个数值交换 …

x-cmd pkg | jieba - 中文结巴分词工具

目录 简介首次用户功能特点竞品分析进一步阅读 简介 结巴中文分词(jieba)是一款在 Python 环境下使用的开源中文文本分词工具。它支持多种分词模式,包括精确模式、全模式和搜索引擎模式,同时支持繁体分词和自定义词典。因其易用性…

代码随想录算法训练营第十一天|20 有效的括号、1047 删除字符串中的所有相邻重复项、150 逆波兰表达式求值

20 有效的括号 题目链接:有效的括号 思路 由于栈结构的特殊性,非常适合做对称匹配类的题目。按照逻辑来讲,首先我们要确定下有几种不匹配的情况: 多了左括号多了右括号左右括号不匹配 然后左括号和右括号是一对一的&#xff…

[202401C]巨人之力的题解

原题描述: 时间限制: 1000ms 空间限制: 262144kb 题目描述 两千多年以前,身为艾尔迪亚人的尤弥尔意外获得巨人之力,并且创造了九大巨人,其无以匹敌的力量使得整个世界都陷入了无尽的战乱纷争,艾尔迪亚之外的人类过…

使用excel从1-2048中随机选择1个整数,并展示与其对应的单词

在Excel中,你可以使用以下指令来从1到2048之间随机选择一个整数,并展示其对应的单词: 1. 首先,在一个空白单元格中输入以下公式: INDEX(单词列表范围, RANDBETWEEN(1, 2048)) 这里的"单词列表范围"是一个包…

Vue中对前端按钮高亮的几种操作方式

在Vue中我们有时候会碰到一些需求,就是在点击某个按钮的时候,我们执行别的操作,但是我们希望点击别的操作的时候,让我们之前点击的按钮进行处于高亮状态。 个人在处理业务的时候,测试说,当用户选择某个按钮…

thinkphp6 模糊查找json下的字段值

写法: where(json的字段->json下的字段) sql生成json_extract(json的字段,$.json下的字段1.json下的字段2) 可以加上like where(‘‘json的字段->json下的字段, ‘like’, ‘%’. keyword .’%’) sql生成json_extract(json的字段,$.js…

Redis面试题15

Redis 集群的数据一致性如何保证? 答:Redis 集群的数据一致性是通过内置的集群协议和数据迁移机制来保证的。 在 Redis 集群中,数据被分为多个槽(slot),每个槽对应一个节点。当一个节点接收到写操作时&…

[GN] Vue3.2 快速上手 ---- 核心语法2

文章目录 标签的 ref 属性props生命周期自定义hook总结 标签的 ref 属性 用在普通DOM标签上&#xff0c;获取的是DOM节点。用在组件标签上&#xff0c;获取的是组件实例对象。 用在普通DOM标签上&#xff1a; <template><div class"person"><h3 ref&…

docker-compose直接官网二进制文件安装(linux)

试了很多种方法&#xff0c;国内镜像库安装&#xff0c;会报语法错误 直接用github官网&#xff0c;命令安装下载太慢&#xff0c;还不如魔法下载 官网链接docker-compose-linux-x86_64https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-linux-x8…

温度采样【通道选通】S9KEAZ128的PTA2和PTA3引脚无法拉高

1、问题记录&#xff1a;由18串温度采样修改成32串温度采样&#xff0c;增加一路adc采样&#xff0c;通过cd4051控制通道选通&#xff0c;代码中增加了相应的代码&#xff0c;发现增加的最后8路温度不能够控制&#xff0c;以24串为例&#xff0c;给温度传感器增加温度&#xff…

pytorch(四)、完整小网络的搭建和sequential的使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言搭建小网络和sequential的使用一、 第一种形式如下&#xff1a;二、第二种方式&#xff0c;使用sequential 前言 至此&#xff0c;神经网络的基础部分就基本结…

解决Spring Boot跨域问题(配置JAVA类)

什么是跨域问题 跨域问题指的是不同端口之间&#xff0c;使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制&#xff0c;它是为了保证用户的安全&#xff0c;防止恶意网站窃取数据。 比如前端用的端口号为8081&#xff0c;后端用的端口号为8080&#xff0c;后…

C语言从入门到实战——编译和链接

编译和链接 前言一、 翻译环境和运行环境二、 翻译环境2.1 预处理&#xff08;预编译&#xff09;2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 三、 运行环境 前言 在C语言中&#xff0c;编译和链接是将源代码转换为可执行文件的两个主要步骤。 编…

Linux C语言开发(七)内存分类

目录 一.前言 二.动态内存 三.静态内存 四.动态内存与静态内存的区别 一.前言 C语言以其高效性而闻名,一个代码若想高效,则必须对内存空间进行合理的利用和分配。根据内存分配方式不同可以分

MacBookPro怎么数据恢复? mac电脑数据恢复?

使用电脑的用户都知道&#xff0c;被删除的文件一般都会经过回收站&#xff0c;想要恢复它直接点击“还原”就可以恢复到原始位置。mac电脑同理也是这样&#xff0c;但是“回收站”在mac电脑显示为“废纸篓”。 如果电脑回收站&#xff0c;或者是废纸篓里面的数据被清空了&…

docker安装nginx

拉取镜像 docker pull nginx 运行 docker run --name nginx -p 80:80 -d nginx 本地创建管理目录 创建挂载文件夹 mkdir -p /home/nginx mkdir -p /home/nginx/www mkdir -p /home/nginx/conf

App 测试工具大全,收藏这篇就够了

随着移动互联网的高速发展&#xff0c;App应用非常火&#xff0c;测试工程师也会接触到各种app应用。除了人工测试之外&#xff0c;也可以通过一些测试工具来提高我们的测试效率&#xff0c;以下对于我用过或听过的app测试工具做了一个统一整理&#xff0c;欢迎补充。 一、APP自…