### K8s认证证书流程:
| 步骤 | 操作 |
| ------ | ------ |
| 1 | 生成根证书(CA) |
| 2 | 生成证书签名请求(CSR) |
| 3 | 用根证书签署CSR,生成证书和私钥 |
| 4 | 配置K8s使用生成的证书和私钥进行认证 |
### 详细操作步骤及代码示例:
#### 步骤1:生成根证书
```bash
# 生成根证书私钥
openssl genrsa -out ca.key 2048
# 生成根证书签名请求
openssl req -new -key ca.key -subj "/CN=Kubernetes-CA" -out ca.csr
# 生成自签名的根证书
openssl x509 -req -in ca.csr -signkey ca.key -CAcreateserial -out ca.crt -days 365
```
#### 步骤2:生成证书签名请求
```bash
# 生成服务端证书私钥
openssl genrsa -out server.key 2048
# 生成服务端证书签名请求
openssl req -new -key server.key -subj "/CN=kube-apiserver" -out server.csr
```
#### 步骤3:用根证书签署CSR
```bash
# 用根证书签署服务端证书签名请求
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
```
#### 步骤4:配置K8s使用生成的证书和私钥进行认证
修改kube-apiserver的启动配置,添加以下参数:
```yaml
--client-ca-file=ca.crt # 用于验证client证书的根证书
--tls-cert-file=server.crt # 用于https连接的服务端证书
--tls-private-key-file=server.key # 用于https连接的服务端私钥
```
通过以上步骤,我们成功地实现了K8s认证证书的配置。生成的证书和私钥可以用于K8s集群中的各种认证方式,如kube-apiserver的客户端认证、节点与kube-apiserver间的认证等。
希望以上步骤和代码示例能帮助你理解和实现K8s认证证书的配置。如有任何疑问或需要进一步帮助,请随时与我联系!