首先、异常的发现

Troubleshooting was easy... kubectl describe node <node> revealed the taint, and figuring out the required configuration change was simple.

$ kubectl get nodes
NAME      STATUS   ROLES    AGE   VERSION
homelab   Ready    master   23h   v1.17.0$ kubectl describe node homelab
Name:               homelab
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64beta.kubernetes.io/os=linuxkubernetes.io/arch=amd64kubernetes.io/hostname=homelabkubernetes.io/os=linuxnode-role.kubernetes.io/master=
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock                                             node.alpha.kubernetes.io/ttl: 0volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sat, 28 Dec 2019 13:28:27 -0800
Taints:             node-role.kubernetes.io/master:NoSchedule
Unschedulable:      false

官方描述

And there it is – by default, kubeadm init configured this node as a Kubernetes master, which would normally take care for managing other Kubernetes "worker" (or "non-master") nodes. The Kubernetes Concepts documentation describes the distinction between the Kubernetes master and non-master nodes as follows:

The Kubernetes Master is a collection of three processes that run on a single node in your cluster, which is designated as the master node. Those processes are: kube-apiserver, kube-controller-manager and kube-scheduler.Each individual non-master node in your cluster runs two processes:kubelet, which communicates with the Kubernetes Master.kube-proxy, a network proxy which reflects Kubernetes networking services on each node.

So anyway, as soon as I saw node-role.kubernetes.io/master:NoSchedule I began nodding my head, realizing what the issue was. One Google search returned me straight back to the very installation guide I followed I had skimmed over, and the instruction I had skipped:

Control plane node isolation
By default, your cluster will not schedule pods on the control-plane node for security reasons. If you want to be able to schedule pods on the control-plane node, e.g. for a single-machine Kubernetes cluster for development, run:

kubectl taint nodes --all node-role.kubernetes.io/master-

With output looking something like:

node "test-01" untainted taint "node-role.kubernetes.io/master:" not found taint "node-role.kubernetes.io/master:" not found

This will remove the node-role.kubernetes.io/master taint from any nodes that have it, including the control-plane node, meaning that the scheduler will then be able to schedule pods everywhere.

So... one quick kubectl taint nodes --all node-role.kubernetes.io/master- command later, and my single-node K8s cluster was now actually useful for running pods!

NOTE: there's a LOT more output from kubectl describe node <node> that this; I'm just trimming the rest for brevity; all we needed was this clue about the configured Taints.

nodes are available: 1 node(s) had taints that the pod didn‘t tolerate相关推荐

  1. 『已解决』0/1 nodes are available: 1 node(s) had taints that the pod didn‘t tolerate.

  2. k8s报错1 node(s) had taints that the pod didn‘t tolerate

    这是由于我们在自己pod的yaml中没有添加容忍,加入容忍就可以了,可以看我之前的博客 这里再补充一下 当不清楚集群中node的污点时,可以用以下命令查看和删除污点 kubectl describe ...

  3. Kubernetes default-scheduler 0/2 nodes are available: 2 node(s

    K8S pod 调度失败 问题 解决问题 问题   这个问题其实很简单,因为deployment(或其他控制器)或Pod的yaml文件中使用了nodeSelector,例如:下面的这个yaml文件: ...

  4. 缩放节点池 0/1 nodes are available: 1 node(s) didn‘t match Pod‘s node affinity.

    今天程序出问题了,某个namespace下的所有的Pods, 全部出于pending状态, 0/1 nodes are available: 1 node(s) didn't match Pod's ...

  5. 如何调整 k8s Node节点的最大可运行Pod数量

    环境介绍: Ubuntu 20.04.3 LTS kubeadm安装的k8s集群1.21.8 Kubernetes Node节点默认允许最多创建110个Pod,如何调整Node节点的最大可运行Pod数 ...

  6. default-scheduler 0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/disk-pressure: }

    基于污点的驱逐 FEATURE STATE: Kubernetes v1.18 [stable] 前文提到过污点的 effect 值 NoExecute会影响已经在节点上运行的 Pod 如果 Pod ...

  7. kubectl查看node状态_K8S故障排除方法 - 笃行之 - 博客园

    1.查看pods哪些是有问题的,Runningg正常,其他异常: /opt/kubernetes/bin/kubectl get pods --all-namespaces -owide NAMESP ...

  8. 使用kubeadm 安装 kuberntes 1.13.3

    # kubeadm安装kubernetes步骤说明: ## 第一步 ### 准备系统环境 - Repo仓库准备 1. docker-ce.repo 2. kubernetes.repo - 停用服务 ...

  9. CentOS7系统上Kubernetes集群搭建

    虚拟机创建 在自己的Mac系统里面利用Parallels Desktop创建3台虚拟机,具体信息如下: CentOS7-Node1: 10.211.55.7 parallels/centos-test ...

最新文章

  1. Android 微信支付步骤
  2. One order save debug screenshot
  3. linux配置iscsi无账号密码,linux配置ISCSI服务器的方法
  4. 华为路由器http诊断失败_高端家庭的标配,华为路由Q2 Pro是路由器中的吴彦祖...
  5. mysql中的页与磁盘关系_数据库和磁盘阵列的关系
  6. P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
  7. 函数的非固定参数,默认参数,参数组
  8. 【机器学习】模型优化改进建议
  9. 使用Docker部署前端项目实战教程,该踩的坑我都帮你踩了!
  10. canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
  11. 群晖万兆文件服务器,NAS进阶 篇三:2019年最具性价比的NAS硬件是什么暨黑群晖万兆搭建经验介绍...
  12. 51单片机的蜂鸣器写歌的音阶
  13. 2022年甘肃省安全员B证判断题及在线模拟考试
  14. mysql 导入工具 php_MySQL数据导入导出方法与工具介绍_PHP教程
  15. java forward怎么用_【后端开发】java中forward是什么
  16. 一般看不见的机械原理
  17. 利用百度地图api将excel中的经纬度数据可视化
  18. 我是阿圆,我们明年见。
  19. python_numpy_计算对数收益率和还原问题
  20. 总结java重载和重写的区别

热门文章

  1. 临床试验中edc录入_临床试验中使用EDC的情况?
  2. 加载组件Already included file name ‘e:/Vuejs/组件/单文件组件/vue_test/src/components/Message.vue‘ differs from
  3. Linux系统:基础IO
  4. windows 如何批量修改文件后缀名?
  5. Java 并发编程之美:并发编程高级篇之一
  6. 【云原生】K8s简介之什么是K8s
  7. 回文子串是什么意思?
  8. Java代码实现MD5加密的两种方式
  9. starcraft2 html 资源,最新HTML5版星际争霸完全版源码
  10. css图片适应盒子大小