如何保护kubernetes集群免受配置错误的影响?

时间:2016-07-13 13:24:28

标签: kubernetes google-kubernetes-engine

我尝试在测试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集群上工作,很容易发生一个错误导致集群中的所有服务崩溃。

什么是防止此类操作错误的工具或最佳做法?

1 个答案:

答案 0 :(得分:0)

对此有一些讨论,但还没有很好的解决方案。

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

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

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

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