Kubernetes CSR 颁发的 MinIO Operator 证书

在当前的 Kubernetes 环境中,创建、管理和自动化 TLS 证书的标准方法是使用 kind: CertificateSigningRequest (CSR)资源。此原生 Kubernetes 资源提供了一种强大而高效的方式来处理集群中证书的整个生命周期。

通过利用 CSR 资源,您可以简化和自动化证书管理的各个方面,包括:

1 . **创建证书:**CSR 允许您轻松地为服务生成新证书,从而确保集群中组件之间的安全通信。

2 . **续订证书:**借助 CSR,您可以在证书过期之前自动续订证书,从而消除手动干预并降低服务中断的风险。

3 . **吊销证书:**如果由于安全问题或其他原因需要吊销证书,CSR 提供了一种简单的机制来使证书失效并防止其进一步使用。

我们将重点利用 Kubernetes CSR 资源专门用于创建可供 MinIO 使用的证书。在本指南结束时,您将清楚地了解如何使用 CSR 生成证书、将其安全地存储在 Kubernetes Secret 中,以及配置 MinIO 以访问和使用生成的证书。

生成的私钥和公有证书将安全地存储在名为 operator-tls 的 Kubernetes Secret 中。操作员可以访问此密钥,允许他们利用证书进行安全通信。

教程

首先,我们将使用带有 P-256 曲线的椭圆曲线数字签名算法 (ECDSA) 生成一个自签名私钥。ECDSA 是一种广泛使用且安全的算法,用于生成密钥对。

步骤 1:生成自签名私钥

首先,我们将使用带有 P-256 曲线的“椭圆曲线数字签名算法”(ECDSA) 生成一个自签名私钥。ECDSA 是一种广泛使用且安全的算法,用于生成密钥对。

openssl ecparam -name prime256v1 -genkey -noout -out private.key

或者,您可以使用其他算法,即使用 RSA。

openssl genrsa -out private.key 2048

步骤 2:生成证书签名请求 (CSR)

生成私钥后,我们现在可以创建证书签名请求 (CSR)。CSR 包含有关请求证书的实体的信息,并使用私钥进行签名。

openssl req -new -key private.key -out curve.csr \-subj "/O=system:nodes/CN=system:node:operator.minio-operator.svc" \-addext "subjectAltName = DNS:operator,DNS:operator.minio-operator.svc,DNS:operator.minio-operator.svc.cluster.local"

第 3 步:以 Base64 对 CSR 进行编码

要将 CSR 包含在 Kubernetes 资源中,我们需要将其转换为 base64 编码的字符串。

base64 curve.csr

步骤 4:创建 Kubernetes CertificateSigningRequest

创建一个包含以下内容的文件 csr-manual.yaml ,并替换 <copy base64 encoded curve.csr here> 为上一步中的 base64 编码的 CSR。

apiVersion: certificates.k8s.io/v1kind: CertificateSigningRequestmetadata:name: operator-minio-operator-csrspec:request: <copy base64 encoded curve.csr here>signerName: kubernetes.io/kubelet-servingexpirationSeconds: 604800 #extend here for 1 year longgroups:- system:serviceaccounts- system:serviceaccounts:minio-operator- system:authenticated- system:nodesusages:- "digital signature"- "key encipherment"- "server auth"username: system:serviceaccount:minio-operator:minio-operator

注意:关于 EKS 1.21 和 1.22:在 EKS 1.22+ 上不允许使用 signerName kubernetes.io/legacy-unknown ,您应该像上面的示例一样设置 signerName,或者beta.eks.amazonaws.com/app-serving有关 EKS 上 CSR 签名的更多详细信息,请参阅证书签名文档。在早期版本的 EKS(1.21 及更低版本)上,您可以使用证书 CSR API v1beta1 并发送 signerName kubernetes.io/legacy-unknown。

注意:在 Kubernetes 1.21 及更低版本上:该字段 expirationSeconds 是在 Kubernetes 1.22 中引入的,在此之前,该字段被静默删除且不被执行

使用在上一步中创建 csr-manual.yaml 的文件,创建 Kubernetes CSR 资源。

kubectl apply -f csr-manual.yaml

第 6 步:批准 CSR

手动批准 CSR。这是一次性步骤。

kubectl certificate approve operator-minio-operator-csr

步骤 7:检索签名证书

.status.certificate Kubernetes csr 资源中的密钥获取公共证书。

kubectl get csr operator-minio-operator-csr -o jsonpath="{.status.certificate}" | base64 --decode > public.crt

步骤 8:验证证书

让我们验证我们上面获取的证书。

从 CSR 资源中提取证书,它将位于 base64 中。解码 base64 并使用 OpenSSL 读取它,如下所示。

kubectl get csr operator-minio-operator-csr -ojsonpath="{.status.certificate}" | base64 --decode | openssl x509 -noout -text

将出现与此类似的证书说明:

Certificate:Data:Version: 3 (0x2)Serial Number:19:35:68:7b:bc:16:51:b1:95:14:15:45:13:27:e2:b7Signature Algorithm: sha256WithRSAEncryptionIssuer: CN=kubernetesValidityNot Before: Mar 15 22:25:10 2023 GMTNot After : Mar 14 22:25:10 2024 GMTSubject: O=system:nodes, CN=system:node:operator.minio-operator.svcSubject Public Key Info:Public Key Algorithm: id-ecPublicKeyPublic-Key: (256 bit)pub:04:5b:53:08:98:54:8f:45:c9:e9:15:49:73:cc:50:fe:32:ec:33:de:f8:79:6e:87:a9:7d:01:3e:c3:b0:20:21:69:46:33:a5:44:92:18:90:79:4f:b4:e5:d9:a7:94:5f:b1:4b:73:57:e3:3a:cc:d8:be:24:94:3f:32:2d:d3:f4:38ASN1 OID: prime256v1NIST CURVE: P-256X509v3 extensions:X509v3 Key Usage: criticalDigital Signature, Key EnciphermentX509v3 Extended Key Usage:TLS Web Server AuthenticationX509v3 Basic Constraints: criticalCA:FALSEX509v3 Authority Key Identifier:keyid:73:58:4C:D0:20:80:2A:C4:7A:5E:EE:26:C0:28:50:CA:F2:05:48:73X509v3 Subject Alternative Name:DNS:operator, DNS:operator.minio-operator.svc, DNS:operator.minio-operator.svc.cluster.localSignature Algorithm: sha256WithRSAEncryption64:1c:de:99:cd:54:e8:eb:08:fd:89:c5:6a:94:a5:29:dd:a9:...

输出将显示证书详细信息,包括使用者、颁发者、有效期和扩展名。

步骤 9:创建 Kubernetes 密钥

最后,这是橡胶与道路相遇的地方。我们将创建一个 Kubernetes secret 供 Operator 使用

kubectl create secret generic --from-file=./private.key --from-file=./public.crt operator-tls -n minio-operator

下次操作员启动时,它不会尝试创建证书或机密,而是使用我们存储在密钥 minio-operator 中的证书或机密。

使用 MinIO 和 Kubernetes 简化证书管理

我们不可能用另一个对象存储来编写这个简短的教程。其他类似的对象存储设置起来非常复杂且耗时,但我们只是将 MinIO 运算符设置为使用来自密钥的证书,只需使用内置的 Kubernetes 资源即可获得太多提升。

虽然其他对象存储解决方案通常需要复杂的配置和耗时的设置过程,但 MinIO 的设计和与 Kubernetes 的紧密集成使开发人员和管理员能够专注于他们的核心业务逻辑,因为他们知道他们的对象存储是安全的并且经过了适当的身份验证。MinIO 证书管理流程的简单性和效率使其在竞争中脱颖而出,使其成为寻求强大而可靠的对象存储解决方案的企业的首选。

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

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

相关文章

Thinkphp校园新闻发布系统源码 毕业设计项目实例

Thinkphp校园新闻发布系统源码 毕业设计项目实例 校园新闻发布系统模块&#xff1a; 用户模块&#xff1a;注册&#xff0c;登陆&#xff0c;查看个人信息&#xff0c;修改个人信息&#xff0c;站内搜索&#xff0c;新闻浏览等功能&#xff0c; 后台管理员模块&#xff1a;会员…

MySQL日志——redolog

redo log&#xff08;重做日志&#xff09; 为什么需要redo log&#xff1f; 在mysql提交一个事务后&#xff0c;这个事务所作的数据修改并不会直接保存到磁盘文件中&#xff0c;而是先保存在buffer pool缓冲区中&#xff0c;在需要读取数据时&#xff0c;先从缓冲区中找&…

破局消费供应链,企业费用管理如何应对变与不变?

供应链管理在过去一直被局限在生产与产品供应领域&#xff0c;更多被理解为生产及流通过程中&#xff0c;涉及将产品或服务提供给最终用户活动的上游与下游企业所形成的网链结构&#xff0c;即将产品从商家送到消费者手中整个链条。因为直接对企业利润产生重大影响&#xff0c;…

鸿蒙 Text文本过长超出Row的范围问题

代码如下: 可以发现随着文本内容的增加, 第二个组件test2明显被挤出了屏幕外, 感觉像是Row自己对内容的约束没做好一样, 目前没看到官方的推荐解决方法, 机缘巧合下找到了个这种的办法, 给内容会增加的组件设置layoutWeight(), 借助layoutWeight的特性来解决该问题, 改动后代码…

MaxKB-无需代码,30分钟创建基于大语言模型的本地知识库问答系统

简介 MaxKB 是一个基于大语言模型 (LLM) 的智能知识库问答系统。它能够帮助企业高效地管理知识&#xff0c;并提供智能问答功能。想象一下&#xff0c;你有一个虚拟助手&#xff0c;可以回答各种关于公司内部知识的问题&#xff0c;无论是政策、流程&#xff0c;还是技术文档&a…

热门:最新植物大战僵尸杂交版张大仙主播同款

软件介绍: 植物大战僵尸杂交版是由B站UP主“潜艇伟伟迷”制作的一款结合了《植物大战僵尸》原有元素与创新玩法的游戏。这款游戏以其独特的“杂交”植物概念在B站上迅速走红&#xff0c;吸引了大量玩家的关注和讨论。在杂交版中&#xff0c;每个植物都有专属的特点以及玩法&am…

苍穹外卖环境搭建

一、前端环境搭建 ①整体结构 ②前端工程基于nginx运行 启动nginx:双击 nginx.exe 即可启动 nginx 服务&#xff0c;访问端口号为 80 进入浏览器地址输入locallhost回车 二、后端环境搭建 后端初始工程基于maven进行项目构建&#xff0c;并且进行分模块开发 (1) idea打开初始…

WordPress——Argon主题美化

文章目录 Argon主题美化插件类类别标签页面更新管理器文章头图URL查询监视器WordPress提供Markdown语法评论区头像设置发信设置隐藏登陆备份设置缓存插件 主题文件编辑器页脚显示在线人数备案信息(包含备案信息网站运行时间)banner下方小箭头滚动效果站点功能概览下方Links功能…

分布式并行策略

1.数据并行&#xff08;DP&#xff09; 将小批量分为n块&#xff0c;每个GPU拿到完整参数计算一块数据的梯度。&#xff08;通常性能会更好&#xff09; 假如一个批量有128个样本&#xff0c;然后有2个GPU&#xff0c;那么每个GPU可以拿到64个样本。&#xff08;每个GPU计算完…

【python】OpenCV—Segmentation

文章目录 cv2.kmeans牛刀小试 cv2.kmeans cv2.kmeans 是 OpenCV 库中用于执行 K-Means 聚类算法的函数。以下是根据参考文章整理的 cv2.kmeans 函数的中文文档&#xff1a; 一、函数功能 cv2.kmeans 用于执行 K-Means 聚类算法&#xff0c;将一组数据点划分到 K 个簇中&…

Altair 助力优化摩托车空气动力学性能,实现最佳的整流罩设计

案例简介 整流罩是绝大多数摩托车的重要组成部分&#xff0c;旨在提高车辆的空气动力学性能和稳定性。Altair 与 KTM 公司员工组成的项目团队&#xff0c;针对摩托车整流罩空气动力学方面的学生项目&#xff0c;展开了密切合作。 项目任务主要是对摩托车整流罩设计进行比较&…

山体滑坡监测利器:传感器与智能监测平台的应用

山体滑坡&#xff0c;这一地质灾害的代名词&#xff0c;指的是山坡上的土体或岩体在重力作用下&#xff0c;因自然或人为因素而向下滑动的现象。滑坡具有突发性、隐蔽性、危害性和破坏性等特征&#xff0c;因此&#xff0c;对于山体滑坡的监测工作显得尤为重要。本文将探讨山体…

豆包高质量声音有望复现-Seed-TTS

我们介绍了 Seed-TTS&#xff0c;这是一个大规模自回归文本转语音 &#xff08;TTS&#xff09; 模型系列&#xff0c;能够生成与人类语音几乎没有区别的语音。Seed-TTS 作为语音生成的基础模型&#xff0c;在语音上下文学习方面表现出色&#xff0c;在说话人的相似性和自然性方…

Vitis HLS 学习笔记--Stream Chain Matrix Multiplication

目录 1. 简介 2. 示例解析 2.1 示例功能说明 2.2 函数说明 2.2.1 mmult 函数 2.2.2 mm2s 函数 2.2.3 s2mm 函数 2.2.4 总示意图 3. 总结 1. 简介 这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了 ap_ctrl_chain&#xff0c;以展示如何重叠多个内核调用队…

2024年最好用的精简系统推荐!旧电脑福音!

精简版电脑系统经过精心优化&#xff0c;去除了冗余功能&#xff0c;保留了核心功能&#xff0c;让用户的操作更加便捷高效&#xff0c;同时也具备强大的兼容性和稳定性&#xff0c;整体操作体验感很好。但是&#xff0c;许多新手用户不知道在哪里才可以找到好用的精简版系统&a…

Mojo崛起:AI-first 的编程语言能否成为新流行?

眨眼之间&#xff0c;你可能会错过又一种编程语言的发明。 有个笑话说&#xff0c;程序员花费20%的时间编写代码&#xff0c;80%的时间决定使用什么语言。 事实上&#xff0c;编程语言如此之多&#xff0c;以至于我们不确定实际有多少种。据估计&#xff0c;至少有700种编程语…

【Android 11】AOSP Settings添加屏幕旋转按钮

前言 这里是客户要求添加按钮以实现屏幕旋转。屏幕旋转使用adb的命令很容易实现&#xff1a; #屏幕翻转 adb shell settings put system user_rotation 1 #屏幕正常模式 adb shell settings put system user_rotation 0这里的值可以是0&#xff0c;1&#xff0c;2&#xff0c…

中国天辰×蓝卓丨共创行业级工业操作系统,加速培育新质生产力!

6月17日&#xff0c;中国天辰工程有限公司&#xff08;以下简称“中国天辰”&#xff09;党委委员、总经理梁军湘一行莅临蓝卓&#xff0c;双方就工业互联网平台合作进行座谈交流。蓝卓总经理谭彰、副总经理蓝照斌、总经理助理俞益标&#xff0c;以及中控技术副总裁吴才宝、大客…

Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化

主要看点 行业&#xff1a; 家电行业 挑战&#xff1a; 企业面临的挑战是如何利用已收集的大量数据&#xff0c;深入了解消费者在产品使用过程中对某些保鲜程序的影响。 Altair 解决方案&#xff1a; Altair采用了Altair RapidMiner人工智能平台来解决问题&#xff0c;特别是…

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中&#xff0c;消息队列&#xff08;Message Queue, MQ&#xff09;已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件&#xff0c;因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务…