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)