分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

kubernetes 集群部署 自签 TLS 证书

发布时间:2023-09-06 02:35责任编辑:郭大石关键词:kubernetes

kubernetes 集群之间的通信需要加密,可以使用自签 TLS 证书。具体证书如下:

组件使用的证书
etcdca.pem,  server.pem,  server-key.pem
kube-apiserverca.pem,  server.pem,  server-key.pem
kubeletca.pem,  ca-key.pem
kube-proxyca.pem,  kube-proxy.pem,  kube-proxy-key.pem
kubectlca.pem,  admin.pem,  admin-key.pem

  1. 下载3个工具

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

2. 增加执行权限

chmod +x cf*

3.  放到 /usr/local/bin 目录,并重命名。

cp cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo
cp cfssljson_linux-amd64 /usr/local/bin/cfssljson
cp cfssl_linux-amd64 /usr/local/bin/cfssl

4. 用下面的命令,可以导出默认配置

cfssl print-defaults config > config.jsoncfssl print-defaults csr > csr.json

5. 创建一个文件 certification.sh,用于生成 kubernetes 中用到的自签证书。内容如下:

#!/bin/bashcat > ca-config.json <<EOF{ ?"signing": { ???"default":{ ?????"expiry": "87600h" ???}, ???"profiles": { ?????"kubernetes": { ???????"expiry": "87600h", ???????"usages": [ ??????????"signing", ??????????"key encipherment", ??????????"server auth", ??????????"client auth" ????????] ?????} ???} ?}}EOFcat > ca-csr.json <<EOF{ ?"CN": "kubernetes", ?"key": { ???"algo": "rsa", ???"size": 2048 ?}, ?"names": [ ???{ ?????"C": "CN", ?????"L": "Beijing", ?????"ST": "Beijing", ?????"O": "k8s", ?????"OU": "System" ???} ?]}EOFcfssl gencert -initca ca-csr.json | cfssljson -bare ca -#-------------------cat > server-csr.json <<EOF{ ?"CN": "kubernetes", ?"hosts": [ ???"127.0.0.1", ???"192.168.137.81", ???"192.168.137.82", ???"192.168.137.83","kubernetes", ???"kubernetes.default", ???"kubernetes.default.svc", ???"kubernetes.default.svc.cluster", ???"kubernetes.default.svc.cluster.local" ?], ?"key": { ???"algo": "rsa", ???"size": 2048 ?}, ?"names": [ ???{ ?????"C": "CN", ?????"L": "Beijing", ?????"ST": "Beijing", ?????"O": "k8s", ?????"OU": "System" ???} ?]}EOFcfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | cfssljson -bare server#----------------cat > admin-csr.json <<EOF{ ?"CN": "admin", ?"hosts": [], ?"key": { ???"algo": "rsa", ???"size": 2048 ?}, ?"names": [ ???{ ?????"C": "CN", ?????"L": "Beijing", ?????"ST": "Beijing", ?????"O": "System:masters", ?????"OU": "System" ???} ?]}EOFcfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin#---------cat > kube-proxy-csr.json <<EOF{ ?"CN": "system:kube-proxy", ?"hosts": [], ?"key": { ???"algo": "rsa", ???"size": 2048 ?}, ?"names": [ ???{ ?????"C": "CN", ?????"L": "Beijing", ?????"ST": "Beijing", ?????"O": "k8s", ?????"OU": "System" ???} ?]}EOFcfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kube-proxy-csr.json | cfssljson -bare kube-proxy

6. 给 certification.sh 增加执行权限后,运行这个脚本,会生成很多文件,其中 *-key.pem 文件是私钥文件,其它以 pem 结尾的文件是公钥文件。

kubernetes 集群部署 自签 TLS 证书

原文地址:https://www.cnblogs.com/langfanyun/p/10499462.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved