如何强制调度器以循环方式在节点上运行pod,以便如果任何节点宕机,那么至少有一个节点将NGINX pod处于运行模式。
这到底有没有可能?如果可能,我们如何实现这一场景?
参考资料:Kubernetes在行动第16章。高级调度
具有requiredDuringSchedulingIgnoredDuringExecution的podAntiAfinity可用于防止将相同的pod调度到相同的主机名。如果喜欢更宽松的约束,请使用PreferredDuringSchedulingIgnoredDuringExecution。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 5
template:
metadata:
labels:
app: nginx
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: <---- hard requirement not to schedule "nginx" pod if already one scheduled.
- topologyKey: kubernetes.io/hostname <---- Anti affinity scope is host
labelSelector:
matchLabels:
app: nginx
container:
image: nginx:latest
您可以在kubelet配置中为一个节点指定最大的pod数,以便在node down的情况下,它将防止K8S用故障节点的pod使另一个节点饱和。
我的Kubernetes设置: v1.16.2裸机 1主节点:用于Jenkins master+Docker注册表 5个从节点:用于Jenkins JNPL从节点 我使用kubernetes-plugin来运行奴隶码头代理。标记为“Jenkins=slave”的所有从k8节点。当我将nodeSelector(“Jenkins=slave”)用于podTemplate时,kubernetes总是在同
我已经设置了普罗米修斯,通过跟踪普罗米修斯留档来监控库本内斯的指标。 普罗米修斯现在有很多有用的指标。 但是,我看不到任何引用我的pod或节点状态的指标。 理想情况下-我希望能够绘制pod状态(运行,挂起,CrashLoopBackoff,错误)和节点(NodeNow,就绪)。 这个度量单位在哪里?如果没有,我可以添加到某个地方吗?怎么做?
TiDB 是高可用数据库,可以在部分数据库节点下线的情况下正常运行,因此,我们可以安全地对底层 Kubernetes 节点进行停机维护。在具体操作时,针对 PD、TiKV 和 TiDB 实例的不同特性,我们需要采取不同的操作策略。 本文档将详细介绍如何对 Kubernetes 节点进行临时或长期的维护操作。 环境准备: kubectl tkctl jq 注意: 长期维护节点前,需要保证 Kuber
我对container worrld是新手,并试图在两个linux VM中本地设置一个kubernetes集群。在集群初始化期间,它卡在 KubeADM-1.6.0-0.x86_64.rpm KubectL-1.6.0-0.x86_64.rpm Kubelet-1.6.0-0.x86_64.rpm
我创建了一个kubernetes集群进行测试。但不能创建RC。我得到错误:
我试图找到这个问题的答案,但在kubernetes文档或任何问答论坛中都找不到。 我有一个运行有4个节点的kubernetes集群。是否可以创建第二个集群,重用前一个集群中的一个或多个节点?或者一个节点被限制在单个kubernetes集群中? 我正在使用RKE(用于部署k8集群的牧场工具)运行实际的集群,我发现这个问题让我怀疑这种可能性。 感谢您的澄清。