在带有污点标签的主节点上部署 helm

Deploy helm on master node with taints labels

您好,我正在尝试在主节点上初始化 helm tiller。

主节点是:

Name:               ip-10-3-196-251.ec2.internal
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=m4.xlarge
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=us-east-1
                    failure-domain.beta.kubernetes.io/zone=us-east-1a
                    kubernetes.io/role=master
Annotations:        node.alpha.kubernetes.io/ttl=0
                    scheduler.alpha.kubernetes.io/taints=[{"key":"dedicated","value":"master","effect":"NoSchedule"}]
                    volumes.kubernetes.io/controller-managed-attach-detach=true
CreationTimestamp:  Mon, 01 Jun 2020 12:50:53 +0200
Taints:             node-role.kubernetes.io/master=true:NoSchedule
Unschedulable:      false

...
...
...

我是运行这个:

helm init \
    --history-max=1000 \
    --service-account tiller \
    --node-selectors "kubernetes.io/role=master" \
    --override spec.template.spec.tolerations[0].key=node-role.kubernetes.io/master \
    --override spec.template.spec.tolerations[0].effect=NoSchedule \
    --skip-refresh \
    --upgrade

但是当我描述 pod 时我变得静止

Events:
  Type     Reason             Age                From                Message
  ----     ------             ----               ----                -------
  Normal   NotTriggerScaleUp  1m (x86 over 16m)  cluster-autoscaler  pod didn't trigger scale-up (it wouldn't fit if a new node is added): 9 node(s) didn't match node selector
  Warning  FailedScheduling   1m (x57 over 17m)  default-scheduler   0/11 nodes are available: 1 Insufficient cpu, 3 PodToleratesNodeTaints, 8 MatchNodeSelector.e

你知道哪里不对吗?

主节点有污点node-role.kubernetes.io/master=true:NoSchedule但你在命令中给出了node-role.kubernetes.io/master:NoSchedule

使用下面的命令

helm init \
    --history-max=1000 \
    --service-account tiller \
    --node-selectors "kubernetes.io/role=master" \
    --override spec.template.spec.tolerations[0].key=node-role.kubernetes.io/master \
    --override spec.template.spec.tolerations[0].operator=Equal \
    --override spec.template.spec.tolerations[0].value=true \
    --override spec.template.spec.tolerations[0].effect=NoSchedule \
    --skip-refresh \
    --upgrade