Azure 活动目录(AD)用于动态创建和管理其他 Azure 资源,它为您的集群提供了与 AKS 通信的凭证。有关服务主体的详细信息,请参阅 AKS 文档

    请从获取以下信息,创建 Azure 活动目录:

    • 订阅 ID
    • 租户 ID
    • 应用 ID(也称为客户端 ID)
    • 客户密钥
    • 资源组

    下面的部分描述了如何使用 Azure 命令行工具或 Azure 门户设置这些先决条件。

    您可以通过运行以下命令来创建服务主体:

    结果应显示有关新服务主体的信息:

    您还需要向服务主体添加角色,使它具有与 AKS API 通信的权限。它还需要创建和列出虚拟网络的访问权限。

    下面是将角色分配给服务主体的示例命令。Contributor角色的用户可以管理 AKS 上的任何内容,但不能授予其他人访问权限:

    您也可以用一条命令来创建服务主体并赋予Contributor权限。在此命令中,设置 scope 参数时,要提供 Azure 资源的完整路径:

    从 Azure 门户网站设置服务主体

    除了可以使用 Azure 命令行工具设置服务主体,您还可以按照下方指示设置服务主体,从 Azure 门户网站设置服务主体并其基于角色的访问权限。

    1. 跳转到 Microsoft Azure 门户网站主页.

    2. 单击 Azure Active Directory

    3. 单击 应用注册

    4. 输入名称。这将是服务主体的名称。

    5. 单击 注册

    6. 您现在应该看到服务主体的名称 Azure Active Directory > 应用注册

    7. 单击服务主体的名称。请注意租户 ID 和应用程序 ID(也称为应用 ID 或客户端 ID),以便在配置 AKS 集群时使用它。然后单击 证书 & 密钥

    8. 单击 新客户端密钥

    9. 输入一个简短的描述,选择一个过期时间,然后单击添加。记下客户端密钥,以便在配置 AKS 集群时使用它。

    结果: 您已经创建了一个服务主体,您应该能够在Azure 活动目录应用注册中看到它。您仍然需要授予服务主体对 AKS 的访问权限。

    给您的服务主体配置基于角色的访问权限,

    1. 单击左边导航栏中的 全部服务。然后单击 订阅

    2. 单击要与 Kubernetes 集群关联的订阅的名称。记下订阅 ID,以便在预配 AKS 集群时使用它。

    3. 单击 访问控制 (IAM)

    4. 添加角色分配 部分,单击 添加

    5. 分配访问权限 字段中,选择 Azure AD 或 访问主体

    6. 选择 字段中,选择服务主体的名称,然后单击 保存

    结果: 您的服务主体现在有了访问 AKS 的权限。

    创建 AKS 集群

    使用 Rancher 来配置您的 Kubernetes 集群。

    1. 集群 页,单击 添加集群

    2. 输入 集群名称

    3. 通过成员角色来设置用户访问集群的权限。

      • 单击添加成员将需要访问这个集群的用户添加到成员中。
      • 角色下拉菜单中选择每个用户的权限。
    4. 使用订阅 ID、租户 ID、应用 ID 和客户端密钥授予集群对 AKS 的访问权限。如果您没有所有这些信息,则可以使用以下指引来获取这些信息:
    • 应用 ID and ID、租户 ID: 要获取应用 ID 和租户 ID,可以转到 Azure 门户网站,然后单击Azure Active Directory,然后单击应用注册,然后单击服务主体的名称。应用 ID 和租户 ID 都位于应用注册详细信息页上。
    • 客户端密钥: 如果在创建服务主体时未复制客户端密钥,在应用注册详细信息页面,可以获取新密钥,然后单击证书 & 密钥,然后单击新客户端密钥
    • 订阅 ID: 您可以从门户网站的全部服务 > 订阅中获取订阅 ID。
    1. 使用您的服务主体的信息完成帐户访问表单,并选择一个地理区域。此信息用于 Azure 进行身份验证。

    2. 使用Kubernetes 选项来配置 Kubernetes 版本,DNS 前缀,是否启用监控等。

    3. 使用主机部分来配置集群中的节点。

    4. 检查您的选项来确认它们是正确的. 然后单击创建

    • 您的集群创建成功并进入到Provisioning(启动中)的状态。Rancher 正在拉起您的集群。
    • Active的集群中,有两个默认项目:项目(包括default命名空间)和System项目(包括、ingress-nginxkube-public 和 )。