LHC Pod 域名配置

本文介绍如何通过域名访问 Pod。

步骤一:开启有状态模式

在创建应用服务或者编辑应用服务的 填写基本信息 阶段,开启 有状态模式

1.png

开启后,Pod 名称会加上 -0-1 ... 数字后缀。待应用服务发布成功后,可前往应用服务详情页查看 Pod 名称是否已加上 -0-1 ... 数字后缀。

2.png

步骤二:配置 Headless Service

在创建应用服务或者编辑应用服务的 访问配置 阶段,添加 Headless Service 名称。本例中输入 svc。Headless Service 名称即为 test0928jf-svc

3.png

步骤三:基于域名规则计算 Pod 域名

域名规则如下:

  • Service 命名规则:<Headless Service 名称>-cell-<部署单元名>

    示例:test0928jf-svc-cell-rz00a

  • Hostname 命名规则:<应用服务名>-<部署单元名>-<Pod number>

    说明
    • Pod Number:Cell 维度从 0 开始递增的数字。

    • 应用服务发布完成后,可前往应用服务详情页查看 Pod 名称,Pod 名称最后一位即为 Pod Number。

    示例:test0928jf-rz00a-0

  • Pod 域名规则:<hostname>.<service name>

    示例:test0928jf-rz00a-0.test0928jf-svc-cell-rz00a

1

假设部署单元 rz00a 有 2 个副本,基于上述规则,计算结果如下:

计算项

计算结果

Service

test0928jf-svc-cell-rz00a

Hostname

test0928jf-rz00a-0

test0928jf-rz00a-1

Pod 域名

test0928jf-rz00a-0.test0928jf-svc-cell-rz00a

test0928jf-rz00a-1.test0928jf-svc-cell-rz00a

通过 Ping 命令验证能否访问 Service:test0928jf-svc-cell-rz00a。

1

通过 Ping 命令验证能否访问 Pod 域名:test0928jf-rz00a-0.test0928jf-svc-cell-rz00a、test0928jf-rz00a-1.test0928jf-svc-cell-rz00a。

1

重要

Pod 域名只能在集群内部访问,如果应用服务发布的部署单元属于不同的集群,则不同的部署单元之间通过 Pod 域名无法访问。

步骤四:添加环境变量 POD_ENDPOINTS = <Pod 域名>

在编辑应用服务的 Pod 模板配置 阶段,开启 覆盖配置 后,新建环境变量,将上面的域名列表写入环境变量,变量名支持自定义:

POD_ENDPOINTS= test0928jf-rz00a-0.test0928jf-svc-cell-rz00a,test0928jf-rz00a-1.test0928jf-svc-cell-rz00a

4.png

待应用服务发布后,即可从环境变量中获取所有 Pod 的域名列表。环境变量名可以按需定义。