每个用户/公司可以拥有K8s吊舱吗?

时间:2019-11-04 21:03:24

标签: kubernetes kubernetes-pod

有没有办法让每个用户/每个公司拥有一个K8s吊舱?我意识到,每个用户/每个公司的分组正在将业务级别的语义与基础架构混合在一起,但是我说出于监管等原因,我有此需求,以使事情分开。然后,有一种方法可以在用户首次登录并即时持有此Pod参考并将任何其他请求路由到相关Pod时动态创建Pod,该Pod将托管一组容器,每个容器运行一个容器的一个实例。模块。

  1. 这有可能吗?
  2. 如果可能的话,那些标识符是什么? 可以即时注入到吊舱中,我可以用来识别这是 USER-A-POD与USER_B_POD还是FIRM_A_POD与FIRM_B_POD? 实际上,我需要一个Pod模板,该模板可以帮助我创建1个副本的相同Pod,但是它们唯一的区别是它们仅服务与一个用户/一家公司相关的流量。

2 个答案:

答案 0 :(得分:1)

通常,如果您要将流量从Kubernetes Service发送到特定的广告连播,则可以使用Labels and Selectors。例如,在服务中使用选择器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说出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和部署取决于您以及您可以使用的任何配置。如果您想在部署/吊舱中强制创建一些标签,可以查看MutatingAdminssionWebhooks

如果您正在寻找可以促进所有这些目的的项目,则可以看看:

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

答案 1 :(得分:0)

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

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

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