【问题标题】:Can I have a K8s pod per user/firm?我可以为每个用户/公司拥有一个 K8s pod 吗?
【发布时间】:2019-11-04 21:03:24
【问题描述】:

有没有一种方法可以让每个用户/每个公司拥有一个 K8s pod?我意识到,每个用户/每个公司分组正在将业务级别语义与基础设施混为一谈,但我说出于监管原因等原因,我需要将事情分开。那么有没有一种方法可以在用户第一次登录时动态创建一个 pod 并保存这个 pod 引用并将任何进一步的请求路由到相关的 pod,该 pod 将托管一组容器,每个容器都运行一个实例模块。

  1. 这甚至可能吗?
  2. 如果可能,那些标识符是什么? 可以动态注入到 pod 中,我可以用它来识别这是 USER-A-POD 与 USER_B_POD 还是 FIRM_A_POD 与 FIRM_B_POD ? 实际上,我需要一个 pod 模板来帮助我创建具有 1 个副本的相同 pod,但它们的唯一不同之处在于它们仅提供与一个用户/一个公司相关的流量。

【问题讨论】:

    标签: kubernetes kubernetes-pod


    【解决方案1】:

    一般来说,如果您想从Kubernetes Service 将流量发送到特定的 pod,您会使用Labels and Selectors。例如,在 Service 中使用选择器 app: usera-app

    apiVersion: v1
    kind: Service
    metadata:
      name: usera-service
    spec:
      selector:
        app: usera-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
    

    然后使用标签app: usera-app 说出您的 pod 是否为 Deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: usera-deployment
    spec:
      selector:
        matchLabels:
          app: usera-app
      replicas: 2
      template:
        metadata:
          labels:
            app: usera-app
        spec:
          containers:
          - name: myservice
            image: nginx
            ports:
            - containerPort: 80
    

    更多信息here

    如何分配 pod 和部署取决于您以及您可能使用的任何配置。如果您想强制在部署/pods 中创建一些标签,您可以查看MutatingAdminssionWebhooks

    如果您正在寻找能够促进这一切的项目,您可以查看:

    其他可以帮助您进行认证和准入机制的工具(必须针对标签进行调整):

    【讨论】:

      【解决方案2】:

      是的,您可以使用命名空间为每个用户创建多个虚拟集群。

      https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

      命名空间是在用户之间划分集群的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 1970-01-01
        • 2016-05-22
        • 2011-09-17
        • 1970-01-01
        相关资源
        最近更新 更多