【问题标题】:How to protect kubernetes cluster against configuration errors?如何保护 Kubernetes 集群免受配置错误的影响?
【发布时间】:2016-07-13 13:24:27
【问题描述】:

我在一个测试 kubernetes 集群 (1.2.5) 中进行了尝试,通过创建一对冲突的复制控制器(首先)和部署(之后),可以轻松地使集群过载,例如:

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx2
spec:
  replicas: 3
  selector:
    app: nginx
  template:
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

对抗

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

因此,如果多个团队成员在同一个 Kubernetes 集群上工作,很容易发生一个错误导致集群上的所有服务宕机。

有哪些工具或最佳实践可以防止此类操作错误?

【问题讨论】:

    标签: kubernetes google-kubernetes-engine


    【解决方案1】:

    已经对此进行了一些讨论,但还没有好的解决方案。

    在 Kubernetes 之外,您可能必须向 describe 所有 ReplicationControllers/ReplicaSets/Deployments 编写脚本,并确保您添加的新选择器在允许 kubectl create 调用之前没有重叠选择器。

    在 Kubernetes 内部,还有一些其他可能的解决方案:

    • kubectl 可以进行重叠选择器检查。
    • Pod 可以由控制器“拥有”,这样它们就不会被争夺。

    您可以将您的想法添加到https://github.com/kubernetes/kubernetes/issues/2210

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 2010-10-01
      • 2015-10-26
      • 1970-01-01
      • 2014-04-01
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多