當新增節點池時,gcloud GKE 會重新啟動 pod

當新增節點池時,gcloud GKE 會重新啟動 pod

我們使用 gcloud kubernetes 引擎進行機器學習演算法開發。我們設定了一個包含一個 pod 的叢集來進行程式碼開發,然後啟動一個包含 256 個可搶佔式 Minion 的臨時節點池,以在我們的資料集上測試演算法。開發人員透過 ssh 進入開發 Pod,編輯程式碼,然後在 Minion 池上執行 kuberenetes 作業。

問題是,當我們創建 Minions 節點池時,預設池中的開發 Pod 經常(並非總是)被殺死並重新啟動。為什麼? Minion節點池啟動通常需要3-5分鐘左右。看來 gcloud 必須升級預設節點池才能容納 minions 節點池。有沒有辦法預先分配叢集以避免重啟,或減少minions的啟動時間?

這是我正在使用的命令:

  1. 建立初始叢集:

    gcloud beta container clusters create $CLUSTER_NAME \
            --machine-type=n1-highmem-4 \
            --min-cpu-platform="Intel Sandy Bridge" \
            --num-nodes=1 \
            --enable-autoscaling \
            --min-nodes=1 \
            --max-nodes=4 \
            --disk-size=50 \
            --node-labels=algoalpha=control \
            --scopes=cloud-platform,cloud-source-repos-ro   
    

    建立叢集腳本:https://gist.github.com/4590040f27f3cf17562baae5ae245b60

  2. 創建小小兵

    gcloud beta container node-pools create algoalpha-minions \
           --cluster $CLUSTER_NAME \
           --enable-autoscaling \
           --num-nodes=$NUM_NODES \
           --min-nodes=0 \
           --max-nodes=$((NUM_NODES * 2)) \
           --preemptible \
           --machine-type=n1-highmem-16 \
           --disk-size=20 \
           --min-cpu-platform="Intel Sandy Bridge" \
           --node-labels=algoalpha=minion \
           --node-taints=cloud.google.com/gke-preemptible="true":NoSchedule
    

    創建minions腳本:https://gist.github.com/1391658975d3a28444ac823233c334da

有一個更好的方法嗎?

相關內容