kubernetes - Kubernetes 集群行为
问题描述
今天我用 3 个运行 Redhat Linux 8.0 的 VMS 设置了 Kubernetes 集群。我也能够部署服务和 Pod,但考虑到 Pod 托管在节点/工作人员而不是主服务器上,我无法理解主服务器的角色,这是正确的吗?
我的集群:
服务器:大师
Serverthree:工作节点
Serverfour:工作节点
我从这里部署了示例服务(带有 3 个副本)
我看到所有三个 pod 都在运行,但“1”在我的主节点 serverone 上运行。
hello-kubernetes-594f6f475f-hkn85 Running serverone
hello-kubernetes-594f6f475f-mct2r Running serverfour
hello-kubernetes-594f6f475f-vjchd Running serverfour
知道为什么我看到 POD 在主节点上运行吗?
我的集群技术详情....
NAME STATUS ROLES AGE VERSION
serverfour Ready worker4 40m v1.18.3
serverone Ready master 3d3h v1.18.3
serverthree NotReady worker3 20h v1.18.3
解决方案
通常,kubernetes 集群部署工具将主节点标记为Unschedulable
防止调度程序将 pod 放置到主节点上。但是当以下所有条件都为真时,Pod 可能会被安排到主节点
- 主节点有
Unschedulable: false
标志。您可以通过使用描述节点来检查这一点kubectl describe node serverone
- 它没有任何
taints
效果NoSchedule
- 如果它有污点(如第 2 条所述),但您
tolerations
在 pod 规范中提到了这些taints
.
更多关于污点和容忍在这里
推荐阅读
- c++ - 对元素的向量或指向元素的指针进行排序
- php - 如何合并 $u_activity[$key] 和 $u_activity_event[$key] 结果集返回的结果集
- angular - 我正在尝试使用带有角度的茉莉花来测试来自服务的 api 请求,但没有成功
- go - 我可以创建一个与另一个签名相同的函数吗?
- highcharts - 在特定的向下钻取级别初始化 Highcharts 树状图
- postgresql - 优化触发器添加审计日志
- xcode - 如何正确签署 Mac 应用程序以进行自我分发?
- nginx - 如何从 X-frame-options 同源中排除我服务器上的指定路径?
- javascript - 重新构造数组
- java - 如何让人们在不编辑代码的情况下配置数据库信息