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 使用者使用其身分識別提供者認證進行驗證。
角色權限和繫結
TKGS 叢集有兩種以角色為基礎的存取控制 (RBAC) 系統:vSphere 命名空間 權限和 Kubernetes RBAC 授權。作為 vSphere 管理員,您可以指派 vSphere 命名空間 權限,以允許使用者建立和操作 TKG 服務叢集。叢集操作員會使用 Kubernetes RBAC 授與叢集存取權,並向開發人員指派角色權限。請參閱授與開發人員對 TKG 服務 叢集的 vCenter SSO 存取權。
vSphere 命名空間 支援三個角色:可以編輯、可以檢視和擁有者。角色權限在託管 TKG 服務 叢集的 vSphere 命名空間 中進行指派,並且範圍也限定為此命名空間。請參閱設定 vSphere 命名空間 以便託管 TKG 服務 叢集。
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 IaaS control plane 角色所需的 vSphere 權限類型。如果需要,您可以建立自訂 vSphere SSO 群組和角色,以進行工作負載管理。請參閱為平台營運人員建立專用群組和角色。
角色 | 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 服務 叢集。