2016-03-30 66 views
1

我試圖通過一個JSON文件中創建一個複製控制器我已經提到restartPolicy爲「從不」爲莢restartPolicy創建kubernetes ReplicationController失敗,因爲restartPolicy

但我得到一個錯誤,

錯誤: 的ReplicationController 「ngnix-RC」 是無效的。 * spec.template.spec.restartPolicy:不支持的值:「從不」:支持的值:始終

是否有V1.2,它僅支持「始終」作爲restartPolicy選項的任何變化?我很困惑。

我嘗試了另一個場景,我面對一個奇怪的行爲。 我指定的重新啓動策略爲「從未」,我得到了錯誤的,

錯誤: 的ReplicationController「ngnix-RC」是無效的。 * spec.template.spec.restartPolicy:不支持的值: 「從不」:支持的值:始終,onFailure處,決不 * spec.template.spec.restartPolicy:不支持的值: 「從不」:支持的值:始終

如發現的,在這種情況下有兩個錯誤。 我不知道確切的問題是什麼。

,我用來創建RC的JSON文件如下

{ 
    "kind":"ReplicationController", 
    "apiVersion":"v1", 
    "metadata":{ 
    "name":"ngnix-rc", 
    "labels":{ 
     "app":"webserver" 
    } 
    }, 
    "spec":{ 
    "replicas":1, 
    "selector":{ 
     "app":"webserver1" 
    }, 
    "template":{ 
     "metadata":{ 
     "name":"ngnix-pod", 
     "labels":{ 
      "app":"webserver1" 
     } 
     }, 
     "spec":{ 
     "containers":[ 
      { 
      "image":"ngnix", 
      "name":"nginx" 
      } 
     ], 
     "restartPolicy":"Never" 
     } 
    } 
    } 
} 
+1

我發現** ** ReplicationController只允許一個** ** restartPolicy是等於**「始終」 **。這是一個有效的嗎? 否則我需要使用**作爲** OnFailure **或**從不**選項。 但我需要部署一個Web服務器,我不能將其部署爲** Job **,並且應該將其部署爲** RC **。 在這種情況下,當部署爲** RC **時,容器會頻繁重新啓動,從而導致Web服務器無用。 這是什麼解決方案? –

回答

4

要擴大ZHB的回答是:雖然不同的重啓政策單莢意義,甚至對於運行到完成的作業,複製控制器的整個目的是保持一個pod的N個實例運行,因此表示不希望重新啓動的pod與這個概念沒有太大的關係。

的文檔的解釋,這是該部分:http://kubernetes.io/docs/user-guide/pod-states/#restartpolicy

+1

我明白了。但這裏的問題是吊艙經常重啓。我以前在v1.1中使用過相同的容器圖像,我沒有遇到這個問題。現在我在v1.2中使用了相同的圖像,並且容器經常重新啓動。如果存在任何問題,我將調試並嘗試查找Web服務器的問題。 –

+1

如果吊艙正在重新啓動,那麼一定會出現問題,禁用重新啓動將無法修復。我建議您查看故障排除指南:http:// kubernetes。io/docs/user-guide/debugging-pods-and-replication-controllers/ –

+1

我試着調試pod,發現在一個節點中運行的docker守護進程本身正在重新啓動,導致重新啓動容器。 –