《Kubernetes证书篇:基于cfssl工具集一键生成二进制kubernetes集群相关证书(方法一)》

news2024/10/6 12:35:57

一、背景信息

Kubernetes 需要 PKI 证书才能进行基于 TLS 的身份验证。如果你是使用 kubeadm 安装的 Kubernetes, 则会自动生成集群所需的证书。如果你是使用二进制安装的 Kubernetes,则需要自己手动生成集群所需的证书。

1、首先从etcd算起

1、etcd CA证书
2、etcd对外提供服务,要有一套etcd server证书
3、etcd各节点之间进行通信,要有一套etcd peer证书
4、etcd client证书

证书列表,如下所示:。

root@etcd01:~# tree /etc/kubernetes/pki/etcd/
/etc/kubernetes/pki/etcd/
├── ca-key.pem
├── ca.pem
├── healthcheck-client-key.pem
├── healthcheck-client.pem
├── peer-key.pem
├── peer.pem
├── server-key.pem
└── server.pem

2、其次从kubernetes算起

1、kubernetes CA证书
2、Kubelet 的客户端证书,用于 API 服务器身份验证
3、Kubelet 服务端证书, 用于 API 服务器与 Kubelet 的会话
4、API 服务器端点的证书
5、集群管理员的客户端证书,用于 API 服务器身份认证
6、API 服务器的客户端证书,用于和 Kubelet 的会话
7、API 服务器的客户端证书,用于和 etcd 的会话
8、控制器管理器的客户端证书或 kubeconfig,用于和 API 服务器的会话
9、调度器的客户端证书或 kubeconfig,用于和 API 服务器的会话
10、前端代理的客户端及服务端证书

证书列表,如下所示:。

root@k8s-master-65:~# tree /etc/kubernetes
/etc/kubernetes
├── admin.kubeconfig
├── controller-manager.kubeconfig
├── kubelet-bootstrap.kubeconfig
├── kube-proxy.kubeconfig
├── manifests
├── pki
│   ├── apiserver-etcd-client-key.pem
│   ├── apiserver-etcd-client.pem
│   ├── apiserver-key.pem
│   ├── apiserver-kubelet-client-key.pem
│   ├── apiserver-kubelet-client.pem
│   ├── apiserver.pem
│   ├── ca-key.pem
│   ├── ca.pem
│   ├── etcd
│   │   ├── ca-key.pem
│   │   └── ca.pem
│   ├── front-proxy-ca-key.pem
│   ├── front-proxy-ca.pem
│   ├── front-proxy-client-key.pem
│   ├── front-proxy-client.pem
│   ├── sa.key
│   ├── sa.pub
│   └── token.csv
└── scheduler.kubeconfig

二、功能简介

1、支持k8s集群一键生产所有相关证书文件及kubeconfig文件
2、支持单master集群、多master集群

目录信息如下所示:
在这里插入图片描述


三、工具下载

基于cfssl工具集一键生成二进制kubernetes集群相关证书工具


四、操作步骤

1、编辑env.conf文件

# https://kubernetes.io/zh-cn/docs/setup/best-practices/certificates/

# cfssl生成证书过程日志打印级别<0:调试 1:信息 2:警告 3:错误 4:严重>
export loglevel="3"

# etcd集群所有主机ip地址和主机名,<建议多写几个ip,方便后期扩容>,ip地址之间必须使用逗号分隔,根据实际情况修改
export etcd_hostname_list="127.0.0.1,etcd01,etcd02,etcd03,192.168.1.62,192.168.1.63,192.168.1.64"

# cluster name,默认不修改
export cluster_name="kubernetes"

# apiserver的service ip地址(一般是svc网段的第一个ip),虚拟IP
export kube_svc_ip="10.96.0.1"

# 单master节点请填写<主机内网ip地址 + 主机名>,ip地址之间必须使用逗号分隔
# 多master集群请填写<所有maser节点主机ip地址 + 所有master节点主机名 + vip地址或代理ip地址>
export kube_apiserver_hostname_list="192.168.1.65,k8s-master-65"

# API Server地址
# 多master集群请填写代理ip或vip的地址和端口
export kube_api_server="192.168.1.65:6443"

2、执行脚本操作

 ./op.sh build

如下图所示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

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

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

相关文章

百度地图绘制地区的棱柱效果-定位-自定义点-文本标记-信息弹窗

文章目录 百度地图webgl使用自定义地图样式地区镂面棱柱效果绘制点信息以及信息弹窗 百度地图webgl使用 在项目的index.html中引入 <script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak你的AK秘钥"></script…

花式反转字符串

文章目录 简单反转字符串题目详情分析Java完整代码 反转链表进阶问题题目详情分析Java完整代码 左旋转字符串题目详情分析Java完整代码 反转字符串中的单词题目详情分析Java完整代码 本文对常见的反转字符串题目进行串烧整理。 简单反转字符串 题目详情 编写一个函数&#xf…

9. 对象指针与对象数组

一、对象指针 声明形式&#xff1a; 类名 *对象指针名; Clock c(8, 3, 10); Clock *ptr; ptr &c;通过指针访问对象成员&#xff08;一般类的属性都是封装起来的&#xff0c;因此通常是通过指针访问成员函数&#xff09; 对象指针名->成员名 ptr->getHour();相当于(*…

linux0.12-8-7-signal.c

[334页] (-:这一小节很难理解。但我基本都理解了&#xff0c;哈哈。 1、为什么signal不可靠&#xff0c;而sigaction可靠&#xff1b; 2、 为什么系统调用会被打断&#xff1f; 3、 sys_signal&#xff0c;sys_sigaction&#xff0c;函数作用&#xff1f; 4、 do_signal&#x…

【高项】高级项目管理与组织管理(第4版教材第20-23章,管理科学知识)

文章目录 【高项系列】知识复习1、高级项目管理&#xff08;组织级管理&#xff0c;项目集管理&#xff0c;项目组合管理&#xff0c;量化项目管理&#xff0c;项目成熟度模型&#xff09;1.1 组织级项目管理&#xff08;项目组合项目集, 战略方向一致&#xff0c;0-1分&#x…

python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?

❝ Python对并发编程的支持非常丰富&#xff0c;可以使用多线程、多进程、协程等方式进行并发编程。那么&#xff0c;应该如何选择呢&#xff1f; ❞ Python并发编程有哪些方式 Python并发编程有三种方式: 多线程 Thread 多进程 Process 多协程 Coroutine 什么是CPU密集型计算、…

《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!

你有没有想过&#xff0c;如果你能在同一个平台上体验多种不同的 AI 模型&#xff0c;和他们进行有趣、有用、有深度的对话&#xff0c;甚至还能轻松地分享你的对话给其他人&#xff0c;那该有多好&#xff1f;如果你有这样的想法&#xff0c;那么你一定不能错过 Poe 一站式 AI…

winsows10 下 wsl2 使用 rviz 报错 Segmentation fault 段错误 (核心已转储) 的另一可能解决方案

问题 今天在 wsl 里使用 rviz 时突然报错 Segmentation fault 无法使用了, 报错如下 (base) rootXAIR14:~ $ rviz QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to /tmp/runtime-root [ INFO] [1683702959.671174856]: rviz version 1.13.29 [ INFO] [1683702959.67…

SpringMVC中使用form:form表单标签报500错误

在做数据验证的时候出现了一点bug,先看一下网页报错信息 再看一下后台日志信息 11: 12: <body> 13: 14: <form:form modelAttribute"user" action"/user/login" method"post"> 15: <table> 16: <tr> 17:…

Babel 总结

文章目录 Babel 总结概述安装使用一、添加配置文件二、编写源代码三、配置package.json四、编译代码 对比代码 Babel 总结 概述 Babel 是一个 JavaScript 编译器&#xff0c;主要用于在当前和旧的浏览器或环境中&#xff0c;将 ECMAScript 2015 代码转换为 JavaScript 向后兼…

【软考备战·希赛网每日一练】2023年5月10日

文章目录 一、今日成绩二、错题总结第一题第二题第三题 三、知识查缺 题目及解析来源&#xff1a;2023年05月10日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析&#xff1a; proceed v.开始行动&#xff0c;开展&#xff1b;继续做&#xff08;或从事、进行&…

redis之jedis:通过redis的API与Java的集成

什么是jedis&#xff1f; 简而言之&#xff1a;jedis就是通过redis的API对redis的操作&#xff0c;通过Java类对数据库进行操作&#xff0c;注意&#xff1a;使用的命令则是redis数据库的API,jedis是一个java实现的redis客户端连接工具。常用的还有redisson&#xff0c;jedis跟…

力扣 139. 单词拆分

一、题目描述 给你一个字符串 s 和一个字符串列表 word_dict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode"…

【论文解读】Do Prompts Solve NLP Tasks Using Natural Language?

&#x1f365;关键词&#xff1a;文本分类、提示学习 &#x1f365;发表期刊&#xff1a;Arxiv 2022 &#x1f365;原始论文&#xff1a;https://arxiv.org/pdf/2203.00902 最近在做Prompted learning for text classification的工作&#xff0c;Prompted learning的核心在于设…

应急响应之进程,服务,文件排查方法

应急响应之进程,服务,文件排查方法 1.进程Windows进程排查Linux进程排查2.服务Windows服务排查Linux服务排查3.文件痕迹windows系统文件痕迹排查Linux系统文件痕迹排查1.进程 Windows进程排查 对于 Windows 系统中的进程排查,主要是找到恶意进程的 PID、程序路径, 有时还…

Elasticsearch:使用 Docker-Compose 启动单节点 Elastic Stack

首先必须指出的是&#xff0c;在我之前的文章 “Elasticsearch&#xff1a;使用 Docker compose 来一键部署 Elastic Stack 8.x”&#xff0c;我有详述根据官方文档如何创建一个带有三个节点的安全 Elasticsearch 集群。本文基于著名的 Deviatony 存储库和 Elastic 的官方说明。…

KPI考核管理:有效提升企业绩效指标

KPI考核管理是企业中常用的绩效管理方法之一&#xff0c;这种方式涉及到目标设定、绩效评估和奖惩措施等方面。在本文中&#xff0c;我们将探讨KPI考核管理的重要性、KPI管理方法以及如何应对。 一、KPI考核管理的重要性 KPI考核管理是企业实现战略目标的重要手段之一&#x…

[Mysql] MySQL索引与事务

黎明前的黑暗最难度过,但一旦坚持住,便是灿烂朝阳. 文章目录 1. 索引1.1 索引的概念1.2 索引的创建与使用 2. 事务2.1 事务的使用2.2 事务的特性与隔离机制2.2.1 隔离级别 1. 索引 1.1 索引的概念 索引是一种特殊的文件&#xff0c;可以对表中一列或多列创建索引&#xff0c;…

JZ-7Y-204 DC110V 2NO 2NC 静态中间继电器 板前接线 JOSEF约瑟

品牌&#xff1a;JOSEF约瑟名称&#xff1a;静态中间继电器型号&#xff1a;JZ-7Y-204额定电压&#xff1a;6V~220VAC/DC,380VAC触点容量&#xff1a;10A/250V10A/220VDC功率消耗&#xff1a;≤6W 1 用途 JZ-7中间继电器 板前接线用于各种保护和自动控制装置中&#xff0c;以…

PB文件定义为int64,HTTP返回为string的问题

最近开发遇见一个问题&#xff0c;pb文件中定义的一个字段类型为int64&#xff0c;而客户端拿到却是string。很奇怪&#xff0c;经过排查原来是 proto3中json映射问题 原文链接&#xff1a;https://protobuf.dev/programming-guides/proto3/#json JSON映射 Proto3 支持 JSON …