k8s-证书相关json集合
# etcd-ca-csr.json
```shell
cat > etcd-ca-csr.json <<"EOF"
{
"CN": "etcd",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "etcd",
"OU": "Etcd Security"
}
],
"ca": {
"expiry": "87600h"
}
}
EOF
```
# ca-config.json
```shell
cat > ca-config.json <<"EOF"
{
"signing": {
"default": {
"expiry": "876000h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "876000h"
}
}
}
}
EOF
```
> expiry:过期时间
server auth 表示client可以对使用该ca对server提供的证书进行验证
client auth 表示server可以使用该ca对client提供的证书进行验证
# etcd-csr.json
```shell
cat > etcd-csr.json <<"EOF"
{
"CN": "etcd",
"hosts": [
"127.0.0.1",
"192.168.10.151",
"192.168.10.152",
"192.168.10.153",
"192.168.10.154"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "kubemsb",
"OU": "CN"
}]
}
EOF
```
> CN:名字
hosts:可信IP,将相关的IP填入,它是包含所有etcd节点的IP
key:密钥相关,algo:加密算法、size:长度
name证书的属性信息,国家、城市
# ca-csr.json
```shell
cat > ca-csr.json <<"EOF"
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "kubemsb",
"OU": "CN"
}
],
"ca": {
"expiry": "87600h"
}
}
EOF
```
# apiserver-csr.json
```shell
cat > apiserver-csr.json << "EOF"
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"192.168.10.151",
"192.168.10.152",
"192.168.10.155",
"192.168.10.156",
"192.168.10.157",
"192.168.10.159",
"192.168.10.160",
"192.168.10.150",
"10.10.0.1",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "kubemsb",
"OU": "CN"
}
]
}
EOF
```
> 说明:
如果 hosts 字段不为空则需要指定授权使用该证书的 IP(含VIP,即包含虚拟IP) 或域名列表。由于该证书被集群使用,需要将节点的IP都填上,为了方便后期扩容可以多写几个预留的IP。
同时还需要填写 service 网络的首个IP(一般是 kube-apiserver 指定的 service-cluster-ip-range 网段的第一个IP,如 10.10.0.1)。
Node 的IP可不写
# front-proxy-ca-csr.json
```shell
cat > front-proxy-ca-csr.json << "EOF"
{
"CN": "system:kube-proxy",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "kubemsb",
"OU": "CN"
}
]
}
EOF
```
# controller-manager-csr.json
```
cat > controller-manager-csr.json << "EOF"
{
"CN": "system:kube-controller-manager",
"key": {
"algo": "rsa",
"size": 2048
},
"hosts": [
"127.0.0.1",
"192.168.10.151",
"192.168.10.152"
],
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "system:kube-controller-manager",
"OU": "system"
}
]
}
EOF
```
> 说明:
hosts 列表包含所有 kube-controller-manager 节点 IP;
CN 为 system:kube-controller-manager;
O 为 system:kube-controller-manager,kubernetes 内置的 ClusterRoleBindings system:kube-controller-manager 赋予 kube-controller-manager 工作所需的权限
# admin-csr.json
```
cat > admin-csr.json <<"EOF"
{
"CN": "admin",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "system:masters",
"OU": "kubernetes-manual"
}
]
}
EOF
```
> admin -> system:masters
clusterrole:admin-xxx --> clusterrolebinding --> system:masters# 有集群操作权限的,clusterrolebinding会创建一个集群角色的绑定,将clusterrole:admin-xxx绑定到system:masters组上,system:masters的用户都有操作集群的权限
# scheduler-csr.json
```
cat > scheduler-csr.json <<"EOF"
{
"CN": "system:kube-scheduler",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "system:kube-scheduler",
"OU": "kubernetes-manual"
}
]
}
EOF
```
参考JSON到此结束,返回[k8s-证书](doc:CAK4XKEa)