6.3. 设置专用命名空间


为防止裸机即服务(BMaaS)工作负载和 OpenShift Container Platform 基础架构之间的意外干扰,请设置专用命名空间。为每个 BMaaS 项目重复此步骤。

先决条件

流程

  1. 在身份提供程序中配置 BMaaS bmadmin 用户,并在 OpenShift 中创建 secret:

    1. 在身份提供程序中创建 bmadmin 用户。例如,如果使用 htpasswd 身份提供程序,请运行以下命令:

      $ htpasswd -c -B -b ./users_htpasswd <username> <password>
      Copy to Clipboard Toggle word wrap
      <username>
      身份提供程序的用户名。将 <username> 替换为您的首选用户名。本例使用 bmadmin
      <password>
      用户的密码。将 <password> 替换为安全的密码。
    2. 运行以下命令,在 openshift-config 命名空间中创建 secret 来存储身份提供程序配置:

      $ oc create secret generic <identity_provider_arguments> -n openshift-config
      Copy to Clipboard Toggle word wrap

      例如,在使用 htpasswd 身份提供程序时,运行以下命令:

      $ oc create secret generic htpass-secret --from-file=htpasswd=users_htpasswd -n openshift-config
      Copy to Clipboard Toggle word wrap
      <identity_provider_arguments>
      特定于身份提供程序 secret 的参数。将 <identity_provider_arguments> 替换为身份提供程序的适当参数。
  2. 配置 OAuth 以使用身份提供程序:

    1. 运行以下命令来编辑 OAuth 资源:

      $ oc edit oauth cluster
      Copy to Clipboard Toggle word wrap

      编辑器会打开并显示 Oauth 资源。

    2. 将身份提供程序配置添加到 spec.identityProviders 列表中:

      Expand
      表 6.1. 身份提供程序配置示例
      类型Example

      htpasswd

      # ...
      - name: my_bmaas_provider
        mappingMethod: claim
        type: htpasswd
        htpasswd:
          fileData:
            name: <secret>
      # ...
      Copy to Clipboard Toggle word wrap

      LDAP

      # ...
      - name: my_bmaas_provider
        mappingMethod: claim
        type: ldap
        ldap:
          attributes:
            id:
            - dn
            email:
            - mail
            name:
            - cn
            preferredUsername:
            - uid
      # ...
      Copy to Clipboard Toggle word wrap

      GitHub

      # ...
      - name: my_bmaas_provider
        mappingMethod: claim
        type: GitHub
          github:
            ca:
              name: ca-config-map
            clientID: {...}
            clientSecret:
              name: github-secret
            hostname: ...
            organizations:
            - myorganization1
            - myorganization2
            teams:
            - myorganization1/team-a
            - myorganization2/team-b
      # ...
      Copy to Clipboard Toggle word wrap

      有关标识提供程序的更多信息,请参阅身份验证和授权

    3. 保存并退出编辑器。
  3. 运行以下命令来创建 BMaaS bmadmin 用户:

    $ oc create user <username>
    Copy to Clipboard Toggle word wrap
    <username>
    用户名。将 <username> 替换为您的用户名。以下示例使用 bmadmin 作为用户名。
  4. 运行以下命令,为 BMaaS 主机创建一个专用的 bmaas 命名空间:

    $ oc new-project <namespace>
    Copy to Clipboard Toggle word wrap
    <namespace>
    将 <namespace> 替换为您要使用的命名空间名称。这个示例使用 bmaas
  5. 运行以下命令,将 edit 角色分配给 bmaas 命名空间中的 BMaaS bmadmin 用户:

    $ oc adm policy add-role-to-user edit <username> -n bmaas
    Copy to Clipboard Toggle word wrap
  6. 运行以下命令克隆 baremetal-operator 存储库,以获取基于角色的访问控制(RBAC)角色定义:

    $ git clone -b release-4.19 https://github.com/openshift/baremetal-operator.git
    Copy to Clipboard Toggle word wrap
  7. 对于您要添加的每个角色,运行以下命令来从存储库应用适当的 RBAC 角色 YAML 文件:

    $ oc apply -f baremetal-operator/config/base/rbac/<role_filename>.yaml
    Copy to Clipboard Toggle word wrap
  8. 运行以下命令,将自定义 RBAC 角色分配给 bmaas 命名空间中的 BMaaS bmadmin 用户:

    $ oc adm policy add-role-to-user <role_name> bmadmin -n bmaas
    Copy to Clipboard Toggle word wrap
  9. 运行以下命令,以 bmadmin 用户身份登录:

    $ oc login <api_server_url>:6443
    Copy to Clipboard Toggle word wrap
    <api_server_url>
    Kubernetes API 的 URL。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat