DevOps 工程師會連線至 vSphere IaaS control plane,以佈建和管理 TKG 服務 叢集的生命週期。開發人員會連線至 TKG 服務 叢集,以部署套件、工作負載和服務。管理員可能需要直接存取 TKG 服務 叢集節點以進行疑難排解。平台提供支援每個使用案例和角色的身分識別與存取管理的工具及方法。

TKG 服務 叢集存取範圍限定為 vSphere 命名空間

您可以在 vSphere 命名空間 中佈建 TKG 服務 叢集。設定 vSphere 命名空間 時,可以設定其 DevOps 權限,包括身分識別來源、使用者和群組以及角色。平台會將這些權限散佈到在該 vSphere 命名空間 中佈建的每個 TKG 服務 叢集。平台支援兩種驗證方法:vCenter Single Sign-On符合 OIDC 的外部身分識別提供者。

使用 vCenter Single Sign-On 和 Kubectl 進行驗證

依預設,系統會使用 vCenter Single Sign-On 對環境進行驗證,包括 主管TKG 服務 叢集。vCenter Single Sign-On 為 vSphere 基礎結構提供驗證,並可與 AD/LDAP 系統整合。如需詳細資訊,請參閱〈使用 vCenter Single Sign-On 進行 vSphere 驗證〉

若要使用 vCenter Single Sign-On 進行驗證,請使用 kubectl 適用的 vSphere 外掛程式。通過驗證後,可以使用 kubectl 以宣告方式佈建和管理 TKG 服務叢集的生命週期,並與 主管 進行互動。

kubectl 適用的 vSphere 外掛程式 外掛程式相依於 kubectl。使用 kubectl vsphere login 命令進行驗證時,外掛程式會對 主管 上的 /wcp/login 端點發出具有基本驗證的 POST 要求。vCenter Server 會核發 主管 信任的 JSON Web Token (JWT)。

若要使用 vCenter Single Sign-On 連線,請參閱使用 vCenter SSO 驗證連線至 TKG 服務 叢集

使用外部身分識別提供者和 Tanzu CLI 進行驗證

您可以為 主管 設定支援 OpenID Connect 通訊協定的外部身分識別提供者。設定後,主管 將用作 OAuth 2.0 用戶端,並使用 Pinniped 驗證服務透過 Tanzu CLI 提供用戶端連線。Tanzu CLI 支援佈建和管理 TKG 服務 叢集的生命週期。每個 主管 執行個體支援單一外部身分識別提供者。

適當設定驗證外掛程式和 OIDC 簽發者以使 pinniped-auth CLI 正常運作後,當您使用 tanzu login --endpoint 登入 主管 時,系統會查詢一些已知的 configmap 以建置 pinniped config 組態檔。

若要使用外部 OIDC 提供者進行連線,請參閱使用外部身分識別提供者連線到 主管 上的 TKG 叢集

使用混合方法進行驗證:vCenter SSO 和 Tanzu CLI

如果使用 vCenter Single Sign-On 作為身分識別提供者,並且要使用 Tanzu CLI,則可以採用混合方法,同時使用這兩種工具登入 主管。此方法可能會對安裝標準套件很有用。請參閱使用 Tanzu CLI 和 vCenter SSO 驗證連線到 主管

DevOps 的使用者和群組

設定 vSphere 命名空間 時所建立的權限供 DevOps 使用者管理 TKG 服務 叢集的生命週期。為其指派權限的 DevOps 使用者或群組必須存在於身分識別來源中。DevOps 使用者使用其身分識別提供者認證進行驗證。

DevOps 使用者負責向下游使用者 (例如,希望將工作負載部署到已佈建叢集的開發人員) 授與叢集存取權。這些使用者將使用身分識別提供者或在 Kubernetes 上使用叢集角色和繫結進行驗證。在下節中將對此進行更詳細的說明。
備註: vSphere 命名空間 權限專門用於需要建立和管理 TKG 服務 叢集的 DevOps 使用者。這些叢集的使用者 (例如開發人員) 將使用 Kubernetes 驗證機制。

角色權限和繫結

TKGS 叢集有兩種以角色為基礎的存取控制 (RBAC) 系統:vSphere 命名空間 權限和 Kubernetes RBAC 授權。作為 vSphere 管理員,您可以指派 vSphere 命名空間 權限,以允許使用者建立和操作 TKG 服務叢集。叢集操作員會使用 Kubernetes RBAC 授與叢集存取權,並向開發人員指派角色權限。請參閱授與開發人員對 TKG 服務 叢集的 vCenter SSO 存取權

vSphere 命名空間 支援三個角色:可以編輯可以檢視擁有者。角色權限在託管 TKG 服務 叢集的 vSphere 命名空間 中進行指派,並且範圍也限定為此命名空間。請參閱設定 vSphere 命名空間 以便託管 TKG 服務 叢集

授與有 vSphere 命名空間可以編輯角色權限的使用者/群組可以在該 vSphere 命名空間 中建立、讀取、更新和刪除 TKG 服務 叢集。此外,為使用者/群組指派 可以編輯角色時,系統會在該 vSphere 命名空間 中的每個叢集上建立 RoleBinding,並將該權限繫結至名為 cluster-admin 的 Kubernetes ClusterRole。 cluster-admin 角色允許使用者在目標 vSphere 命名空間 中佈建和操作 TKG 服務叢集。可以在目標 vSphere 命名空間 中使用命令 kubectl get rolebinding 檢視此對應。
kubectl get rolebinding -n tkgs-cluster-namespace
NAME                                                           ROLE                         AGE
wcp:tkg-cluster-namespace:group:vsphere.local:administrators   ClusterRole/edit             33d
wcp:tkg-cluster-namespace:user:vsphere.local:administrator     ClusterRole/edit             33d

授與有 vSphere 命名空間可以檢視角色權限的使用者/群組對在該 vSphere 命名空間 中佈建的 TKG 服務 叢集物件具有唯讀存取權。但與可以編輯權限不同,對於可以檢視角色,不會在該 vSphere 命名空間 中的 TKGS 叢集上建立 Kubernetes RoleBinding。這是因為在 Kubernetes 中,沒有可以將授與有可以檢視權限的使用者/群組繫結到的同等唯讀角色。對於除 cluster-admin 以外的使用者,您可以使用 Kubernetes RBAC 授與存取權。請參閱授與開發人員對 TKG 服務 叢集的 vCenter SSO 存取權

授與有 vSphere 命名空間擁有者權限的使用者/群組可以管理該 vSphere 命名空間 中的 TKG 服務 叢集,並且可以使用 kubectl 建立和刪除其他 vSphere 命名空間。將使用者/群組指派給擁有者角色時,系統會建立 ClusterRoleBinding 並將其對應到允許使用者/群組使用 kubectl 建立和刪除 vSphere 命名空間 的 ClusterRole。無法使用相同的方法檢視此對應。必須使用 SSH 登入 主管 節點才能檢視此對應。
備註: 來自 vCenter Single Sign-On 身分識別來源的使用者支援擁有者角色。不能將擁有者角色與來自外部身分識別提供者的使用者/群組結合使用。

vSphere 權限

下表列出了各種 vSphere IaaS control plane 角色所需的 vSphere 權限類型。如果需要,您可以建立自訂 vSphere SSO 群組和角色,以進行工作負載管理。請參閱為平台營運人員建立專用群組和角色

表 1. vSphere with Tanzu 角色的 vSphere 權限
角色 vSphere 角色 vSphere SSO 群組 vSphere 命名空間
VI/雲端管理員 管理員 管理員 SSO 使用者和/或 AD 使用者
DevOps/平台營運人員 非管理員或自訂角色 ServiceProviderUsers SSO 使用者和/或 AD 使用者
開發人員 唯讀或無 SSO 使用者和/或 AD 使用者

系統管理員連線

管理員可以 kubernetes-admin 使用者身分連線至 TKG 服務 叢集節點。如果 vCenter Single Sign-On 驗證不可用,則此方法可能適用。出於疑難排解的目的,系統管理員可使用 SSH 和私密金鑰,以 vmware-system-user 身分連線至 TKG 服務。請參閱以 Kubernetes 管理員和系統使用者身分連線至 TKG 服務 叢集