我有一个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并分配资源?
答案 0 :(得分:0)
@BrettRobi你部署的k8s的版本是什么? k8s windows节点没有在1.6中实现的节点度量(cpu,内存等),最近被添加到1.7。因此需要将nodeSelector部署到Windows节点。您能否验证kubectl describe nodes
,Windows节点是否正确显示节点指标?