K8S入门到精通06-基于Rinted的Service负载均衡

Service提供负载均衡实现

在这里插入图片描述

这里我们直接使用Service的负载均衡,不再将端口直接暴露在宿主机节点上,集群内部通过k8s内部网络相互访问。由tomcat-service这个特殊的pod来实现流量转发与负载均衡。

修改tomcat-service.yml如下:

apiVersion: v1
kind: Service
metadata:
  name: tomcat-service
  labels:
    app: tomcat-service # Service也是一个特殊的pod,需要设置lables
spec:
#  type: NodePort # Service类型
  selector:
    app: tomcat-cluster # 指定绑定的pod
  ports:
  - port: 8000 # Service在k8s集群内部暴露的端口
    targetPort: 8080 # 被映射的容器暴露端口
#    nodePort: 32500 # 集群每个Node节点上对外暴露的端口

仅需注释如下两行内容

#  type: NodePort # Service类型
#    nodePort: 32500 # 集群每个Node节点上对外暴露的端口

变更service

kubectl apply -f tomcat-service.yml

在NFS共享目录中增加测试index.jsp,验证负载均衡效果

# 在Master节点(NFS Server)中执行如下命令
mkdir /data/www-data/test/
echo "IP:<%=request.getLocalAddr()%>" > /data/www-data/test/index.jsp
# 查看Service内部IP
kubectl get service tomcat-service
# 使用curl测试,10.103.113.6为上一步中获取的ClusterIP
curl 10.103.113.6:8000/test/index.jsp
# 返回处理请求的pod容器的ip
# IP:10.244.1.17

端口转发工具-Rinetd

上一步中10.*段的IP为K8S集群内部通信使用的IP,如何将这些IP提供的端口映射到外部呢?

  • Rinetd是Linux操作系统中为重定向传输控制协议工具
  • 可将源IP端口数据转发至目标IP端口
  • 在Kubernetes中用于将service服务对外暴露

rinted安装

rinted源码无法从官网下载,资源以事先准备好

这里我们使用Master节点作为端口转发宿主机,所有rinted安装在Master节点(192.168.0.31)上,以下命令均在该节点执行。

# 解压rinted源码
tar -zxf rinetd.tar.gz
cd rinetd/
# 修改rinted运行映射的端口范围
sed -i 's/65536/65535/g' rinted.c
# 创建rinted依赖目录
mkdir -p /usr/man/
# 安装C语言编译器
yum install -y gcc
# 编译并安装
make && make install

配置rinted

增加配置文件/etc/rinetd.conf

# 宿主机映射监听的IP+端口(0.0.0.0表示所有IP)、映射目的IP+端口
# 10.103.113.6即tomcat-service使用的ClusterIP
0.0.0.0 8000 10.103.113.6 8000

运行rinted

rinetd -c /etc/rinetd.conf

查看映射情况

使用netstat -nptl可以看到rinetd开启了8000端口

使用如下地址可在浏览器中访问rinted+service提供的服务

http://192.168.0.31:8000/test/index.jsp
在这里插入图片描述

总结

目前我们已经学习了k8s集群对外暴露服务的两种方式

  1. 使用Service提供的NodePort,在每一个Node节点开启端口映射,实现流量的转发
  2. Rinted+Service,使用Rinted设置对外暴露的IP+端口,通过Service实现访问的负载均衡

一般而言,Rinted+Service性能上会略胜一筹,大型集群应用优先考虑选择该种方式。

版权说明

本文章内容为马士兵教育《架构师高级技能kubernetes入门到精通》课程的学习笔记

百度网盘上相关源码资料包 提取码:xdji

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装nginx并使用清华镜像源,可以按照以下步骤进行: 1. 首先,确保您有root权限,并且服务器内存足够,以满足多用户同时下载的需求。 2. 连接到您的服务器,并运行以下命令来安装nginx: ``` sudo apt update sudo apt install nginx ``` 3. 安装完成后,您可以使用清华镜像源来更新软件包。情况A中提到了制作本地pip镜像源,所以您可以按照以下步骤操作: - 首先,安装pip工具: ``` sudo apt install python3-pip ``` - 然后,备份原有的pip源配置文件: ``` mv ~/.pip/pip.conf ~/.pip/pip.conf.bak ``` - 创建一个新的pip源配置文件并编辑: ``` nano ~/.pip/pip.conf ``` - 在文件中添加以下内容(清华镜像源的URL): ``` [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple ``` - 保存并关闭文件。 4. 现在,您可以使用清华镜像源来安装和更新Python软件包了。例如,运行以下命令安装一个Python软件包: ``` pip install package_name ``` 综上所述,您可以通过安装nginx并使用清华镜像源来满足您的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [nginx镜像资源nginx镜像资源nginx镜像资源nginx镜像资源nginx镜像资源nginx镜像资源](https://download.csdn.net/download/newsisyphus/87844924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [内网服务器无法访问外网下载时,制作本地清华镜像源,搭建中转服务器(rinted)](https://blog.csdn.net/qq_28838891/article/details/128156466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值