发布服务
在 弹性容器集群
部署的服务,可以通过 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
结果如下图所示
服务域名即{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": "欢迎使用弹性容器集群"
}
自定义域名服务发布
申请域名
如果没有域名,可以通过域名注册商注册域名或购买已注册域名。
国内的域名注册商有
阿里云
腾讯云
华为云
西部数码
百度云等
本文以阿里云为例,演示申请注册域名
登录阿里云
登录阿里云账号,没有账号请先注册
查询域名
如下图所示,输入要注册的域名,点击查询域名
如果域名没有被注册过,可以立即注册,如果已被注册,可以购买该域名,或者申请新的域名
申买域名
填写信息,点击立即购买,完成支付
实名认证
支付以后,点击域名控制台,可以看到购买的域名列表
域名列表:
如果未完成实名认证,在该页面按提示完成实名认证,实名认证以后,状态显示为正常
配置域名解析
申请域名以后,要对域名配置DNS解析,解析到开通弹性容器集群的智算中心域名。
智算中心对应的域名列表如下:
智算中心名称 | 域名 |
---|---|
北京一区 | custom.hd-01.alayanew.com |
配置域名解析
在域名列表页,点击解析按钮,进入域名解析配置页
解析配置页
在解析配置页,点击添加记录,新增域名解析配置,如下图
不同的域名解析供应商,配置方式可能不同,具体参考您选择的供应商
申请域名证书
使用自定义域名发布服务,需要申请域名的数字证书,下面介绍如何使用阿里云申请数字证书
进入数字证书管理服务
在搜索框,搜数字证书管理,如下图
点击进入数字证书管理服务,进入证书管理控制台,如下图:
购买证书
阿里云提供正式证书和个人测试证书,根据需要选购特定类型的证书,本文以个人测试证书为例。点击立即购买,填写相应信息,购买证书,如下图
创建证书
购买证书以后,点击创建证书,绑定域名,如下图:
提交审核以后,等待审核结果。审核通过如下图:
下载证书
证书审核通过以后,证书列表的更多按钮,进入证书详情页,可以查看证书信息,以及下载,续费,分享等各种操作,如下图:
我们选择其他类型,下载证书,下载以后解压,会有如下两个证书文件
其中 .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": "欢迎使用弹性容器集群"
}