08 Kubernetes应用配置管理

news2024/11/25 18:45:28

课件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在 Kubernetes 中,secret 是一种用于存储敏感信息的对象。Kubernetes 支持以下三种类型的 secret:

  1. Opaque:这是默认的 secret 类型,可以用于存储任何类型的数据,包括字符串、二进制数据等。

  2. Service Account:这种类型的 secret 是自动生成的,用于存储与 service account 相关的信息,例如 API token 等。

  3. TLS:这种类型的 secret 用于存储 TLS 证书和私钥,用于加密通信。

这三种类型的 secret 在使用方式和配置上略有不同,但都提供了将敏感信息存储在 Kubernetes 集群中的方便方式,同时也提供了一些安全性措施来确保这些信息不会被未授权的人员访问或泄露。

在这里插入图片描述
在这里插入图片描述
Pod可以使用Secret存储和访问敏感信息,例如密码、密钥和证书等。以下是两种Pod使用Secret的方式:

  1. Volume方式:

在Pod的定义中声明一个volume,并将Secret挂载到该volume中。然后,可以将该volume挂载到容器中的特定路径。以下是一个使用Volume方式的Pod示例:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    volumeMounts:
    - name: secret-volume
      mountPath: /etc/my-secret
      readOnly: true
  volumes:
  - name: secret-volume
    secret:
      secretName: my-secret

在上面的示例中,Pod声明了一个名为secret-volume的volume,并使用my-secret Secret将其填充。然后,该volume被挂载到容器的/etc/my-secret路径上。

  1. Environment Variable方式:

可以将Secret的值作为环境变量注入到容器中。在Pod的定义中,使用env字段声明一个或多个环境变量,并使用valueFrom字段从Secret中获取值。以下是一个使用Environment Variable方式的Pod示例:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    env:
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: db-password

在上面的示例中,Pod声明了一个名为DB_PASSWORD的环境变量,并使用my-secret Secret的db-password键从中获取值。容器可以使用$DB_PASSWORD引用该环境变量。

需要注意的是,Secret中的数据是以Base64编码的形式存储的。因此,在使用Secret之前,需要将其进行解码。
在这里插入图片描述
为Secret设置RBAC可以确保只有具有特定权限的用户或实体才能访问该Secret。以下是为Secret设置RBAC的步骤:

  1. 创建一个命名空间(如果您还没有创建):
kubectl create namespace <namespace-name>
  1. 创建一个ServiceAccount:
kubectl create sa <service-account-name> -n <namespace-name>
  1. 创建一个Role或ClusterRole:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: <role-name>
  namespace: <namespace-name>
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "watch", "list"]
  1. 将Role或ClusterRole绑定到ServiceAccount:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: <role-binding-name>
  namespace: <namespace-name>
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: <role-name>
subjects:
- kind: ServiceAccount
  name: <service-account-name>
  namespace: <namespace-name>
  1. 将Secret注入到Pod中:
apiVersion: v1
kind: Pod
metadata:
  name: <pod-name>
spec:
  serviceAccountName: <service-account-name>
  containers:
  - name: <container-name>
    image: <image-name>
    volumeMounts:
    - name: <volume-name>
      mountPath: <mount-path>
  volumes:
  - name: <volume-name>
    secret:
      secretName: <secret-name>

请注意,这些步骤中的名称需要替换为您自己的名称。此外,您可以根据需要更改Role或ClusterRole的规则,以便控制对Secret的访问权限。
在这里插入图片描述
在这里插入图片描述

自测题

在这里插入图片描述
是的,Pod只能使用相同命名空间(namespace)中的ConfigMap。这是因为Kubernetes中的命名空间提供了一种隔离资源的方式,使得不同的应用程序或团队可以在同一集群中共享资源,同时保持彼此的独立性。

当创建ConfigMap时,可以指定其所属的命名空间。如果未指定命名空间,则默认为创建ConfigMap的命名空间。同样,当创建Pod时,如果未指定命名空间,则默认为创建Pod的命名空间。

如果您想让Pod使用其他命名空间中的ConfigMap,可以使用Kubernetes中的跨命名空间引用(cross-namespace referencing)。要实现这一点,可以在Pod的定义中使用ConfigMap的完全限定名称(fully qualified name),例如my-configmap.my-namespace,其中my-configmap是ConfigMap的名称,my-namespace是ConfigMap所属的命名空间。

但是,跨命名空间引用通常不是推荐的做法,因为这会破坏命名空间提供的隔离性。相反,建议将相关的ConfigMap和Pod都放在同一命名空间中,以确保资源的隔离和安全。
在这里插入图片描述

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

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

相关文章

【P2】Jmeter 线程组的并行与串行

一、串行与并行规则 &#xff08;1&#xff09;、测试计划中的执行顺序遵循&#xff1a;setUp 线程组 -> 线程组 -> tearDown 线程组 &#xff08;2&#xff09;、如果将测试计划中的独立运行每个线程组勾选上&#xff0c;则多个线程组串行执行&#xff0c;否则并发执行…

吴恩达 Chatgpt prompt 工程--5.Transforming

探索如何将大型语言模型用于文本转换任务&#xff0c;如语言翻译、拼写和语法检查、音调调整和格式转换。 Setup import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fileopenai.api_key os.getenv(OPE…

2.6 浮点运算方法和浮点运算器

学习目标&#xff1a; 以下是一些具体的学习目标&#xff1a; 理解浮点数的基本概念和表示方法&#xff0c;包括符号位、指数和尾数。学习浮点数的运算规则和舍入规则&#xff0c;包括加、减、乘、除、开方等。了解浮点数的常见问题和误差&#xff0c;例如舍入误差、溢出、下…

Unity一般打包流程

Unity一般打包流程 通常打包流程主要是通过 Building setting来选择需要打包的场景后出包到指定文件夹位置&#xff0c;也可以采用 [MenuItem("MyMenu/Do Something")]中使用static函数来选择打包路径和打包方式——需要将该脚本放置在 Editor文件夹下 [MenuItem(&…

Vue3源码 第六篇-JavaScript AST transform函数

系列文章目录 Vue3源码 第一篇-总览 Vue3源码 第二篇-Reactive API Vue3源码 第三篇-Vue3是如何实现响应性 Vue3源码 第四篇-Vue3 setup Vue3源码 第五篇-Vue3 模版compile AST生成篇 文章目录 系列文章目录前言一、transform 转换二、traverseNode 遍历节点&#xff0c;trave…

B/S结构系统的会话机制(session)

B/S结构系统的会话机制(session) 文章目录 B/S结构系统的会话机制(session)每博一文案1. session 会话机制的概述2. 什么是 session 的会话3. session 的作用4. session 的实现原理解释5. 补充&#xff1a; Cookie禁用了&#xff0c;session还能找到吗 &#xff1f;6. 总结一下…

PCA学习

前置知识 统计 假设数据集 X ∈ R n m \mathbf{X}\in\mathbb{R}^{n\times m} X∈Rnm,其中 n n n表示样本数量&#xff0c; m m m表示特征个数 均值 X ˉ 1 n e T X 1 n ∑ i 1 n X i \bar{\mathbf{X}} \frac{1}{n}\mathbf{e}^T\mathbf{X} \frac{1}{n} \sum_{i1}^{n}\mat…

[架构之路-178]-《软考-系统分析师》- 分区操作系统(Partition Operating System)概述

目录&#xff1a; 本文概述&#xff1a; 1.1 什么是分区操作系统 1.2 分区操作系统出现背景 1. 前后台系统(Foreground/Background System) 2. 实时操作系统(RTOS) 本文概述&#xff1a; 随着嵌入式系统日趋复杂化以及对安全性要求的不断提高&#xff0c;采用空间隔离、时…

java学习之枚举二

目录 一、enum关键字实现枚举 二、注意事项 一、对Season2进行反编译&#xff08;javap&#xff09; ​编辑 三、练习题 第一题 第二题 一、enum关键字实现枚举 package enum_;public class Enumeration03 {public static void main(String[] args) {System.out.println…

el-upload组件的文件回显功能和添加文件到elupload组件

省流&#xff1a; 先获取这个文件对象&#xff0c;使用handleStart方法添加到组件。 this.$refs.uploadRefName.handleStart(rawfile); 在开发的时候遇到表单里需要上传图片的功能。看了下el-upload组件的使用方法&#xff0c;在修改表单的时候&#xff0c;el-upload组件的回显…

flutter学习之旅(二)

如果不知道怎么安装编写可以查看这篇 创建项目 另一个创建方法 flutter create 项目名热部署 vscode 热部署 vscode很简单&#xff1a;可以通过Debug进行调试 使用flutter查看设备 flutter devices如图所见我现在用的是windows所以&#xff0c;我们检测不到ios因为 我们看…

【Fluent】边界类型总结,什么时候用壁面对(wall-shadow pair)、什么时候用interface?

一、fluent自动生成边界类型的规律 Enclosure是包裹在外面的气体&#xff08;流体&#xff09;&#xff0c;mold是模具&#xff08;固体&#xff09;&#xff0c;sheet是模具上的薄板件&#xff08;固体&#xff09;。 1.1 正向思维 不管是流体域还是固体域&#xff0c;每一…

高度可定制可用于商用目的全流程供应链系统(全部源码)

一、开源项目简介 高度可定制零售供应链中台基础系统&#xff0c;集成零售管理, 电子商务, 供应链管理, 财务管理, 车队管理, 仓库管理, 人员管理, 产品管理, 订单管理, 会员管理, 连锁店管理, 加盟管理, 前端React/Ant Design, 后端Java Spring自有开源框架&#xff0c;全面支…

软件测试之黑盒测试的具体方法详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一.基于需求的设计方法二.等价类三.边界值四.判定表4.1 **关系**4.2 如何设计测试用例4.3 实际案例第一步第二步第三步第四步 五.正交排列5.1 什么是正交表5.2 …

shell脚本的判断式

文章目录 shell脚本的判断式利用test命令的测试功能关于某个文件名的【文件类型】判断关于文件的权限检测两个文件之间的比较关于两个整数之间的比较判定字符串的数据多重条件判定例题 利用判断符号[ ]例题 shell脚本的默认变量($0、$1...)例题shift&#xff1a;造成参数变量号…

Linux安装Mysql操作步骤详解

目录 1. 检测当前系统中是否安装了MySql数据库 2. 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux 3. 解压并解包到/usr/local/mysql&#xff08;便于区分&#xff09; 第一步&#xff1a;将包先移动到该目录下 第二步&#xff1a;解压解包 第三步&#xff1a…

LeetCode 105.106. 从前序|后序与中序遍历序列构造二叉树 | C++语言版

LeetCode 105. 从前序与中序遍历序列构造二叉树 | C语言版 LeetCode 105. 从前序与中序遍历序列构造二叉树题目描述解题思路思路一&#xff1a;使用递归代码实现运行结果参考文章&#xff1a; 思路二&#xff1a;减少遍历节点数代码实现运行结果参考文章&#xff1a; LeetCode …

C语言复习笔记1

1.不同数据类型所占字节数。 bit 01二进制的比特位 byte 字节 8 bit 比特 之后的单位都是以1024为倍数 #include<stdio.h> #include<unistd.h>int main() {printf("sizeof(char)%d\n",sizeof(char));printf("sizeof(short)%d\n",sizeof(sh…

JavaScript 笔记

1 简介 JavaScript 诞生于1995年&#xff0c;是由网景公司发明&#xff0c;起初命名为LiveScript&#xff0c;后来由于SUN公司的介入&#xff0c;更名为 JavaScript。1996年微软在其最新的IE3浏览器中引入了自己对JavaScript的实现JScript&#xff0c;于是市面上就存在两个版本…

Mybatis 框架 ( 三 ) Mybatis-Plus

4.Mybatis-plus 官网 : https://www.baomidou.com/ MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上封装了大量常规操作&#xff0c;减少了SQL的编写量。 4.1.Maven依赖 使用时通常通过Springboot框架整合使用 并且使用Lombok框架简化实体类 <…