Huawei DCS 的基础设施资源

概述

在 Huawei DCS 上创建集群之前,需要配置基础设施资源,包括云凭证、IP 池和机器模板。

你可以使用 Web UI 或 YAML 清单来管理基础设施资源。Web UI 提供带校验的引导式界面,而 YAML 则提供自动化能力。

在 Huawei DCS 上,IP 池还承载所有必须在 VM 替换后仍然保留的磁盘。这包括平台所需的 /var/cpaas 磁盘。

INFO

命名空间要求 所有基础设施资源都必须部署在 cpaas-system 命名空间中,以确保其作为业务集群与平台正确集成。

INFO

DCS 平台概念 如果你不熟悉 DCS ClusterDCS HostDCS VM FolderDCS VM Template 等术语,或者不清楚它们与 DCSClusterDCSMachineTemplate 自定义资源之间的关系,请先阅读 Huawei DCS 概念和术语

云凭证

云凭证存储集群操作所需的 DCS 平台访问信息。

使用 Web UI

前提条件

在创建云凭证之前,请验证以下 DCS 平台要求:

用户配置

  • 用户类型:以下两种之一:
    • Interface interconnection user — 默认值;表示现有行为。当 DCS 门户中已经配置了互联类型账户时,请使用此类型。
    • Domain user — 由 LDAP/AD 支持、由目录服务管理的用户。要求 DCS 已由你的 DCS 管理员配置好域认证,并且目录用户已在 DCS 门户中预先创建,且具有下方的角色映射。
  • 角色:必须为 administrator

密码策略(仅适用于 Interface interconnection user):

进入 System ManagementRights ManagementRights Management Policy,并验证:

  • 策略Whether to modify the password of an interface interconnection user upon password resetting and first login
  • :必须设置为 No

如果设置为 Yes,用户在首次登录时将被强制修改密码,从而导致认证失败并引发集群创建失败。

对于 Domain user,密码生命周期由你的 LDAP/AD 目录服务管理,而不是由 DCS 门户策略管理。

创建云凭证

导航路径:Clusters → Cloud Credentials → Create Cloud Credential → Select Huawei DCS

表单字段

字段类型必填描述
名称text凭证的唯一标识符(1-63 个字符,仅允许小写字母、数字和连字符)
显示名称text用于便于识别的自定义描述
DCS EndpointURLDCS 平台 API 地址(必须以 http://https:// 开头)
用户名textDCS 平台 API 用户登录名
密码passwordDCS 平台 API 用户登录密码
SitetextVM 模板所在的站点(所有资源必须位于同一站点)

校验规则

  • 名称必须为 1-63 个字符,仅包含小写字母、数字和连字符,并且必须以字母或数字开头和结尾
  • DCS Endpoint 必须是以 http://https:// 开头的有效 URL 格式

管理云凭证

查看凭证:进入 Clusters → Cloud Credentials,可查看所有已配置凭证及其类型、创建时间和创建者。

更新凭证:单击 Update 可修改 Display Name。当前版本不支持更新密码(计划在后续版本中提供)。

删除凭证:单击 Delete 可移除凭证。在对话框中确认删除。

INFO

Domain user 支持:此版本仅支持 YAML

Web UI 当前仅创建 Interface interconnection user 凭证。若要创建 Domain user 凭证,请使用下方的 YAML 路径,并在 Secret 中将 .data.userType 设置为 domain 的 base64 值(例如 ZG9tYWlu)。base64 编码步骤见本页下方的 Example 块。

使用 YAML

创建一个 Secret 资源来存储 DCS 认证信息:

dcs-secret.yaml
apiVersion: v1
data:
  authUser: <base64-encoded-auth-user>
  authKey: <base64-encoded-auth-key>
  endpoint: <base64-encoded-endpoint>
  userType: <base64-encoded-user-type>   # optional; "interconnect" (default) or "domain"
kind: Secret
metadata:
  name: <auth-secret-name>
  namespace: cpaas-system
type: Opaque
TIP

使用 stringData 跳过手动 base64 步骤

上面的示例使用的是 data:,这是 Kubernetes 的 Secret 标准——每个值都必须已经完成 base64 编码。如果你希望直接用明文编写 Secret,可以将 data: 块替换为 stringData: 并直接提供值。API server 会在写入时透明地进行 base64 编码,因此最终存储的 Secret 与 data: 形式在字节上完全一致,DCS Provider controller 无论哪种方式看到的内容都相同。

dcs-secret-stringdata.yaml
apiVersion: v1
stringData:
  authUser: <plain-text-auth-user>
  authKey: <plain-text-auth-key>
  endpoint: <plain-text-endpoint>
  userType: <plain-text-user-type>   # optional; "interconnect" (default) or "domain"
kind: Secret
metadata:
  name: <auth-secret-name>
  namespace: cpaas-system
type: Opaque

stringData: 为只写字段——一旦 Secret 创建完成,kubectl get secret -o yaml 只会显示 data: 形式,这也是规范表示。两种形式在写入时互斥;不要在两个块中设置相同的 key。

参数说明

参数描述
.data.authUserDCS 平台 API 用户登录名(base64 编码)
.data.authKeyDCS 平台 API 用户登录密码(base64 编码)
.data.endpoint带 http 或 https 协议的 DCS 平台 API 地址(base64 编码)。注意:DCS 平台的默认 API 端口为 7443(不是常见的 8443)。如果你的环境使用自定义端口,请与管理员确认。
.data.userType可选。凭证用户类型的 base64 值。允许的明文值(base64 之前)为 interconnect(默认值;当该 key 缺失或为空时使用)或 domain。匹配不区分大小写(DomainDOMAINdomain 都映射到同一值)。任何其他值,包括旧版 DCS 的魔法数字 12,都会被配置错误拒绝,因此 domain 用户不会被无声地按 interconnect 进行认证。

示例

# Encode credentials
echo -n "admin" | base64
echo -n "your-password" | base64
echo -n "https://dcs.example.com:7443" | base64
echo -n "domain" | base64   # only when using a domain user; omit for interconnect (default)

# Apply the Secret
kubectl apply -f dcs-secret.yaml -n cpaas-system

凭证用户类型

DCS Provider 支持两种凭证用户类型,由可选的 Secret key userType 选择:

userType映射到的 DCS 用户适用场景DCS 侧要求密码生命周期
interconnect(默认值;等同于 key 缺失或为空)Interface interconnection user现有部署,以及当 DCS 中已经配置了 interconnect 账户时最简单的方式。DCS 门户必须保持策略“Whether to modify the password of an interface interconnection user upon password resetting and first login”为 No由 DCS 门户策略管理。
domainDomain user(LDAP/AD 支持)安全审计要求使用 LDAP/AD 管理凭证的客户,或已经标准化使用目录服务账户的部署。DCS 必须已由你的 DCS 管理员配置好域认证,并且目录用户必须预先在 DCS 门户中创建且具有 administrator 角色由你的 LDAP/AD 目录服务管理,而不是由 DCS 门户策略管理。

兼容性:现有且未包含 userType key 的 Secret 仍会按原方式进行认证;继续使用 interconnect 风格凭证无需迁移。

UI 覆盖范围:当前 Web UI 表单不暴露 userType 字段。若要使用 domain 值,请通过 YAML 配置 Secret。


IP 池

IP 池为集群节点定义网络配置(IP 地址、子网掩码、网关、DNS)。每个池可以包含多个节点条目,而每个节点又可以拥有多个网络接口配置。

对于 DCS 多 NIC 集群,每个 IP 条目都可以声明 additionNic 项。这些额外的 NIC 会绑定到该 IP 槽位,并在 Provider 创建新 VM 时应用。对现有 Pool 更新 additionNic 不会热插拔到已经运行的 VM 上。

对于 DCS 持久磁盘,每个 IP 条目还可以声明 persistentDisk 项。这些磁盘绑定到 IP 槽位而不是 VM 生命周期,因此在滚动升级期间可以从旧 VM 卸载并重新挂载到替换 VM 上。请将平台所需的 /var/cpaas 磁盘以及任何必须在删除后重建操作中仍可保留的节点本地