通过Hango UI创建服务和路由,同时进行服务和路由发布,便捷使用Hango网关。
通过Hango部署手册完成部署,可以查看hango相关Kubernetes service信息:
> kubectl get svc -n hango-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
gateway-proxy NodePort 10.106.46.59 <none> 15021:32318/TCP,80:30591/TCP,443:32522/TCP 23h
hango-api-plane ClusterIP 10.111.150.106 <none> 10880/TCP 23h
hango-portal NodePort 10.107.179.97 <none> 80:30621/TCP 23h
hango-ui NodePort 10.100.82.153 <none> 8789:30829/TCP 23h
istio-e2e-app ClusterIP 10.100.15.26 <none> 80/TCP,8080/TCP,90/TCP,9090/TCP,70/TCP,7070/TCP 23h
istiod ClusterIP 10.109.241.243 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 23h
plugin ClusterIP 10.96.91.4 <none> 80/TCP 23h
slime-metrics ClusterIP 10.102.87.122 <none> 8383/TCP,8686/TCP 23h其中hango-ui是我们的目标服务,它是NodePort类型,可以通过主机IP地址+端口访问,可以在浏览器中输入如下地址,即可访问Hango UI:
http://{{所在k8s集群的任一主机IP}}:{{NodePort端口,这里是30829}}由于发布服务和路由必须先要有网关,创建网关是第一步。官方提供了一个网关初始化脚本,可以直接使用。通过网关管理页面创建网关,示例如下所示:
其中:
- 网关名称,即
GwName,可自行填写,如“hango_envoy_gateway”; - 网关地址,即
GwAddr,指gateway proxy组件的访问地址,可以填写上文的gateway-proxy的k8s服务地址,端口不用填默认80; - ApiPlane地址,即
ApiPlaneAddr,指api plane组件的访问地址,可以填写上文的hango-api-plane的k8s服务地址和端口; - 网关集群名称,即
GwClusterName,如“demo-istio”; - 域名列表,即
HostList,如“istio.com”; - 备注信息,即
Description,可自行填写;
通过服务管理页面创建服务,例如,创建一个名为hango-test的服务。
通过路由管理页面创建路由,路由从属于服务;例如创建一个前缀为/hango/unit的路由,hango-route-test。
-
点击
+,创建一个新的路由,选择"所属服务"、填写“路由名称”,默认使用Path作为路由条件,输入单个或多个"条件取值",点击创建: -
除了默认的
Path路由分发方式,还提供基于Host、Method、Header、Query多种方式,应对不同场景,灵活性高。
新建服务需要通过发布后,才能被访问,例如,发布刚创建的hango-test服务。
-
通过
服务管理页面的发布按钮,进行服务发布操作: -
选择已有的
"目标网关",选择"从注册中心同步"作为发布方式,选择"K8S注册中心"作为注册中心,选择"istio-e2e-app.hango-system.svc.cluster.local"作为服务地址,点击确认: -
服务发布成功后,可以在
"已发布服务管理"页面查看:
通过声明服务端口进行路由发布,一旦路由发布成功,就可以通过hango网关调用路由。例如,发布路由至服务80端口。
可以通过调用gateway proxy组件,配合路由条件,验证路由是否成功。gateway proxy已提供NodePort服务,验证方式如下:
curl "http://{{所在k8s集群的任一主机IP}}:{{NodePort端口,这里是30591}}/hango/unit" -H "host:istio.com"返回结果:
ServiceVersion=v1
ServicePort=80
Host=istio.com
Method=GET
URL=/hango/unit
Proto=HTTP/1.1
RemoteAddr=10.0.0.192:59042
Method=GET
X-B3-Traceid=6cde016d694758c06f082afb06e746a9
Accept=*/*
X-Request-Id=0c254c7f-cade-46e5-ac98-0d8964198bab
X-Envoy-Decorator-Operation=istio-e2e-app.hango-system.svc.cluster.local:80/hango/unit.*
X-Envoy-Expected-Rq-Timeout-Ms=60000
X-B3-Sampled=0
User-Agent=curl/7.68.0
X-Forwarded-For=xx.xx.xx.xx
X-Envoy-External-Address=xx.xx.xx.xx
Content-Length=0
X-Forwarded-Proto=http
X-Envoy-Attempt-Count=1
X-B3-Spanid=6f082afb06e746a9
Hostname=istio-e2e-app-85bb49bf75-crlhm







