基于K8s ServiceName配置应用服务访问

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

SAE支持基于K8s ServiceName的多语言服务注册发现功能,通过ServiceName做服务间调用。您可以为应用配置一个SAE集群内可以访问的固定域名,解决每次部署以后实例IP变化的问题。本文介绍如何通过SAE控制台,为应用配置基于K8s ServiceName的服务访问。

背景信息

在分布式微服务框架下,当服务上下线变更时,通过服务注册与服务发现功能,实现服务端和调用端的正常通信。

  • 服务注册:针对服务端。服务实例把自身的服务信息注册到注册中心后,调用端从注册中心读取并订阅相关信息。

  • 服务发现:针对调用端。注册中心对服务下的实例地址和元数据进行探测,并以预先定义的接口提供给调用端进行查询。服务实例向注册中心发起请求,在获取依赖的服务信息后,再通过这些信息去请求提供的服务。

使用限制

  • 该域名仅支持访问SAE应用内的实例,不支持其他实例或者集群通过该域名访问SAE,例如FC、ACK、ECS。如果其他产品需要访问SAE,建议您绑定一个私网/公网CLB来提供访问。更多信息,请参见基于CLB配置应用服务访问

  • 该域名不支持使用ping命令访问K8s ServiceName,您可以在代码里通过ServiceName以TCP或者UDP的方式进行访问。建议您使用ping命令,测试应用的Pod IP来排查网络是否联通。

  • 应用Pod无法通过ServiceName访问到应用Pod自身。

  • Job不支持通过K8s ServiceName的方式访问应用。

  • 如果服务端应用与客户端应用想要进行互相调用,两者都需要先配置K8s ServiceName。

在创建应用过程中配置服务注册发现功能

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击创建应用

  3. 应用基本信息配置向导,配置相关信息,然后单击下一步:应用部署配置

  4. 应用部署配置配置向导,选择技术栈语言应用部署方式,配置相关信息。

  5. 展开服务注册发现区域,单击基于K8s Service服务注册发现页签,打开启用基于K8s Service服务注册发现开关,配置相关信息。

    配置项

    说明

    服务名称

    系统默认自动填充,格式为应用名称-命名空间ID,其中后缀-命名空间ID不可修改。

    说明

    创建后,服务名称不允许修改。

    端口

    在文本框输入端口,取值范围为[1,65535]。

    说明

    最多支持添加5条端口与协议的配置信息。

    协议

    在下拉列表选择目标协议。支持协议如下:

    • TCP

    • UDP

  6. 单击下一步:确认规格

  7. 确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建

    页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。

  8. 通过以下方式验证配置是否生效。

    • 方式一:

      在应用基本信息页面的左侧导航栏,单击变更记录,在变更记录页面,查看应用变更详情。如果显示执行成功,表示应用部署成功,配置已生效。

    • 方式二:

      在应用基本信息页面,单击实例部署信息页签,查看实例的运行状态。如果运行状态显示为Running,表示应用部署成功,配置已生效。

    • 方式三:

      在应用基本信息页面的应用访问设置区域,单击基于K8s Service Name访问页签,查看服务发现的配置信息。如果该区域显示已配置的服务名称、端口与协议,表示应用部署成功,配置已生效。

在部署应用过程中配置服务注册发现功能

警告

重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。

更新应用配置的路径因实例数的不同而不同。本文以实例数大于等于1为例,介绍如何配置目标功能。当实例数等于0时的操作路径,请参见更新应用

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 基本信息页面右上角,单击部署应用

  4. 部署应用页面,展开服务注册发现区域,单击基于K8s Service服务注册发现页签,打开启用基于K8s Service服务注册发现开关,配置相关信息。

    配置项

    说明

    服务名称

    系统默认自动填充,格式为应用名称-命名空间ID,其中后缀-命名空间ID不可修改。

    说明

    创建后,服务名称不允许修改。

    端口

    在文本框输入端口,取值范围为[1,65535]。

    说明

    最多支持添加5条端口与协议的配置信息。

    协议

    在下拉列表选择目标协议。支持协议如下:

    • TCP

    • UDP

  5. 配置完成后,单击确认

  6. 通过以下方式验证配置是否生效。

    • 方式一:

      在应用基本信息页面的左侧导航栏,单击变更记录,在变更记录页面,查看应用变更详情。如果显示执行成功,表示应用部署成功,配置已生效。

    • 方式二:

      在应用基本信息页面,单击实例部署信息页签,查看实例的运行状态。如果运行状态显示为Running,表示应用部署成功,配置已生效。

    • 方式三:

      在应用基本信息页面的应用访问设置区域,单击基于K8s Service Name访问页签,查看服务发现的配置信息。如果该区域显示已配置的服务名称、端口与协议,表示应用部署成功,配置已生效。