2017-09-08 17 views
0

私はACS k8s Windowsクラスタセットアップと動作を得ました。早い段階で私はnodeSelectorを使う必要があることを発見しました。あるいはk8sは私のコンテナイメージがWindowsであっても私のポッドをマスターノード(Linux)に割り当てようとしました。私はこれを使用:CPU /メモリリソースとnodeSelectorを混在させると失敗する

nodeSelector: 
    beta.kubernetes.io/os: windows 

今、私は私のポッドとK8SにメモリとCPUリソースを割り当てるためにしようとしているが、適切なノードを見つけることができません。これは、このエラーを示しています

No nodes are available that match all of the following predicates:: Insufficient memory (2), MatchNodeSelector (1)

は、私は超小型、リソースの割り当てを持っており、私のノードがこれらの余地があります

resources: 
    requests: 
     memory: 1Mi 

そしてここでは、完全なK8S展開YAMLです:

apiVersion: apps/v1beta1 
kind: Deployment 
metadata: 
    name: forest-worker-res 
spec: 
    replicas: 1 
    revisionHistoryLimit: 0 
    selector: 
    matchLabels: 
     app: forest-worker 
    template: 
    metadata: 
     labels: 
     app: forest-worker 
     env: debug 
    spec: 
     containers: 
     - name: forest-worker 
      image: intmadras.azurecr.io/forest-worker 
      resources: 
      requests: 
       memory: 10Mi 
     nodeSelector: 
     beta.kubernetes.io/os: windows 
     imagePullSecrets: 
     - name: azurereg 

nodeSelectorを削除すると、depoymentは続行されますが、k8sがそれをマスターノードに割り当てるため、再度失敗します。だから私は立ち往生している。 nodeSelectorを使用してリソースを割り当てるにはどうすればよいですか?

+0

k8sファイルを表示できますか? –

+0

@ JasonYe-MSFT私は完全なk8の展開を追加しましたyaml – BrettRobi

答えて

0

@BrettRobi導入したk8のバージョンは? k8s windowsノードには、1.6で実装されたノードメトリック(CPU、メモリなど)がなく、最近1.7に追加されました。したがって、nodeSelectorはWindowsノードにデプロイする必要があります。 kubectl describe nodes、windowsノードにノードメトリックが正しく表示されているかどうかを確認できますか?

+0

お元気ですか? ACSは現在、k8s v1.6.6を導入中です。これは確かにこれが私のために働いていない理由を説明するでしょう。私はこれがもっと明らかではないことに驚いています。さまざまなバージョンのWindows上でk8を使って作業することが期待できるものを、どこに書いているのか分かりますか? – BrettRobi

関連する問題