本篇内容主要讲解“Kubernetes gRPC负载均衡分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes gRPC负载均衡分析”吧!
安装环境依赖
- <李>
docker-desktop祝辞=以下4.4.1
李> <李>kubernetes祝辞=1.21.5
李> <李>去祝辞=1.17
李> <李>protobuf祝辞=3.17.3
李> <李>istioctl祝辞=1.11.4
李>下载安装码头工人桌面,并启动内置的kubernetes集群。
#,安装,Gobrew install 去#,安装,Protobufbrew install protobuf #,安装,Istiobrew install istioctl kubectl config  use-context docker-desktop istioctl install - y
项目地址
github.com/jxlwqq/grpc-lb
拉取代码:
git clone git@github.com: jxlwqq/grpc-lb.gitcd grpc-lb
Makefile介绍
命令说明<代码>使init 代码>安装protoc-gen-go和protoc-gen-grpc <代码>让protoc> 代码基于原型文件,生成* _pb。去和* _grpc.pb。<代码>让docker-build 代码>构建码头工人镜像<代码>让kube-deploy> 代码在集群中部署服务<代码>让kube-delete 代码>删除服务<代码>让istio-inject 代码>注入Istio边车具体逻辑,请查看Makefile文件。
L4 vs地级负载均衡
所谓的四层就是基于IP +端口的负载均衡,而七层就是基于URL等应用层信息的负载均衡;Kubernetes内置的服务负载均衡基于iptables/ipv实现,仅支持L4。换句话说,服务支持HTTP/1.1协议,不支持HTTP/2协议。
而特使(Istio)则更为全能,支持被gRPC请求和响应的作为路由和负载均衡底层的所有HTTP/2功能。
项目架构
本项目分别测试服务和特使(Istio)对HTTP/RPC负载均衡的支持情况。
- <李>
cmd/服务器/主要。:服务端,同时提供HTTP和RPC服务。响应的数据为服务端容器所在的豆荚名称,(基于下行API)。
李> <李>cmd/client-http/主要。去:HTTP客户端,通过HTTP方式,循环调用服务端接口,并打印返回值。
李> <李>cmd/client-grpc/主要。:gRPC客户端,通过RPC方式,循环远程调用服务端方法,并打印返回值。
李>测试原理
服务端服务器在Kubernetes集群中以部署的方式部署3个副本,3个副本的豆荚名称各不相同,而client-http和client-grpc则会每秒调用一次服务端,并打印返回值。如果返回值中,三个吊舱的名称都存在,则表明正在进行有效的负载均衡,否则,则表明未进行有效的负载均衡。
测试服务
构建镜像:
make docker-build #,构建镜像(构建好的镜像,不,push 到远程仓库中)
查看镜像:
docker images ls
返回:
REPOSITORY ,,,,,,,,,,, TAG ,,,,,, IMAGE ID ,,,,,, CREATED ,,,,,,,,,的大小 grpc-lb/client-grpc ,, latest ,,, 95 d32ead8d9b ,, 12, seconds ago , 16.6 mb grpc-lb/client-http ,, latest ,,, dbf0341206f6 ,, 22, seconds ago , 11.5 mb grpc-lb/server ,,,,,,, latest ,,, 1 ef346785b2a ,, 29日,seconds ago ,, 18.2 mb
部署到集群中:
make kube-deploy , #,在集群中部署服务
查看豆荚:
kubectl get 豆荚
返回:
NAME ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, READY  STATUS ,,, RESTARTS ,年龄 client-grpc-6c565594f4-tdf75 ,, 1/1 ,,,, Running ,, 0,,,,,,,,,, 2 m48s client-http-55d95c744d-f7nx4 ,, 1/1 ,,,, Running ,, 0,,,,,,,,,, 2 m49 server-7c4bfd74d-29c69 ,,,,,,,, 1/1 ,,,, Running ,, 0,,,,,,,,,, 2 m51 server-7c4bfd74d-4btvw ,,,,,,,, 1/1 ,,,, Running ,, 0,,,,,,,,,, 2 m51 null null null null null null nullKubernetes gRPC负载均衡分析