混合CPU /内存资源和nodeSelectors失败

时间:2017-09-08 18:04:20

标签: kubernetes azure-container-service

我有一个ACS k8s Windows群集设置和工作。早在我发现我需要使用nodeSelector或k8s会尝试将我的pod分配给主节点(Linux),即使我的容器图像是Windows。我用过这个:

  nodeSelector:
    beta.kubernetes.io/os: windows

现在我正在尝试将内存和CPU资源分配给我的pod并且k8s无法找到合适的节点。它显示了这个错误:

  

没有可用的节点匹配以下所有谓词::   内存不足(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并分配资源?

1 个答案:

答案 0 :(得分:0)

@BrettRobi你部署的k8s的版本是什么? k8s windows节点没有在1.6中实现的节点度量(cpu,内存等),最近被添加到1.7。因此需要将nodeSelector部署到Windows节点。您能否验证kubectl describe nodes,Windows节点是否正确显示节点指标?