• Kubernetes集群部署

    预备知识

    如果你不知道以下是做什么的,那么请参考下面链接(包括但不限于)进行学习:

    前置要求与约定

    防火墙及端口检测

    请检测防火墙状态,如果防火墙已开启请仔细阅读端口要求并按下面方式开放指定的端口;若未开启防火墙请跳过本节操作。

    检测防火墙状态(不同的发行版本具体操作可能不一样以供应商说明文档为准)

    开放指定端口

    如果防火墙已启用,则需要开放指定端口,下面分别列举使用firewalld和iptables设置开放端口命令。

    同步服务器时区

    时区和时间的同步性对于服务器很重要(例如您在更新数据库时,时间的准确性对业务的影响会非常大),为避免实例上运行的业务逻辑混乱和避免网络请求错误,您需要将一台或多台服务器设置在同一时区下,比如 Asia/Shanghai 或 America/Los Angeles。您可以根据自己的业务需求并参照本文为服务器设置或者修改时区。此外,NTP(Network Time Protocol)服务能保证您的服务器的时间与标准时间同步,您可以根据本文配置 NTP 服务。 详细过程可以参考此处

    本地虚拟机安装示例

    私有云安装示例

    私有云安装模式指的是在已有的虚拟机中安装,绝大部分centos 7.3+的虚拟机可以通过执行下述命令进行安装,如果你需要安装choerodno请确认集群总内存在48G以上,CPU总核心数大于8核。

    环境准备

    修改hosts文件

    在修改配置文件前请注意以下几点:

    部署

    添加节点

    通过本小节教程添加的节点不能是Master或Etcd节点,只能是普通的Work节点。若你使用的是NFS作为存储,建议你先安装nfs-utils

    公有云安装示例

    公有云安装以阿里云ECS为例进行讲解,其它公有云可参考本教程,但具体安装方式请咨相应云提供商。目前只支持Centos 7.2及以上版本。

    环境准备

    修改hosts文件

    在阿里云的ECS的控制面板上修改ECS实例的hostname,名称最好只包含小写字母、数字和中划线。并保持与inventory/hosts中的名称与ECS控制台上的名称保持一致,重启生效。

    执行下一步前请注意以下几点:

    开始安装

    修改kubeadm-ansible/inventory/vars变量文件

    本文档部署的网络类型为flannel类型

    部署

    添加节点

    通过本小节教程添加的节点不能是Master或Etcd节点,只能是普通的Work节点。若你使用的是NFS作为存储,建议你先安装nfs-utils

    Kubernetes网络测试

    集群搭建完成后请一定进行以下测试步骤进行测试。

    集群访问公网测试

    测试说明

    场景一、 Kubernetes集群node节点访问公网

    场景二、Kubernetes集群Pod访问公网

    集群内部网络延迟测试

    测试说明

    场景一、 Kubernetes集群node节点上通过Service Cluster IP访问

    场景二、Kubernetes集群内部通过service访问

    注意: 执行测试的node节点/Pod与Serivce所在的Pod的距离(是否在同一台主机上),对这两个场景可以能会有一定影响。

    集群内部网络性能测试

    测试说明

    场景一、主机之间

    注意: 此时该服务端命令会前台运行,一直等待客户端请求,请另起一个终端窗口进行执行客户端命令。

    场景二、不同主机的Pod之间

    注意: 此时该服务端命令会前台运行,一直等待客户端请求,请另起一个终端窗口进行执行客户端命令。查看输出的日志,替换下面客户端命令中POD的IP

    场景三、Node与非同主机的Pod之间

    注意: 此时该服务端命令会前台运行,一直等待客户端请求,请另起一个终端窗口进行执行客户端命令。