2.3.1 Master高可用部署架构
在Kubernetes系统中,Master节点扮演着总控中心的角色,通过不间断地与各个工作节点(Node)通信来维护整个集群的健康工作状态,集群中各资源对象的状态则被保存在etcd数据库中。如果Master不能正常工作,各Node就会处于不可管理状态,用户就无法管理在各Node上运行的Pod,其重要性不言而喻。同时,如果Master以不安全方式提供服务(例如通过HTTP的8080端口号),则任何能够访问Master的客户端都可以通过API操作集群中的数据,可能导致对数据的非法访问或篡改。
在正式环境中应确保Master的高可用,并启用安全访问机制,至少包括以下几方面。
◎ Master的kube-apiserver、kube-controller-mansger和kube-scheduler服务至少以3个节点的多实例方式部署。
◎ Master启用基于CA认证的HTTPS安全机制。
◎ etcd至少以3个节点的集群模式部署。
◎ etcd集群启用基于CA认证的HTTPS安全机制。
◎ Master启用RBAC授权模式(详见6.2节的说明)。
Master的高可用部署架构如图2.1所示。
图2.1 Master的高可用部署架构
在Master的3个节点之前,应通过一个负载均衡器提供对客户端的唯一访问入口地址,负载均衡器可以选择硬件或者软件进行搭建。软件负载均衡器可以选择的方案较多,本文以HAProxy搭配Keepalived为例进行说明。主流硬件负载均衡器有F5、A10等,需要额外采购,其负载均衡配置规则与软件负载均衡器的配置类似,本文不再赘述。
本例中3台主机的IP地址分别为192.168.18.3、192.168.18.4、192.168.18.5,负载均衡器使用的VIP为192.168.18.100。
下面分别对etcd、负载均衡器、Master、Node等组件如何进行高可用部署、关键配置、CA证书配置等进行详细说明。