k8s二进制集群之ETCD集群证书生成

继续上一篇文章《负载均衡器高可用部署》下面介绍一下etcd证书生成配置。其中涉及到的ip地址和证书基本信息请替换成你自己的信息。

安装cfssl工具

下载cfssl安装包

bash 复制代码
https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfssl_1.6.4_linux_amd64
bash 复制代码
chmod +x cfssl_1.6.4_linux_amd64
mv cfssl_1.6.4_linux_amd64 /usr/local/bin/cfssl

下载cfssljson安装包

bash 复制代码
https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfssljson_1.6.4_linux_amd64
bash 复制代码
chmod +x cfssljson_1.6.4_linux_amd64
mv cfssljson_1.6.4_linux_amd64 /usr/local/bin/cfssljson

下载cfssl-certinfo安装包

bash 复制代码
https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfssl-certinfo_1.6.4_linux_amd64
bash 复制代码
chmod +x cfssl-certinfo_1.6.4_linux_amd64
mv cfssl-certinfo_1.6.4_linux_amd64 /usr/local/bin/cfssl-certinfo

验证cfssl是否安装

bash 复制代码
cfssl version

配置CA证书请求文件

bash 复制代码
cat > ca-csr.json <<"EOF"
{
 "CN":"kubernetes",
 "key":{
  "algo":"rsa",
  "size":2048
 },
 "names":[
  {
   "C":"CN",
   "ST":"zhejiang",
   "L":"hangzhou",
   "O":"eyinfo",
   "OU":"CN"
  }
 ],
 "ca":{
  "expiry":"876000h"
 }
}
EOF

创建CA证书

bash 复制代码
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
bash 复制代码
#输出内容:
2024/07/17 14:05:27 [INFO] generating a new CA key and certificate from CSR
2024/07/17 14:05:27 [INFO] generate received request
2024/07/17 14:05:27 [INFO] received CSR
2024/07/17 14:05:27 [INFO] generating key: rsa-2048
2024/07/17 14:05:28 [INFO] encoded CSR
2024/07/17 14:05:28 [INFO] signed certificate with serial number 204637901880970253758340254603897378959705254552

创建CA证书策略

server auth 表示client可以对使用该ca由server提供的证书进行验证

client auth 表示server可以使用该ca由client提供的证书进行验证

bash 复制代码
cat > ca-config.json <<"EOF"
{
 "signing": {
  "default": {
   "expiry":"876000h"
  },
  "profiles": {
   "kubernetes": {
    "usages": [
     "signing",
     "key encipherment",
     "server auth",
     "client auth"
    ],
    "expiry": "876000h"
   }
  }
 }
}
EOF

配置etcd证书请求文件

bash 复制代码
cat > etcd-csr.json <<"EOF"
{
 "CN": "etcd",
 "hosts": [
  "127.0.0.1",
  "192.168.3.41",
  "192.168.3.42",
  "192.168.3.43"
 ],
 "key": {
  "algo": "rsa",
  "size": 2048
 },
 "names": [{
  "C":"CN",
  "ST":"zhejiang",
  "L":"hangzhou",
  "O":"eyinfo",
  "OU":"CN"
 }]
}
EOF

生成etcd证书

bash 复制代码
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes etcd-csr.json | cfssljson -bare etcd
bash 复制代码
#输出结果
2024/07/17 14:54:50 [INFO] generate received request
2024/07/17 14:54:50 [INFO] received CSR
2024/07/17 14:54:50 [INFO] generating key: rsa-2048
2024/07/17 14:54:50 [INFO] encoded CSR
2024/07/17 14:54:50 [INFO] signed certificate with serial number 190216768305198849016248800228208888865087276362
相关推荐
qq_141826973219 分钟前
python通过curl访问deepseek的API调用案例
java·数据库·python
可喜~可乐37 分钟前
C# SQLite高级功能示例
数据库·sql·sqlite·c#
cooldream20091 小时前
深入理解主从数据库架构与主从复制
数据库·oracle·数据库架构·系统架构师
Eternity......1 小时前
spark MySQL数据库配置
数据库·mysql·spark
Freedom℡1 小时前
使用scp命令拷贝hadoop100中文件到其他虚拟机中
数据库·hadoop·spark
Qdgr_2 小时前
电厂除灰系统优化:时序数据库如何降低粉尘排放
数据库·时序数据库
慧一居士2 小时前
Memcached 服务搭建和集成使用的详细步骤示例
数据库·架构·nosql·memcached
脑子慢且灵2 小时前
MySQL:关系模型的基本理论
数据库·sql·mysql
码农飞哥2 小时前
互联网大厂Java求职面试实战:Spring Boot与微服务场景深度解析
java·数据库·spring boot·安全·微服务·消息队列·互联网医疗
Ai 编码助手2 小时前
可视化+智能补全:用Database Tool重塑数据库工作流
数据库