×

建议您使用身份提供商 (IDP) 帐户访问您的 Red Hat OpenShift Service on AWS (ROSA) 集群。但是,创建集群的集群管理员可以使用快速访问程序进行访问。

本文档描述了如何使用 ROSA CLI (rosa) 访问集群并设置 IDP。或者,您可以使用 OpenShift 集群管理器控制台创建 IDP 帐户。

快速访问您的集群

您可以使用此快速访问程序登录到您的集群。

最佳实践是使用 IDP 帐户访问您的集群。

步骤
  1. 输入以下命令

    $ rosa create admin --cluster=<cluster_name>
    示例输出
    W: It is recommended to add an identity provider to login to this cluster. See 'rosa create idp --help' for more information.
    I: Admin account has been added to cluster 'cluster_name'. It may take up to a minute for the account to become active.
    I: To login, run the following command:
    oc login https://api.cluster-name.t6k4.i1.organization.org:6443 \(1)
    --username cluster-admin \
    --password FWGYL-2mkJI-3ZTTZ-rINns
    1 对于具有托管控制平面 (HCP) 集群的 Red Hat OpenShift Service on AWS (ROSA),端口号应为443
  2. 输入oc login命令、用户名和密码(来自上一条命令的输出)。

    示例输出
    $ oc login https://api.cluster_name.t6k4.i1.organization.org:6443 \(1)
    >  --username cluster-admin \
    >  --password FWGYL-2mkJI-3ZTTZ-rINns
    Login successful.
    
    You have access to 77 projects, the list has been suppressed. You can list all projects with 'projects'
    1 对于具有 HCP 集群的 ROSA,端口号应为443
  3. 使用默认项目,输入此oc命令以验证集群管理员访问权限是否已创建

    $ oc whoami
    示例输出
    cluster-admin

使用 IDP 帐户访问您的集群

要登录到您的集群,您可以配置一个身份提供商 (IDP)。此过程使用 GitHub 作为示例 IDP。要查看其他受支持的 IDP,请运行rosa create idp --help命令。

或者,作为创建集群的用户,您可以使用快速访问程序。

步骤

要使用 IDP 帐户访问您的集群

  1. 添加 IDP。

    1. 以下命令创建一个由 GitHub 支持的 IDP。运行该命令后,请按照输出中的交互式提示操作,以访问您的GitHub 开发者设置并配置新的 OAuth 应用程序。

      $ rosa create idp --cluster=<cluster_name> --interactive
    2. 输入以下值

      • 身份提供商类型:github

      • 限制为以下成员:organizations(如果您没有 GitHub 组织,您可以立即创建一个)

      • GitHub 组织:rh-test-org(输入您的组织名称)

      示例输出
      I: Interactive mode enabled.
      Any optional fields can be left empty and a default will be selected.
      ? Type of identity provider: github
      ? Restrict to members of: organizations
      ? GitHub organizations: rh-test-org
      ? To use GitHub as an identity provider, you must first register the application:
        - Open the following URL:
          https://github.com/organizations/rh-rosa-test-cluster/settings/applications/new?oauth_application%5Bcallback_url%5D=https%3A%2F%2Foauth-openshift.apps.rh-rosa-test-cluster.z7v0.s1.devshift.org%2Foauth2callback%2Fgithub-1&oauth_application%5Bname%5D=rh-rosa-test-cluster-stage&oauth_application%5Burl%5D=https%3A%2F%2Fconsole-openshift-console.apps.rh-rosa-test-cluster.z7v0.s1.devshift.org
        - Click on 'Register application'
      ...
    3. 按照输出中的 URL 操作,然后选择**注册应用程序**以在您的 GitHub 组织中注册新的 OAuth 应用程序。通过注册应用程序,您可以启用内置于 ROSA 中的 OAuth 服务器,以将您的 GitHub 组织的成员认证到您的集群。

      **注册新的 OAuth 应用程序** GitHub 表单中的字段会通过 Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) 定义的 URL 自动填充所需的值。

    4. 使用您创建的 GitHub 应用程序中的信息并继续提示。输入以下值

      • 客户端 ID:<my_github_client_id>

      • 客户端密钥:[? 寻求帮助] <my_github_client_secret>

      • 主机名:(可选,您可以暂时保留为空)

      • 映射方法:claim

      持续示例输出
      ...
      ? Client ID: <my_github_client_id>
      ? Client Secret: [? for help] <my_github_client_secret>
      ? Hostname:
      ? Mapping method: claim
      I: Configuring IDP for cluster 'rh_rosa_test_cluster'
      I: Identity Provider 'github-1' has been created. You need to ensure that there is a list of cluster administrators defined. See 'rosa create user --help' for more information. To login into the console, open https://console-openshift-console.apps.rh-test-org.z7v0.s1.devshift.org and click on github-1

      配置 IDP 在集群中可能需要 1-2 分钟。

    5. 输入以下命令以验证您的 IDP 是否已正确配置

      $ rosa list idps --cluster=<cluster_name>
      示例输出
      NAME        TYPE      AUTH URL
      github-1    GitHub    https://oauth-openshift.apps.rh-rosa-test-cluster1.j9n4.s1.devshift.org/oauth2callback/github-1
  2. 登录到您的集群。

    1. 输入以下命令以获取集群的控制台 URL

      $ rosa describe cluster --cluster=<cluster_name>
      示例输出
      Name:        rh-rosa-test-cluster1
      ID:          1de87g7c30g75qechgh7l5b2bha6r04e
      External ID: 34322be7-b2a7-45c2-af39-2c684ce624e1
      API URL:     https://api.rh-rosa-test-cluster1.j9n4.s1.devshift.org:6443 (1)
      Console URL: https://console-openshift-console.apps.rh-rosa-test-cluster1.j9n4.s1.devshift.org
      Nodes:       Master: 3, Infra: 3, Compute: 4
      Region:      us-east-2
      State:       ready
      Created:     May 27, 2020
      1 对于具有托管控制平面 (HCP) 集群的 Red Hat OpenShift Service on AWS (ROSA),端口号应为443
    2. 导航到控制台 URL,并使用您的 Github 凭据登录。

    3. 在 OpenShift 控制台的右上角,单击您的姓名,然后单击**复制登录命令**。

    4. 选择您添加的 IDP 的名称(在本例中为**github-1**),然后单击**显示令牌**。

    5. oc登录命令复制并粘贴到您的终端。

      $ oc login --token=z3sgOGVDk0k4vbqo_wFqBQQTnT-nA-nQLb8XEmWnw4X --server=https://api.rh-rosa-test-cluster1.j9n4.s1.devshift.org:6443 (1)
      1 对于具有 HCP 集群的 ROSA,请使用端口号443
      示例输出
      Logged into "https://api.rh-rosa-cluster1.j9n4.s1.devshift.org:6443" as "rh-rosa-test-user" using the token provided. (1)
      
      You have access to 67 projects, the list has been suppressed. You can list all projects with 'oc projects'
      
      Using project "default".
      1 对于具有 HCP 集群的 ROSA,端口号应为443
    6. 输入一个简单的oc命令以验证一切是否已正确设置以及您是否已登录。

      $ oc version
      示例输出
      Client Version: 4.4.0-202005231254-4a4cd75
      Server Version: 4.3.18
      Kubernetes Version: v1.16.2

授予cluster-admin访问权限

作为创建集群的用户,将cluster-admin用户角色添加到您的帐户以获得最大的管理员权限。创建集群时,这些权限不会自动分配给您的用户帐户。

此外,只有创建集群的用户才能向其他cluster-admindedicated-admin用户授予集群访问权限。具有dedicated-admin访问权限的用户权限较少。最佳实践是尽可能减少cluster-admin用户的数量。

先决条件
  • 您已将身份提供商 (IDP) 添加到您的集群。

  • 您拥有您正在创建的用户对应的 IDP 用户名。

  • 您已登录到集群。

步骤
  1. 授予您的用户cluster-admin权限

    $ rosa grant user cluster-admin --user=<idp_user_name> --cluster=<cluster_name>
  2. 验证您的用户是否已列为集群管理员

    $ rosa list users --cluster=<cluster_name>
    示例输出
    GROUP             NAME
    cluster-admins    rh-rosa-test-user
    dedicated-admins  rh-rosa-test-user
  3. 输入以下命令以验证您的用户现在是否具有cluster-admin访问权限。集群管理员可以无错误地运行此命令,但专用管理员则无法运行。

    $ oc get all -n openshift-apiserver
    示例输出
    NAME                  READY   STATUS    RESTARTS   AGE
    pod/apiserver-6ndg2   1/1     Running   0          17h
    pod/apiserver-lrmxs   1/1     Running   0          17h
    pod/apiserver-tsqhz   1/1     Running   0          17h
    NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
    service/api   ClusterIP   172.30.23.241   <none>        443/TCP   18h
    NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                     AGE
    daemonset.apps/apiserver   3         3         3       3            3           node-role.kubernetes.io/master=   18h
其他资源

授予dedicated-admin访问权限

只有创建集群的用户才能向其他cluster-admindedicated-admin用户授予集群访问权限。具有dedicated-admin访问权限的用户权限较少。最佳实践是为大多数管理员授予dedicated-admin访问权限。

先决条件
  • 您已将身份提供商 (IDP) 添加到您的集群。

  • 您拥有您正在创建的用户对应的 IDP 用户名。

  • 您已登录到集群。

步骤
  1. 输入以下命令将您的用户提升为dedicated-admin

    $ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
  2. 输入以下命令以验证您的用户现在是否具有dedicated-admin访问权限

    $ oc get groups dedicated-admins
    示例输出
    NAME               USERS
    dedicated-admins   rh-rosa-test-user

    如果无dedicated-admin权限的用户运行此命令,则会显示Forbidden错误。

其他资源