4 集群部署(Day 1)

4.1 创建集群

4.1.1 基本信息

项目管理员账号登录 KubeOperator 系统后,点击【集群】页的【添加】按钮进行集群的创建。在【基本信息】里首先选择项目名称(该项目管理员可以是多个项目的管理员),然后输入集群的名称,选择该集群所要部署的 Kubernetes 版本,目前支持 K8s 最新版本为 1.16.7。

cluster-1

注:集群名称不要和主机名称、存储节点名称相同。

4.1.2 部署模型

选择 Kubernetes 集群的部署模型。KubeOperator 当前支持一主多节点和多主多节点。选择部署模型后,KubeOperator 将展示集群中各个角色节点的详细配置要求,目前支持操作系统包括 CentOS 7.4/7.5/7.6/7.7 和 Redhat 7.4/7.5/7.6/7.7.

cluster-2

KubeOperator 支持 MultiAZ(多故障域),多主多节点模式适 d合在 MultiAZ 下部署,实现双活环境下的高可用。

4.1.3 配置节点

【添加主机】环节,把集群所需的主机添加到了 KubeOperator 中。在【配置节点】环节,可以根据需求选择 worker 节点数量,这里以一个 master 和三个 worker 节点为例。

cluster-3

4.1.4 选择节点

在【选择节点】环节,则可以根据不同的节点角色,在主机下拉列表中可列出该项目中所有被授权的主机。

cluster-4

4.1.5 配置网络

【配置网络】环节,选择集群的 kube-proxy 运行模式、 ingress 方式以及网络插件,当前 kube-proxy 运行模式支持 iptables 和 ipvs 两种;ingress 支持 trafik 和 nginx;网络插件支持 Flannel 和 Calico,这里我们分别选择 iptables、trafik、Flannel 三种方式。

如果集群节点全部都在同一个二层网络下,请选择”host-gw”。如果不是,则选择”vxlan”。”host-gw” 性能优于 “vxlan”。选项 Service CIDR 和 POD CIDR 保证不和已有主机节点 IP 段冲突即可使用。

cluster-5

4.1.6 配置存储

【添加存储】环节,支持多种存储方案,包括 NFS 存储,新增加 Rook Ceph 存储方案,还有本地存储卷方式存储。

如果选择使用 Rook Ceph 存储时,需要设置存储介质和存储路径,存储介质使用推荐测试环境使用的配置,Path 使用推荐路径 /data/ceph,当然可以根据实际环境修改配置。 如何登录 Ceph 控制台查看存储监控信息,请参考第 5.1.2.1 节详细内容。

cluster-6

如果选择 NFS 存储, NFS 主机的节点已经在 1.3 节添加到【存储】页面,选择外部持久化存储并授权给项目后,在下来菜单中会列出该节点。

cluster-7

本次创建的集群选择 NFS 存储方案,继续后续步骤。

4.1.7 配置检测

完成上述 6 个步骤后,KubeOperator 会对当前集群所选择的部署节点进行配置检测,包含 CPU、内存和操作系统的检测,检查是否满足节点最低配置要求。

cluster-8

4.1.8 其他设置

在【其他设置】中,我们增加了建议的可运行 POD 数量、Docker 数据目录、Docker0 默认网关设置、Prometheus 监控数据保留时长设置信息,用户可根据实际环境修改以上参数。

cluster-9

4.1.9 集群配置概览

所有步骤完成后,会有一个集群配置概览页对之前步骤所设参数进行汇总,用户可在此页进行集群配置的最后检查。

cluster-10

4.2 部署集群

在集群列表中点击要进行部署的集群名称,默认展示的是该集群的【概览】信息。【概览】页中展示了 Kubernetes 集群的诸多详情,包括集群容量信息、统计信息、集群状态、Worker 状态,集群描述信息等。点击【概览】页上方的【安装】按钮进行 Kubernetes 集群的部署。

cluster-deploy

集群部署开始后,将会自动跳转到【任务】页。在【任务】页里可以看到集群部署当前所执行的具体任务信息。

cluster-deploy-1

如果是内网环境的话,一个典型的 3 节点集群的部署大概需要 10 分钟左右的时间。在出现类似下图的信息后,表明集群已部署成功:

cluster-deploy-2

注:集群默认不再安装 KubeApps Plus 应用商店,集群安装完成后,在该集群的概览页通过单击 “应用商店” 安装部署 KubeApps Plus。

4.3 服务暴露

4.3.1 添加 F5 BIG-IP

在集群列表中点击集群名称,添加 F5 暴露服务,点击【F5 BIG-IP】添加 F5 BIG-IP,为 Kubernetes 配置 F5-BIGIP-CONTROLLER 后,我们可以通过 F5 BIGIP 设备向外网暴露服务。

cluster-f5

4.3.2 更新 ApiServer 证书

通过自动更新配置 ApiServer 证书的功能,可以方便用户使用其他负载均衡设备对 Kubernetes 集群的 Master 节点配置高可用。默认情况下,使用 KubeOperator 创建的多 Master 节点的 Kubernetes 集群时,是通过 Haproxy 负载多个 Master 节点来提高可用性的。当然,真实环境中有成熟的、商业的负载均衡设备或者更好的解决方案时 ,可以使用外部的负载均衡设备来做高可用。配置过程中如果需要使用 HTTP/HTTPS 做七层负载,就需要 ApiServer 的证书文件。在 ApiServer 设置栏目,填写 VIP 地址(即负载均衡器的 IP),如下图所示,就可以自动为负载均衡器配置 ApiServer 的证书。证书文件将存放到 Master 节点的 /etc/kubernetes/ssl 目录。

cluster-cert

cluster-ssl

4.4 CIS 安全扫描

KubeOperator 结合 kube-bench 实现了 CIS 安全扫描功能,通过 CIS 安全扫描功能,可以帮助集群管理员检查 Kubernetes 是否已安全部署。kube-bench 尽可能紧密地实现 CIS Kubernetes 基准,CIS Kubernetes 基准的详细信息可以通过下方链接查看:

https://www.cisecurity.org/benchmark/kubernetes/

cluster-cis