diff --git a/docs/01-创建CA证书和环境配置.md b/docs/01-创建CA证书和环境配置.md index f53ed43..fa6ab0d 100644 --- a/docs/01-创建CA证书和环境配置.md +++ b/docs/01-创建CA证书和环境配置.md @@ -11,7 +11,14 @@ roles/ca ├── ca-config.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) 文件,对照看以下讲解内容。 @@ -36,7 +43,7 @@ kubernetes 系统各组件需要使用 TLS 证书对通信进行加密,使用 } } ``` -+ `ca-config.json`:可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个 profile; ++ `ca-config.json`:可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;这里为了方便使用 `kubernetes` 这个profile 签发三种不同类型证书 + `signing`:表示该证书可用于签名其它证书;生成的 ca.pem 证书中 `CA=TRUE`; + `server auth`:表示 client 可以用该 CA 对 server 提供的证书进行验证; + `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的。 -keepalived观其名可知,保持存活,它是基于VRRP协议保证所谓的高可用或热备的,这里用来防止master节点单点故障,具体说是防止haproxy的单点故障。 +keepalived观其名可知,保持存活,它是基于VRRP协议保证所谓的高可用或热备的,这里用来预防haproxy的单点故障。 keepalived与haproxy配合,实现master的高可用过程如下: