【问题标题】:No taints on kubernetes master nodeKubernetes 主节点上没有污点
【发布时间】:2021-07-06 06:33:55
【问题描述】:

规格:

  • 操作系统:Ubuntu 20.04
  • kubernetes 版本:1.21.1

据我所知,默认情况下主节点上会有污点(node-role.kubernetes.io/master)。但是,我的集群上的任何主节点上都没有污染

root@master3:~# `kubectl get node `

`NAME      STATUS   ROLES                  AGE   VERSION`

`master1   Ready    control-plane,master   25h   v1.21.1`

`master2   Ready    control-plane,master   25h   v1.21.1`

`master3   Ready    control-plane,master   25h   v1.21.1`

`worker1   Ready    <none>                 25h   v1.21.1`

`worker2   Ready    <none>                 25h   v1.21.1`

root@master3:~# `kubectl describe node master | grep -i taints`

`Taints:             <none>`<p>
`Taints:             <none>`<p>
`Taints:             <none>`<p>

并且一些 pod 被调度在 master 节点上

root@master3:~# kubectl get pod -o wide | grep master <p>
nginx-test-5dbdb6f988-dfmcv   1/1     Running   0          23m   10.233.97.35    master1   <none>           <none><p>
nginx-test-5dbdb6f988-flm4h   1/1     Running   0          22m   10.233.97.36    master1   <none>           <none><p>

这里是部署 nginx-test 的 yaml

root@master3:~# `kubectl get deployment nginx-test -o yaml`<p>
`apiVersion: apps/v1`<p>
`kind: Deployment`<p>
`metadata:`<p>
`  annotations:`<p>
`    deployment.kubernetes.io/revision: "10"`<p>
`  creationTimestamp: "2021-07-06T01:33:19Z"`<p>
`  generation: 23`<p>
`  labels:`<p>
`    app: nginx-test`<p>
`  name: nginx-test`<p>
`  namespace: default`<p>
`  resourceVersion: "175269"`<p>
`  uid: 4a08b870-1b31-4d66-b39f-d25c70e4e22d`<p>
`spec:`<p>
`  progressDeadlineSeconds: 600`<p>
`  replicas: 15`<p>
`  revisionHistoryLimit: 10`<p>
`  selector:`<p>
`    matchLabels:`<p>
`      app: nginx-test`<p>
`  strategy:`<p>
`    rollingUpdate:`<p>
`      maxSurge: 25%`<p>
`      maxUnavailable: 25%`<p>
`    type: RollingUpdate`<p>
`  template:`<p>
`    metadata:`<p>
`      annotations:`<p>
`        kubectl.kubernetes.io/restartedAt: "2021-07-06T14:52:42+09:00"`<p>
`      creationTimestamp: null`<p>
`      labels:`<p>
`        app: nginx-test`<p>
`    spec:`<p>
`      containers:`<p>
`      - image: nginx`<p>
`        imagePullPolicy: Always`<p>
`        name: nginx`<p>
`        resources: {}`<p>
`        terminationMessagePath: /dev/termination-log`<p>
`        terminationMessagePolicy: File`<p>
`      dnsPolicy: ClusterFirst`<p>
`      restartPolicy: Always`<p>
`      schedulerName: default-scheduler`<p>
`      securityContext: {}`<p>
`      terminationGracePeriodSeconds: 30`<p>
`status:`<p>
`  availableReplicas: 15`<p>
`  conditions:`<p>
`  - lastTransitionTime: "2021-07-06T05:44:30Z"`<p>
`    lastUpdateTime: "2021-07-06T05:44:30Z"`<p>
`    message: Deployment has minimum availability.`<p>
`    reason: MinimumReplicasAvailable`<p>
`    status: "True"`<p>
`    type: Available`<p>
`  - lastTransitionTime: "2021-07-06T01:33:19Z"`<p>
`    lastUpdateTime: "2021-07-06T06:03:41Z"`<p>
`    message: ReplicaSet "nginx-test-5dbdb6f988" has successfully progressed.`<p>
`    reason: NewReplicaSetAvailable`<p>
`    status: "True"`<p>
`    type: Progressing`<p>
`  observedGeneration: 23`<p>
`  readyReplicas: 15`<p>
`  replicas: 15`<p>
`  updatedReplicas: 15`<p>

【问题讨论】:

  • 您好@JAESANGPARK,欢迎来到 StackOverflow!您能否检查一下您的 Kubespray 库存文件,看看您的主节点是否在 kube-master 部分中,而不是在 kube-node 中?

标签: kubernetes


【解决方案1】:

控制平面节点上的污点不是必需的。这一切都取决于你如何安装 Kubernetes 以及它想要的东西。例如,单节点安装程序不设置它们,否则将无法运行。

【讨论】:

  • 那么,既然我用 kubespray 安装了 Kubernetes,那么我的控制平面节点上就没有 Taints 了吗?那你知道为什么其他master节点(master2,master3)没有调度吗?
  • 来自代码 (github.com/kubernetes-sigs/kubespray/blob/…) 我认为这意味着您将同一个节点标记为控制平面和工作线程?不确定,但请盯着那个代码直到你理解它:)
  • 盯着你给我的代码看了一会儿,我才知道为什么会出现这个问题。根据代码,该任务将删除inventory_hostname 中节点的项目的污点。我发现我在 [kube_node] 上列出了主节点,这使得任务删除了主节点上的污点。非常感谢。
  • 你好@JAESANGPARK。这不是我让你检查我之前的评论吗? ;) 我将发布一个单独的答案来反映这一点,以提高知名度。
【解决方案2】:

正如我在之前的评论中已经提到的,问题是由于主节点列在 Kubespray 清单文件的 [kube-node] 部分而不是正确的 [kube-master] 部分下。这导致污点被删除。将主节点放在[kube-master] 部分将解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2019-01-21
    • 1970-01-01
    • 2020-04-10
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多