2017-06-23 153 views
1

因此,我正在爲我的集羣編寫自定義自動重新排定程序,並且正在使用Python客戶端庫來執行此操作。由於重新調度程序仍處於建議階段,並且沒有做任何事情,唯一已知的方法是從被濫用的節點中刪除該容器,並讓複製控制器和調度程序負責其餘部分(創建一個新容器並將其分配給適當的節點)。我想知道的是,我可以使用客戶端庫將Pod從一個節點移動到另一個節點而不刪除該Pod。基本上,我想先在適當的節點中創建一個容器,然後刪除過度使用的節點中的容器。那可能嗎?Re將pod從一個節點調度到另一個節點

回答

0

使用節點標籤可以在匹配節點中啓動容器。首先,您需要設置節點標籤並更新部署文件並應用它。

這裏是我用於藍綠色部署的示例yml文件,請參閱此幫助。節點標記的幅材

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: webserver-blue 
spec: 
    replicas: 2 
    template: 
    metadata: 
     labels: 
     type: webserver 
     color: blue 
    spec: 
     containers: 
     - image: nginx:1.12.0 
     name: webserver-container 
     ports: 
     - containerPort: 80 
      name: http-server 
     nodeSelector:   
     svrtype: web 
運行

  1. web服務器
  2. 設置另一節點標籤作爲newweb和更新和部署具有不同的名稱和節點標籤配置。
apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: webserver-green 
spec: 
    replicas: 2 
    template: 
    metadata: 
     labels: 
     type: webserver 
     color: green 
    spec: 
     containers: 
     - image: nginx:1.13.0 
     name: webserver-container 
     ports: 
     - containerPort: 80 
      name: http-server 
     nodeSelector:   
     svrtype: newweb 

測試時,可以刪除舊後。這裏的問題是您可以一次只將流量定向到一個部署。

+0

但是pod與部署相關聯,並且如果有多個pod,並且您只想將一個pod分配給特定節點,那麼您如何執行此操作? –

+0

我建議像藍綠色部署。但只能想到你需要改變吊艙名稱。例如。 https://github.com/thesandlord/container-orchestration-comparisons/tree/master/blue-green-deployment/kubernetes – sfgroups

相關問題