跳到主要内容

发布服务

弹性容器集群 部署的服务,可以通过 ServiceExporter 资源发布到公网调用。
ServiceExporter 是为了方便客户发布服务弹性容器集群 自定义的一种资源类型。
ServiceExporter 提供了两种服务发送方式,自动生成域名方式和自定义域名方式

自动生成域名发布服务架构如图

自动生成域名

自定义域名发布服务架构如图

自定义域名

下面详细介绍两种方式的使用

自动生成域名发布服务

发布服务

通过如下方式,可以将服务以平台自动生成的域名发布到公网调用
示例:

# `弹性容器集群` 对外发布服务
apiVersion: osm.datacanvas.com/v1alpha1
kind: ServiceExporter
metadata:
name: your-service-exporter-name # 你的ServiceExporter资源的名称
namespace: your-name-space # 你创建的namespace
spec:
serviceName: your-service-name # required
servicePort: 8188 # 你的服务的端口

获取服务域名

你可以使用 kubectl describe serviceexporter 命令获取服务的域名。

kubectl describe serviceexporter your-serviceexporter-name -n your-namespace

结果如下图所示 image

服务域名即{url}:{22443} 其中22443是 弹性容器集群 发布服务固定的端口号
例如:

https://*****.sproxy.hd-01.alayanew.com:22443

访问服务接口

URI: 根据服务定义的接口拼接
例如服务内定义接口URI: /test
调用服务服务接口示例:

curl https://*****.sproxy.hd-01.alayanew.com:22443/test

返回结果:

{
"status": 0,
"message": "",
"data": "欢迎使用弹性容器集群"
}

自定义域名服务发布

申请域名

如果没有域名,可以通过域名注册商注册域名或购买已注册域名。
国内的域名注册商有
阿里云 腾讯云 华为云 西部数码 百度云
本文以阿里云为例,演示申请注册域名

登录阿里云

登录阿里云账号,没有账号请先注册

查询域名

如下图所示,输入要注册的域名,点击查询域名
image 如果域名没有被注册过,可以立即注册,如果已被注册,可以购买该域名,或者申请新的域名 image

申买域名

填写信息,点击立即购买,完成支付 image

实名认证

支付以后,点击域名控制台,可以看到购买的域名列表
image 域名列表:
如果未完成实名认证,在该页面按提示完成实名认证,实名认证以后,状态显示为正常 image

配置域名解析

申请域名以后,要对域名配置DNS解析,解析到开通弹性容器集群的智算中心域名。

智算中心对应的域名列表如下:

智算中心名称域名
北京一区custom.hd-01.alayanew.com

配置域名解析

在域名列表页,点击解析按钮,进入域名解析配置页 image 解析配置页 image 在解析配置页,点击添加记录,新增域名解析配置,如下图 image 不同的域名解析供应商,配置方式可能不同,具体参考您选择的供应商

申请域名证书

使用自定义域名发布服务,需要申请域名的数字证书,下面介绍如何使用阿里云申请数字证书

进入数字证书管理服务

在搜索框,搜数字证书管理,如下图 image 点击进入数字证书管理服务,进入证书管理控制台,如下图: image

购买证书

阿里云提供正式证书和个人测试证书,根据需要选购特定类型的证书,本文以个人测试证书为例。点击立即购买,填写相应信息,购买证书,如下图 image

创建证书

购买证书以后,点击创建证书,绑定域名,如下图: image 提交审核以后,等待审核结果。审核通过如下图: image

下载证书

证书审核通过以后,证书列表的更多按钮,进入证书详情页,可以查看证书信息,以及下载,续费,分享等各种操作,如下图: image 我们选择其他类型,下载证书,下载以后解压,会有如下两个证书文件 image 其中 .key文件是证书的私钥文件。.pem文件是证书文件,发布服务时要用到这两个文件内容

发布服务

通过如下方式,可以将服务以自定义域名发布到公网调用
示例:

# `弹性容器集群` 对外发布服务
apiVersion: osm.datacanvas.com/v1alpha1
kind: ServiceExporter
metadata:
name: your-service-exporter-name # 你的ServiceExporter资源的名称
namespace: your-name-space # 你创建的namespace
spec:
serviceName: your-service-name # required
servicePort: 8188 # 你的服务的端口
domain: test1.zhangpo.xin # 证书绑定的域名
tlsKey: | # 证书私钥文件内容
-----BEGIN RSA PRIVATE KEY-----
******************************
-----END RSA PRIVATE KEY-----
tlsCrt: | # 证书文件内容
-----BEGIN CERTIFICATE-----
**************************
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
**************************
-----END CERTIFICATE-----

访问服务接口

服务域名即{自定义域名}:{22443} 其中22443是 弹性容器集群 发布服务固定的端口号
URI: 根据服务定义的接口拼接
例如服务内定义接口URI: /test
调用服务服务接口示例:

curl https://test1.zhangpo.xin:22443/test

返回结果:

{
"status": 0,
"message": "",
"data": "欢迎使用弹性容器集群"
}