mcpField
G
gke-multi-tenancy

gke-multi-tenancy

github.com/googlecloudplatform云与 DevOps16948 次安装3 天前更新
代码仓库

关于 gke-multi-tenancy

gke-multi-tenancy 为使用 Google Kubernetes Engine(GKE)的团队提供多租户与治理实践,涵盖命名空间隔离、权限控制和资源配额。

主要功能

  1. 01按租户划分命名空间
  2. 02配置最小权限 RBAC
  3. 03设置资源配额
  4. 04结合网络策略隔离流量

适用场景

  1. 01为不同团队隔离 GKE 工作负载
  2. 02限制用户和服务账号权限
  3. 03防止单个租户占用过多资源

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/googlecloudplatform/gke-mcp --skill gke-multi-tenancy

安装后在 Claude Code 中输入/gke-multi-tenancy确认已加载。

详细介绍

GKE 多租户与治理

本技能提供有关在 Google Kubernetes Engine (GKE) 集群中实施多租户与治理的指导。

概述

多租户允许多个团队或应用安全地共享单个 GKE 集群。治理可确保策略和资源限制得到执行。

工作流

1. 创建命名空间以实现隔离

命名空间为名称提供作用域,是 Kubernetes 中的主要隔离单位。

步骤:

  1. 为每个租户创建一个命名空间。

命名空间清单示例:

apiVersion: v1
kind: Namespace
metadata:
  name: tenant-a
  labels:
    team: alpha
2. 配置 RBAC,以遵循最小权限原则

基于角色的访问控制(RBAC)可用于控制谁能访问命名空间内的哪些资源。

步骤:

  1. 定义一个具有特定权限的 Role。
  2. 使用 RoleBinding 将 Role 绑定到用户或群组。

Role 和 RoleBinding 清单示例:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: tenant-a
  name: pod-reader
rules:
  - apiGroups: [""] # "" indicates the core API group
    resources: ["pods"]
    verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: tenant-a
subjects:
  - kind: User
    name: [email protected] # Name is case sensitive
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
3. 强制执行资源配额

资源配额可防止单个租户耗尽集群中的所有资源。

ResourceQuota 清单示例:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: tenant-a-quota
  namespace: tenant-a
spec:
  hard:
    requests.cpu: "2"
    requests.memory: 4Gi
    limits.cpu: "4"
    limits.memory: 8Gi

最佳实践

  1. 每个租户使用一个命名空间:始终为不同团队或应用使用独立的命名空间。
  2. 遵循最小权限原则配置 RBAC:仅授予用户和服务账号完成工作所需的权限。
  3. 强制执行配额:使用资源配额确保公平共享集群资源。
  4. 网络策略:将命名空间与网络策略结合使用(参见 gke-workload-security),以限制跨租户流量。

评论

支持 Markdown