Security - User Management with Kubernetes Context
Kubernetes Context 是什麼?
Kubernetes Context 是 kubectl 用來管理多個 Kubernetes 叢集與使用者身份的機制,使開發者能夠快速切換不同的環境。
Context 的組成
一個 Kubernetes Context 由以下幾個部分組成:
- Cluster:指向 Kubernetes 叢集的 API 伺服器地址(
server參數)。 - User:與該 Context 相關聯的用戶憑證,決定使用者身份與權限。
- Namespace:設定預設的命名空間,避免在
kubectl命令中手動指定。
可以使用 kubectl config get-contexts 來查看所有可用的 Context,並使用 kubectl config use-context <context-name> 切換至指定的 Context。
Context 的範例
kubectl.exe config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://kubernetes.docker.internal:6443
name: docker-desktop
contexts:
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
user:
client-certificate-data: DATA+OMITTED
client-key-data: DATA+OMITTED
Context 重點整理
1. Clusters
- 定義 Kubernetes 叢集的連線資訊。
- 包含 certificate-authority-data (憑證) 及 server (API 伺服器位址)。
- 此處設定的叢集名稱為 docker-desktop,位於
https://kubernetes.docker.internal:6443。
2. Contexts
- 指定 Kubernetes 操作的預設環境。
- 由 cluster (叢集) 和 user (使用者憑證) 組成。
- 當前 context 為 docker-desktop,使用 docker-desktop 叢集與對應的使用者。
3. Users
- 定義與 Kubernetes 互動的憑證資訊。
- 這裡的使用者 docker-desktop 透過 client-certificate-data 及 client-key-data 進行驗證。
建立與管理 Context
新增 Context
kubectl.exe config set-context my-context --cluster=my-cluster --user=my-user --namespace=default
---
Context "my-context" created.