在舰队级层为集群设置 GKE Identity Service
本文档适用于希望在集群上设置 GKE Identity Service 的集群管理员或应用运维人员。本文档介绍如何使用您偏好的身份提供方在舰队级层对集群设置 GKE Identity Service。
启用 API
首先,您必须启用相关的 API。
控制台
确保已选择集群所注册的项目。
-
Enable the GKE Hub and Kubernetes Engine APIs.
gcloud
运行以下命令启用设置所需的 API:
gcloud services enable
gkehub.googleapis.com
container.googleapis.com
配置集群
如需将集群配置为使用您选择的提供方,GKE Identity Service 需要您指定有关身份提供方的详细信息、为用户识别提供的 JWT 令牌的信息,以及作为客户端应用注册 GKE Identity Service 时提供的其他信息。
例如,如果您的提供方使用以下字段(以及其他字段)创建身份令牌,其中 iss
是身份提供方 URI,sub
用于标识用户,groupList
用于列出用户所属的安全群组:
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
...则您的配置将具有以下相应的字段:
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
您的平台管理员或组织中管理身份的人员应为您提供创建配置所需的大部分信息。 如需查看一些常用身份提供方的配置示例,请参阅提供方专用配置。
借助 GKE Identity Service,您可以通过 Google Cloud 控制台或使用 Google Cloud CLI 创建或更新和应用此配置。
控制台
启用 GKE Identity Service
在 Google Cloud 控制台中,前往 Feature Manager 页面。
在 Identity Service 面板中,点击启用,然后在显示的窗格中再次点击启用。这将创建一个新的 GKE Identity Service 控制器实例,以管理舰队集群中 GKE Identity Service 的生命周期。
选择集群
- 返回 Feature Manager 页面,在 Identity Service 面板中点击详细信息,打开该服务的详细信息窗格。此时会显示项目的集群及其舰队级 GKE Identity Service 状态。
- 点击更新 Identity Service以打开设置窗格。
- 选择要配置的集群。只能选择受支持的集群类型。您可以选择单个集群,也可以指定所有集群都使用相同的身份配置。 如果您已配置舰队级默认设置,则系统会将配置协调回默认设置。如需了解详情,请参阅配置舰队级默认设置。
- 在身份提供方下拉列表中,选择您要如何配置集群。如果集群已有 GKE Identity Service 配置,则可以选择对其进行更新。如果现有的已注册集群具有您要使用的 GKE Identity Service 配置,则可以选择将该配置复制到所选的集群。如需创建全新的配置,请按照所选提供方的相关说明进行操作(请参见下一部分)。
设置提供方详细信息
您需要添加的提供方详细信息取决于您要在配置中使用的身份提供方类型。
OIDC
- 选择新建 Open ID Connect,以创建新的 OIDC 配置。
- 在提供商名称字段中指定要用于识别此配置的名称,通常是身份提供商名称。此名称必须以字母开头,后面最多可跟 39 个小写字母、数字或连字符,但不能以连字符结尾。创建配置后,您将无法修改此名称。
- 在客户端 ID 字段中指定向您的提供商注册 GKE Identity Service 时返回的客户端 ID。
- 在客户端密钥字段中指定客户端应用和身份提供商之间必须共享的客户端密钥。
- 在颁发者网址字段中,指定用于向您的身份提供商发出授权请求的 URI。
- 点击下一步以设置 OIDC 特性。
Azure AD
- 选择新建 Azure Active Directory,以创建新的 Azure AD 配置。
- 在提供商名称字段中指定要用于识别此配置的名称,通常是身份提供商名称。此名称必须以字母开头,后面最多可跟 39 个小写字母、数字或连字符,但不能以连字符结尾。创建配置后,您将无法修改此名称。
- 在客户端 ID 字段中指定向您的提供商注册 GKE Identity Service 时返回的客户端 ID。
- 在客户端密钥字段中指定客户端应用和身份提供商之间必须共享的客户端密钥。
- 在租户中指定租户,即要进行身份验证的 Azure AD 账号。
- 点击下一步以设置 Azure AD 特性。
LDAP
- 选择 LDAP,以创建新的 LDAP 配置。
- 在提供商名称字段中指定要用于识别此配置的名称,通常是身份提供商名称。此名称必须以字母开头,后面最多可跟 39 个小写字母、数字或连字符,但不能以连字符结尾。创建配置后,您将无法修改此名称。
- 点击下一步。
- 指定 LDAP 服务器的主机名(必填)、LDAP 连接类型和 base64 编码的 CA 证书。
- 点击下一步以配置服务器。
- 指定用户的标识名、过滤条件、登录属性和标识符属性。
- 点击下一步以设置用户详细信息。
- 如果您选择使用群组,请指定群组的标识名、过滤条件和标识符属性。
- 点击下一步以设置群组详细信息。
- 指定服务账号的用户名和密码。
- 点击完成以设置服务账号名称。
设置特性
您需要添加的属性取决于您的身份提供方,以及您的平台管理员在为 GKE Identity Service 配置提供方时选择的设置选项。
OIDC
填写配置特性:
kubectl
重定向 URI:gcloud CLI 使用的重定向网址和端口,由平台管理员在注册时指定,通常采用http://localhost:PORT/callback
形式。- 证书授权机构(可选):如果平台管理员提供,则该参数为身份提供商的 PEM 编码证书字符串。
- 群组声明(可选):提供商用于返回账号的安全群组的 JWT 声明(字段名称)。
- 群组前缀(可选):如果您有多个身份提供商的配置(通常是提供商名称),则该参数为您要附加到安全群组名称的前缀,以避免与访问权限控制规则中的现有名称冲突。
- 代理(可选):用于连接到身份提供商的代理服务器地址(如适用)。例如,如果您的集群位于专用网络中并且需要连接到公共身份提供商,则可能需要设置此参数。例如:
http://user:password@10.10.10.10:8888
。 - 范围(可选):身份提供商所需的任何其他范围。Microsoft Azure 和 Okta 需要
offline_access
范围。 如有必要,请点击添加范围以添加更多范围。 - 用户声明(可选):您的提供商用于标识账号的 JWT 声明(字段名称)。如果您未在此处指定值,GKE Identity Service 会使用“sub”,这是许多提供商使用的用户 ID 声明。您可以选择其他声明,例如“电子邮件”或“名称”,具体取决于 OpenID 提供方。“电子邮件”以外的声明会以颁发者网址作为前缀,以防止命名冲突。
- 用户前缀(可选):如果您不想使用默认前缀,则该参数为您要附加到用户声明的前缀,以防止与现有名称冲突。
- 额外参数(可选):配置所需的任何额外参数,指定为参数 Key 和 Value。如果需要,请点击添加参数添加更多参数。
- 启用访问令牌(可选):如果启用,则允许为 OIDC 提供方(例如 Okta)提供群组支持。
- 部署 Google Cloud 控制台代理(可选):如果启用了此代理,则进行部署,以允许 Google Cloud 控制台连接到无法通过互联网公开访问的本地身份提供商。
Azure AD
填写配置特性:
kubectl
重定向 URI:gcloud CLI 使用的重定向网址和端口,由平台管理员在注册时指定,通常采用http://localhost:PORT/callback
形式。- 用户声明(可选):您的提供商用于标识账号的 JWT 声明(字段名称)。如果您未在此处指定值,则 GKE Identity Service 会依次使用“email”“preferred_username”或“sub”的值,以获取用户详细信息。
- 代理(可选):用于连接到身份提供商的代理服务器地址(如适用)。例如,如果您的集群位于专用网络中并且需要连接到公共身份提供商,则可能需要设置此参数。例如:
http://user:password@10.10.10.10:8888
。
添加身份提供商
- 如果您想要为队列配置其他身份提供方,则可以选择在此处添加提供方。按照相关步骤指定其他身份提供方。
更新配置
- 点击更新配置。这会在必要时安装 GKE Identity Service(仅限 EKS 集群,GKE 集群默认已安装 GKE Identity Service),并在所选集群上应用客户端配置。
gcloud
创建配置文件
GKE Identity Service 使用名为 ClientConfig 的 Kubernetes 自定义资源 (CRD) 进行集群配置,其中包含 GKE Identity Service 与身份提供方交互所需的全部信息对应的字段。下面的部分介绍了 OIDC 和 LDAP 的配置,您需要用自己的配置创建一个名为 auth-config.yaml
的文件。
OIDC
下面的文件对 oidc
配置和 azuread
配置都进行了展示。如需详细了解何时使用 oidc
或 azuread
,请参阅提供方专用配置。
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
proxy: PROXY_URL
oidc:
certificateAuthorityData: CERTIFICATE_STRING
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
deployCloudConsoleProxy: PROXY_BOOLEAN
extraParams: EXTRA_PARAMS
groupsClaim: GROUPS_CLAIM
groupPrefix: GROUP_PREFIX
issuerURI: ISSUER_URI
kubectlRedirectURI: http://localhost:PORT/callback
scopes: SCOPES
userClaim: USER_CLAIM
userPrefix: USER_PREFIX
- name: NAME
proxy: PROXY_URL
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
如果您配置了多个身份提供方,则可以使用与上述配置相同的格式,在 authentication
锚标记下的 auth-config.yaml
文件中列出多个身份验证配置。下表介绍了 ClientConfig 中的 oidc
和 azuread
对象的各个字段。大部分字段是可选的。您需要添加的字段取决于您的身份提供方,以及您的平台管理员在为 GKE Identity Service 配置提供方时选择的设置选项。
字段 | 必需 | 说明 | 格式 |
---|---|---|---|
name | 是 | 您要用于标识此配置的名称,通常是身份提供方名称。配置名称必须以字母开头,后面最多可跟 39 个小写字母、数字或连字符,但不能以连字符结尾。 | 字符串 |
certificateAuthorityData | 否 | 如果平台管理员提供,则该字段为身份提供方的 PEM 编码证书字符串。将生成的字符串作为单独的一行添加到 certificateAuthorityData 中。 |
字符串 |
clientID | 是 | 向您的提供方注册 GKE Identity Service 时返回的客户端标识符。 | 字符串 |
clientSecret | 是 | 向您的提供商注册 GKE Identity Service 时返回的客户端密钥。 | 字符串 |
deployCloudConsoleProxy | 否 | 指定是否部署一个代理,该代理允许 Google Cloud 控制台连接到无法通过互联网公开访问的本地身份提供方。默认情况下,该值设置为 false 。 |
布尔值 |
extraParams | 否 | 要发送到身份提供方的其他键值对参数,以逗号分隔列表的形式指定,例如“prompt=consent,access_type=offline”。 | 英文逗号分隔列表 |
enableAccessToken | 否 | 启用后,当用户从命令行登录时,GKE Identity Service 可以使用身份提供方的 userinfo 端点获取群组信息。如果您的提供方(例如 Okta)提供来自此端点的群组声明,您便可以使用安全群组进行授权。如果未设置,则视为 false 。 |
布尔值 |
groupsClaim | 否 | 您的提供方用于返回账号的安全群组的 JWT 声明(字段名称)。 | 字符串 |
groupPrefix | 否 | 如果您有多个身份提供方的配置(通常是提供方名称),则该字段为您要附加到安全群组名称的前缀,以避免与访问权限控制规则中的现有名称冲突。 | 字符串 |
issuerURI | 是 | 用于向您的身份提供方发出授权请求的 URI。URI 必须使用 HTTPS。 | 网址字符串 |
kubectlRedirectURI | 是 | gcloud CLI 使用的重定向网址和端口,由平台管理员在注册时指定,通常采用 http://localhost:PORT/callback 形式。 |
网址字符串 |
scopes | 是 | 要发送到 OpenID 提供方的其他范围。例如,Microsoft Azure 和 Okta 需要 offline_access 范围。 |
英文逗号分隔列表 |
userClaim | 否 | 您的提供方用于识别用户账号的 JWT 声明(字段名称)。如果您未在此处指定值,GKE Identity Service 会使用“sub”,这是许多提供方使用的用户 ID 声明。您可以选择其他声明,例如“电子邮件”或“名称”,具体取决于 OpenID 提供方。“电子邮件”以外的声明会以颁发者网址作为前缀,以防止命名冲突。 | 字符串 |
userPrefix | 否 | 如果您不想使用默认前缀,则该字段为您要附加到用户声明的前缀,以防止与现有名称冲突。 | 字符串 |
租户 | 是 | 要进行身份验证的 Azure AD 账号的种类。支持的值为租户 ID,或属于特定租户的账号的租户名称。租户名称也称为主域名。如需详细了解如何查找这些值,请参阅查找 Microsoft Azure AD 租户 ID 和主域名。 | 字符串 |
proxy | 否 | 用于连接到身份提供方的代理服务器地址(如适用)。例如,如果您的集群位于专用网络中并且需要连接到公共身份提供方,则可能需要设置此字段。例如:http://user:password@10.10.10.10:8888 。 |
字符串 |
SAML
下面的文件对 SAML
配置进行了展示:
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: GROUPS_ATTRIBUTE
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
下表介绍了 ClientConfig saml
对象的字段。您需要添加的字段取决于您的身份提供方,以及您的平台管理员在为 GKE Identity Service 配置提供方时选择的设置选项。
字段 | 必需 | 说明 | 格式 |
---|---|---|---|
name | 是 | 您要用于标识此配置的名称,通常是身份提供方名称。配置名称必须以字母开头,后面最多可跟 39 个小写字母、数字或连字符,但不能以连字符结尾。 | 字符串 |
idpEntityID | 是 | SAML 提供方的 SAML 实体 ID,以 URI 格式指定。例如:https://www.idp.com/saml 。 |
网址字符串 |
idpSingleSignOnURI | 是 | SAML 提供方的 SSO 端点,以 URI 格式指定。例如:https://www.idp.com/saml/sso 。 |
网址字符串 |
idpCertificateDataList | 是 | 对应于用于验证 SAML 响应的身份提供方证书。这些证书必须采用标准的 base64 编码和 PEM 格式。最多支持两个证书,以便于身份提供方证书轮替。 | 字符串 |
userAttribute | 否 | SAML 响应中包含用户名的属性的名称。 | 字符串 |
groupsAttribute | 否 | SAML 响应中包含用户群组信息的属性的名称。 | 字符串 |
userPrefix | 否 | 如果您不想使用默认前缀,则该字段为您要附加到用户声明的前缀,以防止与现有名称冲突。 | 字符串 |
groupPrefix | 否 | 如果您有多个身份提供方的配置(通常是提供方名称),则该字段为您要附加到安全群组名称的前缀,以避免与访问权限控制规则中的现有名称冲突。 | 字符串 |
attributeMapping | 否 | 其他用户属性的映射。 | 字符串 |
certificateAuthorityData | 否 | 如果平台管理员提供,则该字段为身份提供方的 PEM 编码证书字符串。将生成的字符串作为单独的一行添加到 certificateAuthorityData 中。 |
字符串 |
preferredAuthentication | 否 | 在集群中配置的首选身份验证方法的名称。 | 字符串 |
LDAP
下面的文件对 ldap
配置进行了展示。
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: ldap
ldap:
server:
host: HOST_NAME
connectionType: CONNECTION_TYPE
certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA
user:
baseDn: BASE_DN
loginAttribute: LOGIN_ATTRIBUTE
filter: FILTER
identifierAttribute: IDENTIFIER_ATTRIBUTE
group:
baseDn: BASE_DN
filter: FILTER
identifierAttribute: IDENTIFIER_ATTRIBUTE
serviceAccount:
simpleBindCredentials:
dn: DISTINGUISHED_NAME
password: PASSWORD
下表介绍了 ClientConfig ldap
对象中的各字段。您需要添加的字段取决于您的身份提供方,以及您的平台管理员在为 GKE Identity Service 配置提供方时选择的设置选项:
字段 | 必需 | 说明 | 格式 |
---|---|---|---|
name(名称) | 是 | 用于标识此 LDAP 配置的名称 | 字符串 |
服务器 | |||
host | 是 | LDAP 服务器的主机名或 IP 地址。端口是可选项,如果未指定,则默认为 389。例如 ldap.server.example.com 或 10.10.10.10:389 。
|
字符串 |
connectionType | 是 | 连接到 LDAP 服务器时使用的 LDAP 连接类型。如果指定了 starttls 或 ldaps ,则 certificateAuthorityData 字段不应为空。 |
字符串 |
certificateAuthorityData | 对于某些 LDAP 连接类型而言为必填项 | 包含用于 LDAP 服务器的 Base64 编码的 PEM 格式的证书授权机构证书。只能为 ldaps 和 startTLS 连接提供此字段。 |
字符串 |
位用户 | |||
baseDN | 是 | LDAP 目录中子树的位置,用于搜索用户条目。 | 采用 DN 格式的字符串。 |
loginAttribute | 否 | 与输入用户名匹配的特性的名称。此字段用于在 LDAP 数据库(例如 (<LoginAttribute>=<username>) )中查找用户,并与可选过滤条件字段结合使用。默认为 userPrincipalName 。
|
字符串 |
过滤条件 | 否 | 搜索用户时要应用的可选过滤条件。这可用于进一步限制允许登录的用户账号。如果未指定,则默认为 (objectClass=User) 。
|
字符串 |
identifierAttribute | 否 | 确定在用户进行身份验证后要将哪个属性用作其用户身份。这不同于 loginAttribute 字段,后者允许用户使用用户名登录,但其实际标识符是电子邮件地址或完整的标识名 (DN)。例如,如果将 loginAttribute 设置为 sAMAccountName 并将 identifierAttribute 设置为 userPrincipalName ,用户将能够以 bsmith 身份登录,但用户的实际 RBAC 政策将写作 bsmith@example.com 。建议使用 userPrincipalName ,因为该项对于每个用户都是唯一的。如果未指定该字段,则默认为 userPrincipalName 。 |
字符串 |
群组(可选字段) | |||
baseDN | 是 | LDAP 目录中子树的位置,用于搜索群组条目。 | 字符串 |
过滤条件 | 否 | 搜索用户所属的群组时使用的可选过滤条件。该项可用于明确匹配特定群组,以减少为每个用户返回的群组数量。默认为 (objectClass=Group) 。
|
字符串 |
identifierAttribute | 否 | 用户所属的每个群组的标识名。例如,如果设置为 distinguishedName ,则应将 RBAC 和其他群组预期值写为完整的 DN。如果未指定该项,则默认为 distinguishedName 。
|
字符串 |
serviceAccount/simpleBindCredentials | |||
dn | 是 | 服务账号用户的标识名。 | 字符串 |
密码 | 是 | 服务账号用户的密码。 | 字符串 |
启用 GKE Identity Service
如需为您的项目启用 GKE Identity Service,请运行以下命令:
gcloud container fleet identity-service enable
这将创建一个新的 GKE Identity Service 控制器实例,以管理舰队集群中 GKE Identity Service 的生命周期。您只需为每个项目运行一次此命令,即可使用 GKE Identity Service 并将所有受支持的集群注册到您的项目舰队。
或者,您可以使用舰队级默认配置来启用 GKE Identity Service。使用此设置时,您指定的 GKE Identity Service 提供程序配置会自动应用于在创建集群期间 Google Cloud 上注册到舰队的每个 GKE 集群。如需了解操作详情,请参阅配置舰队级默认设置。
将配置应用于集群
如需在必要时安装 GKE Identity Service(仅限 EKS 集群,所有其他受支持的集群类型默认已安装 GKE Identity Service),并将配置应用于集群,请运行以下命令:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
将 CLUSTER_NAME
替换为集群在舰队内的唯一名称。运行此命令后,配置将由 GKE Identity Service 控制器管理。对 GKE Identity Service 客户端配置所做的任何本地更改都会由控制器协调回此设置中指定的配置。
这样,GKE Identity Service 就可以检索使用 Google ID 登录的用户账号的 Google 群组信息。从 GKE Enterprise 1.13 版开始,此配置适用于 Google Distributed Cloud(VMware 和裸金属)上的集群。如需详细了解 Google 群组功能,请参阅使用 Google 群组设置 Connect 网关。
请注意,如果您的集群已有针对任何身份验证选项的配置,则以下情况适用:
- 如果您已有 OIDC 提供方的现有集群级配置,则对集群应用舰队级 GKE Identity Service 配置将会覆盖所有现有身份验证规范。
- 如果舰队级配置不支持提供方的现有集群级配置,则此设置将失败。您必须移除现有的提供商配置才能应用舰队级配置。
如果您不再希望 GKE Identity Service 控制器管理您的配置(例如,如果您想要使用其他身份验证选项),则可以按照停用 GKE Identity Service 管理中的说明停用此功能。
特定于提供方的配置
本部分为 OIDC 提供方(例如 Azure AD 和 Okta)提供配置指南,包括示例配置,您可以复制该示例配置并使用自己的详细信息进行修改。
Azure AD
这是使用 Azure AD 设置 GKE Identity Service 的默认配置。通过使用此配置,GKE Identity Service 可以从 Azure AD 获取用户和群组信息,此外,您可以根据群组设置 Kubernetes 基于角色的访问权限控制 (RBAC)。不过,如果使用此配置,对于每位用户,您最多只能检索大约 200 个群组。
如果对于每位用户,您需要检索 200 个以上的群组,请参阅 Azure AD(高级)部分的说明。
...
spec:
authentication:
- name: oidc-azuread
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
extraParams: prompt=consent, access_type=offline
issuerURI: https://login.microsoftonline.com/TENANT_ID/v2.0
kubectlRedirectURI: http://localhost:PORT/callback
scopes: openid,email,offline_access
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Azure AD(高级)
通过 Azure AD 的此可选配置,GKE Identity Service 可以使用 Microsoft Graph API 检索用户和群组信息,并且对于可针对每位用户检索的群组数量,没有任何限制。如需了解支持此配置的平台,请参阅 Azure AD 的高级设置。
如果需要针对每位用户检索的群组数量少于 200 个,则建议您使用默认配置,即在您的 ClientConfig 中使用一个 oidc
锚标记。如需了解详情,请参阅 Azure AD 的相关说明。
示例配置中的所有字段都是必填字段。
...
spec:
authentication:
- name: azure
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
groupFormat: GROUP_FORMAT
userClaim: USER_CLAIM
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
将 GROUP_FORMAT 替换为您要用于检索群组信息的格式。此字段可以接受与用户群组的 ID
或 NAME
相对应的值。此设置仅适用于 Google Distributed Cloud(本地)部署中的集群。
Okta
下面向您展示了如何使用用户和群组设置身份验证,并将 Okta 作为您的身份提供方。此配置允许 GKE Identity Service 使用访问令牌和 Okta 的 userinfo 端点检索用户和群组声明。
...
spec:
authentication:
- name: okta
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
enableAccessToken: true
extraParams: prompt=consent
groupsClaim: groups
issuerURI: https://OKTA_ISSUER_URI/
kubectlRedirectURI: http://localhost:PORT/callback
scopes: offline_access,email,profile,groups
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
配置舰队级默认设置
您可以使用舰队级默认配置来启用 GKE Identity Service。使用此设置时,在创建集群期间注册的每个新的 GKE on Google Cloud 集群或 GKE 集群都会在具有您指定的配置的集群上自动启用 GKE Identity Service。如果您在启用此功能时已有现有的舰队成员集群,这些集群不会自动使用舰队默认设置进行更新,但您可以选择将默认配置应用于这些集群。如需详细了解如何管理舰队级配置,请参阅管理舰队级功能。
如需使用舰队级默认配置来配置 GKE Identity Service,请执行以下操作:
- 创建一个名为
fleet-default.yaml
的文件,然后按照创建配置文件中的说明填充文件内容。 使用舰队级默认配置启用 GKE Identity Service:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
如需修改现有的舰队级默认配置,或者在不使用此功能的情况下已在舰队中启用了 GKE Identity Service 时添加一个舰队级默认配置,请运行以下命令:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
在设置舰队级默认配置之前注册的现有舰队成员集群不会自动继承默认配置。如需将默认配置应用于现有的舰队成员集群,请运行以下命令:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
如需为 GKE Identity Service 停用舰队级默认设置,请运行以下命令移除默认配置:
gcloud container fleet identity-service delete --fleet-default-member-config
验证身份服务配置
完成舰队级设置后,您可以验证舰队中的集群是否已成功配置了您指定的身份服务配置。
控制台
在 Google Cloud 控制台中,前往 Feature Manager 页面。
所有已启用的功能在其面板中显示为已启用。
在 Identity Service 面板中,点击详细信息。详细信息面板会显示已注册集群的状态。
gcloud
运行以下命令:
gcloud container fleet identity-service describe
后续步骤
配置集群后,请继续设置用户访问权限。