更新集群使用证书说明

pull/275/head
jmgao 2017-12-04 16:36:08 +08:00
parent af17d932d9
commit 8342c325f9
1 changed files with 10 additions and 3 deletions

View File

@ -11,7 +11,14 @@ roles/ca
├── ca-config.json.j2 ├── ca-config.json.j2
└── ca-csr.json.j2 └── ca-csr.json.j2
``` ```
kubernetes 系统各组件需要使用 TLS 证书对通信进行加密,使用 CloudFlare 的 PKI 工具集生成自签名的CA证书用来签名后续创建的其它 TLS 证书。 kubernetes 系统各组件需要使用 TLS 证书对通信进行加密,使用 CloudFlare 的 PKI 工具集生成自签名的CA证书用来签名后续创建的其它 TLS 证书。[参考阅读](https://coreos.com/os/docs/latest/generate-self-signed-certificates.html)
根据认证对象可以将证书分成三类:服务器证书,客户端证书,对等证书 `peer cert`(表示既是`server cert`又是`client cert`)在kubernetes 集群中需要的证书种类如下:
+ `etcd` 节点需要标识自己监听服务的server cert也需要client cert与`etcd`集群其他节点交互当然可以分别指定2个证书这里为简化使用一个peer 证书
+ `kube-apiserver` 需要标识apiserver服务的server cert也需要client cert 从而操作`etcd`集群这里为简化使用一个peer 证书
+ `kubectl` `calico` `kube-proxy` 只需要 client cert因此证书请求中 hosts 字段可以为空
+ `kubelet` 证书比较特殊不是手动生成它由node节点`TLS BootStrap` 向`apiserver`请求由master节点的`controller-manager` 自动签发包含一个client cert 和一个server cert
请在另外窗口打开[roles/ca/tasks/main.yml](../roles/ca/tasks/main.yml) 文件,对照看以下讲解内容。 请在另外窗口打开[roles/ca/tasks/main.yml](../roles/ca/tasks/main.yml) 文件,对照看以下讲解内容。
@ -36,7 +43,7 @@ kubernetes 系统各组件需要使用 TLS 证书对通信进行加密,使用
} }
} }
``` ```
+ `ca-config.json`:可以定义多个 profiles分别指定不同的过期时间、使用场景等参数后续在签名证书时使用某个 profile + `ca-config.json`:可以定义多个 profiles分别指定不同的过期时间、使用场景等参数这里为了方便使用 `kubernetes` 这个profile 签发三种不同类型证书
+ `signing`:表示该证书可用于签名其它证书;生成的 ca.pem 证书中 `CA=TRUE` + `signing`:表示该证书可用于签名其它证书;生成的 ca.pem 证书中 `CA=TRUE`
+ `server auth`:表示 client 可以用该 CA 对 server 提供的证书进行验证; + `server auth`:表示 client 可以用该 CA 对 server 提供的证书进行验证;
+ `client auth`:表示 server 可以用该 CA 对 client 提供的证书进行验证; + `client auth`:表示 server 可以用该 CA 对 client 提供的证书进行验证;
@ -95,7 +102,7 @@ roles/lb
Haproxy支持四层和七层负载稳定性好根据官方文档HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express)这个作为软件级负载均衡也是比较惊人的另外openstack高可用也有用haproxy的。 Haproxy支持四层和七层负载稳定性好根据官方文档HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express)这个作为软件级负载均衡也是比较惊人的另外openstack高可用也有用haproxy的。
keepalived观其名可知保持存活它是基于VRRP协议保证所谓的高可用或热备的这里用来防止master节点单点故障具体说是防止haproxy的单点故障。 keepalived观其名可知保持存活它是基于VRRP协议保证所谓的高可用或热备的这里用来防haproxy的单点故障。
keepalived与haproxy配合实现master的高可用过程如下 keepalived与haproxy配合实现master的高可用过程如下