配置域名

将域名资源添加到平台,并为集群下的所有项目或特定项目下的资源分配可用域名。创建域名时,支持绑定证书。

NOTE

在平台上创建的域名需要先解析到集群的负载均衡地址,才能通过域名访问。因此,你需要确保在平台上添加的域名已经成功注册,并且域名已解析到集群的负载均衡地址。

在平台上成功创建并分配的域名可用于 Container Platform 的以下功能:

  • 创建入站规则网络管理 > 入站规则 > 创建入站规则

  • 创建原生应用应用管理 > 原生应用 > 创建原生应用 > 添加入站规则

  • 为负载均衡添加监听端口网络管理 > 负载均衡详情 > 添加监听端口

当域名绑定证书后,应用开发人员在配置负载均衡和入站规则时只需选择该域名,即可使用域名自带的证书来支持 https。

域名示例自定义资源(CR)

# test-domain.yaml
apiVersion: crd.alauda.io/v2
kind: Domain
metadata:
  name: '${random-unique-name}'
  annotations:
    cpaas.io/secret-ref: developer.test.cn-xfd8x
  labels:
    cluster.cpaas.io/name: global
    project.cpaas.io/name: demo
spec:
  name: developer.test.cn
  kind: full
  1. 如果启用了证书,则必须提前创建 LTS 类型的 Secret。secret-ref 是 Secret 名称。

通过 Web 控制台创建域名

  1. 进入 管理员

  2. 在左侧导航栏中,点击 网络管理 > 域名

  3. 点击 创建域名

  4. 根据以下说明配置相关参数。

    参数描述
    类型
    • Domain:完整域名,例如 developer.test.cn
    • Wildcard Domain:带通配符(*)的泛域名,例如 *.test.cn,包含域名 test.cn 下的所有子域名。
    域名根据所选域名类型输入完整域名或域名后缀。
    分配集群如果分配了集群,还需要选择与该集群关联的项目,例如该集群关联的所有项目。
    证书包括用于创建域名绑定证书的公钥(tls.crt)和私钥(tls.key)。分配给证书的项目与绑定的域名相同。
    说明
    • 不支持二进制文件导入。
    • 绑定的证书应满足格式正确、在有效期内、已针对该域名签名等条件。
    • 创建绑定证书后,绑定证书的名称格式为:域名 - 随机字符。
    • 创建绑定证书后,可以在证书列表中查看该证书,但仅支持在域名详情页面更新和删除绑定证书。
    • 创建绑定证书后,支持更新证书内容,但不支持替换其他证书。
  5. 点击 创建

通过 CLI 创建域名

kubectl apply -f test-domain.yaml

在多个集群中使用同一域名

你可以通过在 global 集群中创建独立的 Domain 资源来配置同一域名在多个集群中使用,这些资源的 spec.name 值相同,但 cluster.cpaas.io/name 标签不同。

通过 Web 控制台配置

  1. 按照通过 Web 控制台创建域名中的步骤操作。

  2. 创建两个 相同域名(例如 app.example.com)的域名资源。

  3. 为每个域名选择不同的 分配集群(例如 cluster-a 和 cluster-b)。

通过 CLI 配置

在 global 集群中创建两个 Domain 自定义资源,它们的 spec.name 相同,但 cluster.cpaas.io/name 标签不同:

NOTE

两个 Domain 资源中的域名(spec.name)必须相同,但资源的 metadata.name 应唯一。两个资源都创建在 global 集群中。

Cluster A 的域名:

apiVersion: crd.alauda.io/v2
kind: Domain
metadata:
  name: '${random-unique-name}'
  labels:
    cluster.cpaas.io/name: cluster-a
    project.cpaas.io/name: project-a
spec:
  name: app.example.com  # Same domain name
  kind: full

Cluster B 的域名:

apiVersion: crd.alauda.io/v2
kind: Domain
metadata:
  name: '${random-unique-name}'
  labels:
    cluster.cpaas.io/name: cluster-b
    project.cpaas.io/name: project-a
spec:
  name: app.example.com  # Same domain name as Cluster A
  kind: full

后续操作

  • 域名注册:如果创建的域名尚未注册,请先注册该域名。

  • 域名解析:如果域名尚未指向平台集群的负载均衡地址,请执行域名解析。

其他资源