2017-07-08 75 views
1

使用Kubernetes 1.7.0,這裏的目的是能夠部署MySQL/MongoDB/etc,並使用本地磁盤作爲存儲支持;而Kubernetes則可以自動縮放網站頭和處理窗格。爲了這些目標,我已經通過頭盔部署到Kubernetes的本地永久存儲

  • 設置&部署Local Persistent Storage provisioner自動提供本地連接磁盤到莢Persitent卷索賠。
  • 手動創建的一個持久卷權利要求,其成功,並在本地卷附着
  • 試圖通過掌舵通過

    舵部署MariaDB的安裝--name的MySQL --set persistence.storageClass =默認穩定/ mariadb

  • 這似乎成功了;但去到儀表板,我得到

存儲節點關聯性檢查失敗卷 「本地-PV-8ef6e2af」:NodeSelectorTerm [{鍵:kubernetes.io/hostname操作:在值:[kubemaster ]}]與節點標籤不匹配

我懷疑這可能是由於舵圖不包括nodeaffinity。除了手動更新每個圖表之外,是否有一種方法可以讓helm部署到配置器具有卷的同一個窗格中?

+0

也許你可以考慮使用NFS而不是附加本地卷? –

回答

1

不幸的是,沒有。您需要指定節點關聯性,以便Pod位於本地存儲所在的節點上。請參閱docs on Node Affinity瞭解添加到掌舵圖表的內容。

我懷疑它會在你的情況下看起來如下所示。

affinity: 
    nodeAffinity: 
    requiredDuringSchedulingIgnoredDuringExecution: 
     nodeSelectorTerms: 
     - matchExpressions: 
     - key: kubernetes.io/hostname 
      operator: In 
      values: 
      - kubemaster 

順便說一下,這不僅僅是在節點級別,而且還會在AWS和GCP等雲環境的區域級別發生。在這些環境中,持久性磁盤是區域性的,並且需要您設置NodeAffinity,以便在部署到多區域羣集時,Pod使用永久磁盤進入區域。

另外,它看起來像你正在部署到Kubernetes主?如果這樣做可能不可取,因爲MySQL可能會影響主控的操作。