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
相关推荐
Small-Young26 分钟前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·spring boot·mysql·postgresql·乐观锁·并发控制
浮生若城28 分钟前
MySQL 数据库基础
数据库·mysql
香蕉大香蕉(06敬畏市场)41 分钟前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
瀚高PG实验室1 小时前
瀚高数据库运行日志(错误日志)查看与分析方法
数据库·postgresql·瀚高数据库
snow@li1 小时前
PostgreSQL:PostgreSQL(PG)全景深度梳理
数据库·postgresql
java_nnnn1 小时前
Spring IoC & DI 从入门到理解:控制反转、依赖注入与 Bean 管理详解
数据库·sql·spring
瀚高PG实验室2 小时前
HGHAC集群版本升级
数据库·postgresql·瀚高数据库
fb_123452 小时前
K8s StatefulSet五大有状态集群实战_Nginx_Etcd_Redis_Cassandra_MySQL
nginx·kubernetes·etcd
品牌常新2 小时前
室外巡检机器人推荐:园区与厂区怎么选
数据库·人工智能·机器人
snow@li2 小时前
redis:RedisDesktopManager(RDM/RESP.app)Redis 数据可视化全景深度梳理
数据库·redis·缓存