有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

操作场景

本文通过一个 demo 进行 Golang 应用接入微服务引擎托管的 PolarisMesh 治理中心的全流程操作演示,帮助您快速了解如何在 Kubernetes 中使用 DNS 协议来体验使用北极星网格的就近路由能力。

前提条件

已创建 PolarisMesh 北极星网格,请参见 创建 PolarisMesh 治理中心
已准备好业务部署的容器资源。
创建 TKE 容器集群,请参见 创建 TKE 集群
下载 Github 的 demo 源码 到本地。

操作步骤

1. 登录 TSE 控制台
2. 北极星网格下的 polarismesh 页面,单击页面左上方下拉列表,选择目标地域。
3. 单击目标引擎的“ID”,进入基本信息页面。
4. 查看访问地址,Golang 应用访问使用 gRPC 端口(8091):


5. 将北极星网格和 Kubernetes 集群进行关联,请参见 关联 K8s 集群
6. 开启 polaris-sidecar 的注入能力。
# 对于 default 命名空间开启注入能力
kubectl label namespace default polaris-injection=enabled
# 对于注入的 polaris-sidecar 运行模式设置为 dns 模式
kubectl label namespace default polaris-sidecar-mode=dns

7. 修改 demo 中的注册中心地址:
7.1 在下载到本地的 demo 源码 目录下,找到configmap-provider.yaml文件。
7.2 添加微服务引擎北极星网格地址到项目配置文件中(这里已configmap-provider.yaml为例)。
7.3 修改位置信息获取插件名称到项目配置文件中(这里已configmap-provider.yaml为例)。
apiVersion: v1
data:
polaris.yaml: |-
global:
serverConnector:
addresses:
- 10.0.4.6:8091
location:
# 设置 polaris-go 进程地理信息的提供插件
provider: qcloud
consumer:
serviceRouter:
plugin:
nearbyBasedRouter:
#描述:就近路由的最小匹配级别
#范围:region(大区)、zone(区域)、campus(园区)
matchLevel: campus
kind: ConfigMap
metadata:
name: polaris-consumer-config
namespace: default
8. 将 demo 部署至 TKE 集群中。
kubectl apply -f ./
9. 确认部署结果:
9.1 进入前面提到的微北极星网格实例页面。
9.2 选择服务管理 > 服务列表,查看微服务 RouteNearbyEchoServer 的实例数量。
若实例数量值不为0,则表示已经成功接入微服务引擎。
若实例数量为0,或者找不到 RouteNearbyEchoServer 服务名,则表示微服务应用接入微服务引擎失败。


9.3 开启 RouteNearbyEchoServer 的就近路由。


10. 为 RouteNearbyEchoServer 创建服务别名 routenearby.echoserver。


11. 调用 provider 的 HTTP 接口,执行 http 调用,其中${app.port}替换为 provider 的监听端口(默认为28080),${add.address}则替换为 provider 的域名信息。
curl -L -X GET 'http://routenearby.echoserver.default.svc.polaris:28080/echo'
预期返回值:Hello, I'm RouteNearbyEchoServer Provider, MyLocInfo's : xxx, host : xxx:xxx