SAE支持基于K8s ServiceName的多语言服务注册发现功能,通过ServiceName做服务间调用。本文介绍如何通过SAE控制台,为应用配置基于K8s ServiceName的服务访问。

背景信息

在分布式微服务框架下,当服务上下线变更时,通过服务注册与服务发现功能,实现服务端和调用端的正常通信。
  • 服务注册:针对服务端。服务实例把自身的服务信息注册到注册中心后,调用端从注册中心读取并订阅相关信息。
  • 服务发现:针对调用端。注册中心对服务下的实例地址和元数据进行探测,并以预先定义的接口提供给调用端进行查询。服务实例向注册中心发起请求,在获取依赖的服务信息后,再通过这些信息去请求提供的服务。

使用限制

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

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

  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服务注册发现页签,配置相关信息。
    配置项说明
    服务名称系统默认自动填充,格式为应用名称-命名空间ID,其中后缀-命名空间ID不可修改。
    说明 创建后,服务名称不允许修改。
    端口在文本框输入端口,取值范围为[1,65535]。
    说明 最多支持添加5条端口与协议的配置信息。
    协议在下拉列表选择目标协议。支持协议如下:
    • TCP
    • UDP
  5. 配置完成后,单击确认
  6. 通过以下方式验证配置是否生效。
    • 方式一:

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

    • 方式二:

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

    • 方式三:

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