我们给到的建议是:
为了配置Higress进行TCP代理,你需要按照以下详细步骤操作:
前置准备:
确保Higress已安装在Kubernetes(K8s)集群的higress-system命名空间下,其服务名为higress-gateway。
目标是为default命名空间下的tcp-echo服务设置四层路由,该服务监听端口为9000,同时希望网关也监听此端口。
请先确保Higress支持Gateway API CRD,参考文档进行配置。
创建 GatewayClass:
创建文件gatewayclass.yaml,内容如下:
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: higress-gateway
spec:
controllerName: "higress.io/gateway-controller"
使用命令应用配置至集群:
kubectl apply -f gatewayclass.yaml
创建 Gateway:
创建文件gateway.yaml,内容如下:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: higress-gateway
namespace: higress-system
spec:
gatewayClassName: higress-gateway
listeners:
name: default-tcp
protocol: TCP
port: 9000
allowedRoutes:
namespaces:
from: All
kinds:
kind: TCPRoute
应用配置至集群:
kubectl apply -f gateway.yaml
修改 higress-gateway Service:
编辑higress-gateway Service以添加9000端口:
kubectl edit service higress-gateway -n higress-system
在编辑界面中添加如下配置后保存退出:
name: tcp
port: 9000
protocol: TCP
targetPort: 9000
创建 TCPRoute:
创建文件tcproute.yaml,内容如下:
apiVersion: gateway.networking.k8s.io/v1alpha2
kind: TCPRoute
metadata:
name: tcp-echo
namespace: default
spec:
parentRefs:
name: higress-gateway
namespace: higress-system
port: 9000
rules:
backendRefs:
name: tcp-echo
port: 9000
应用配置至集群:
kubectl apply -f tcproute.yaml
配置验证:
配置完成后,你可以通过telnet或其他方式尝试连接到higress-gateway服务的9000端口,以验证TCP路由是否配置成功并能正常工作。
参考链接:
*专家经验:配置 TCP 四层路由此回答整理自钉群"Higress 社区交流 2 群"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。