2016-07-13 85 views
0

我試圖在測試kubernetes簇(1.2.5),人們可以很容易地通過創建衝突的一對複製控制器(第一)和部署(之後),例如過載的羣集:如何保護kubernetes集羣免遭配置錯誤?

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集羣上工作,就很容易發生這樣的錯誤,即集羣上的所有服務都會失效。

什麼是防止此類操作錯誤的工具或最佳實踐?

回答

0

對此有一些討論,但還沒有很好的解決方案。

外Kubernetes的,你可能需要編寫一個腳本來describe所有ReplicationControllers/ReplicaSets /部署,並確保新的一個要添加允許kubectl create調用之前沒有重疊的選擇。

內Kubernetes,還有其他一些可能的解決方案:

  • kubectl能做的重疊選擇檢查。
  • 豆莢可以由控制器「擁有」,以便它們不會被爭奪。

您可以將您的想法來https://github.com/kubernetes/kubernetes/issues/2210