原生Kubernetes容器云平台基本测试使用

案例——原生Kubernetes容器云平台基本测试使用

 

 

一、案例目标

(1)了解Kubernetes IPVS的工作原理和开启方式。

(2)掌握Kubernetes节点的调度方法。

(3)掌握Kubernetes服务的运行方法。

二、案例分析

1.规划节点

主机名

节点

master

master节点

node

node节点

2.基础准备

Kubernetes集群已部署完成。

三、案例实施

1. 开启IPVS

IPVS是基于TCP四层(IP+端口)的负载均衡软件。

IPVS会从TCPSYNC包开始为一个TCP连接所有的数据包,建立状态跟踪机制,保证一个TCP连接中所有的数据包能到同一个后端。所以IPVS是基于TCP状态机进行控制管理,只感知TCP头而不对TCP的payload进行查看;因此,对IPVS后端服务器集群还有一个假定,那就是所有后端都具有同样的应用层的服务功能,但是由于IPVS可以给后端设定权重,所以每个后端的服务的能力可以不同。

一个合理的负载均衡软件,应该能够尽量提高服务接入能力(Request Per Second,ReqPS),而将服务处理能力(Response Per second,ResPS)通过合理分配后端来达到最佳。

根据处理请求和响应数据包的模式的不同,IPVS具有如下4种工作模式:

① NAT模式

② DR(Direct Routing)模式

③ TUN(IP Tunneling)模式

④ FULLNAT模式

而根据响应数据包返回路径的不同,可以分为如下两种模式:

① 双臂模式:请求、转发和返回在同一路径上,client和IPVS director、IPVS director和后端real server都是由请求和返回2个路径连接。

② 三角模式:请求、转发和返回3个路径连接client、IPVS director和后端real server成为一个三角形。

(1)修改配置文件

登录master节点,修改ConfigMap的kube-system/kube-proxy中的config.conf文件,修改为mode: "ipvs"。

 原生Kubernetes容器云平台基本测试使用

 

 原生Kubernetes容器云平台基本测试使用

(2)重启kube-proxy

 原生Kubernetes容器云平台基本测试使用

由于已经通过ConfigMap修改了kube-proxy的配置,所以后期增加的Node节点,会直接使用IPVS模式。查看日志。

 原生Kubernetes容器云平台基本测试使用

 

 原生Kubernetes容器云平台基本测试使用

日志中打印出了Using ipvs Proxier,说明IPVS模式已经开启。

(3)测试IPVS

使用ipvsadm测试,可以查看之前创建的Service已经使用LVS创建了集群。

 原生Kubernetes容器云平台基本测试使用

2. 调度master节点

出于安全考虑,默认配置下Kubernetes不会将Pod调度到Master节点。查看Master节点Taints字段默认配置:

[root@master ~]# kubectl describe node master

 原生Kubernetes容器云平台基本测试使用

//状态为NoSchedule

如果希望将k8s-master也当作Node节点使用,可以执行如下命令:

 原生Kubernetes容器云平台基本测试使用

 

 原生Kubernetes容器云平台基本测试使用

 //状态已经改变

3. 运行容器

(1)运行Nginx应用

运行具有4个副本的Nginx应用。

 原生Kubernetes容器云平台基本测试使用

安装下面两个安装包和拉取镜像资源

 原生Kubernetes容器云平台基本测试使用

(2)查看Pods

验证Pods是否正常运行。

[root@master ~]# kubectl get pods

 原生Kubernetes容器云平台基本测试使用

(3)开放端口

使用expose将service的80端口开放出去。

 原生Kubernetes容器云平台基本测试使用

(4)测试Nginx应用

 原生Kubernetes容器云平台基本测试使用

 

 原生Kubernetes容器云平台基本测试使用

使用curl工具可以成功获取到Nginx网页信息,说明80端口已开放成功。

上一篇:IPVS的简单了解


下一篇:k8s服务service发现与负载均衡