利用Rinetd实现Service的负载均衡

目录

为什么要负载均衡

负载均衡

1.查看master节点上是否有service服务 

2.进入tomcat-service目录

3.编辑tomcat-service.yml文件

4.创建service容器

5.查看当前service的部署情况

6.查看service的详细信息

7.测试容器内部的端口转发

支持外网访问的端口转发

 1.下载Rinetd

2.修改Rinetd的配置文件

3.安装Rinetd

4.配置Rinetd的路由转发

5.测试

 


为什么要负载均衡

上一篇文章我们实现了集群共享,共享之后可以通过从机器的ip+我们配置的端口来访问tomcat,但事实是用户根本不知道ip是啥,这时候就需要我们负载均衡了。通过负载均衡提供一个可以被外部访问到的ip,屏蔽具体请求到那台服务器的细节。

负载均衡

1.查看master节点上是否有service服务 

如果有service服务我们要先删除掉,进行重新部署。可以看到当前并没有service服务,所以我们不用进行delete操作

2.进入tomcat-service目录

cd /usr/local/k8s/tomcat-service

3.编辑tomcat-service.yml文件

vim tomcat-service.yml

进去之后,我们注释两行代码,然后保存退出即可

4.创建service容器

kubectl create -f tomcat-service.yml

5.查看当前service的部署情况

kubectl get service

可以看到,service已经重新部署成功了~

6.查看service的详细信息

kubectl describe service tomcat-service

可以看到,配置成功后达到了通过访问主机8000端口分别访问另外两台从机上部署服务的8080端口,我们再测试下

7.测试容器内部的端口转发

首先进入www-data目录下

cd /usr/local/data/www-data/

再里面创建一个文件夹

mkdir test

cd进去

cd test

新建一个jsp文件 

vim index.jsp

在里面写上当前获取到的ip地址命令,这样每次我们访问这个文件时,就知道是哪台服务器提供的服务了

<%=request.getLocalAddr()%>

我们输入下面的命令访问jsp文件,10.100.22.231是master服务器的容器虚拟IP,我们看看这次访问是哪台服务器给master提供的服务

curl 10.100.22.231:8000/test/index/jsp

可以看到我们的请求被随机的分配到两个node节点上

支持外网访问的端口转发

 1.下载Rinetd

首先我们切换下目录

cd /usr/local

通过下面的命令下载Rinetd的源码包 

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

下载成功之后我们解压缩这个包

tar -zxvf rinetd.tar.gz

2.修改Rinetd的配置文件

输入命令进入到rinetd文件夹下

cd rinetd

执行命令修改rinetd.c文件 

sed -i 's/65536/65535/g' rinetd.c

3.安装Rinetd

首先我们要创建一个目录,这个目录是Rinetd所必须的

mkdir -p /usr/man/

 然后安装C语言编译器

yum install -y gcc

安装成功gcc之后我们终于可以安装Rinetd了

make && make install

如同所示则安装成功 

4.配置Rinetd的路由转发

编辑vim /etc/rinetd.conf配置文件

vim /etc/rinetd.conf

写上如下内容 

0.0.0.0 8000 10.100.22.231 8000

4个0代表配置好的端口对所有ip开发,

8000代表用8000端口来接受外部来的访问请求

10.100.22.231 8000是集群master机器中service容器的ip和端口

5.测试

我们在浏览器上直接输入master服务器的ip:8000端口在后面再加上之前我们些的jsp的地址,看看是不是访问出东西来喽

 

发布了315 篇原创文章 · 获赞 157 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/104181076
今日推荐