当前位置: 首页 > 知识库问答 >
问题:

当pod在kubernetes节点上被调度或未调度时,如何在该节点上运行操作(不在容器内)?

尹冠宇
2023-03-14

每当 Pod 在其上计划或取消计划时,我都需要在节点 shell 级别(而不是容器内)运行脚本。我已经搜索了文档,但只找到了添加在容器内运行的钩子的方法(https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/、https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes)。Kubernetes 是否有一个 API 可以用来以某种方式实现这一目标?谢谢!

共有1个答案

佴保臣
2023-03-14

这是你应该做的

  1. 使用事件导出器来捕获这些事件
  2. 部署网络钩子服务
  3. 调用网络钩子当sheules或unsheules事件发生时
  4. 通过网络钩子,您应该能够触发脚本
 类似资料:
  • 我们在一个3节点kubernetes集群上用3个pods运行我们的应用程序。当我们部署应用程序时,有时,pods被调度到同一个kubernetes节点。 我们希望我们的 Pod 以这样一种方式调度,即它将我们的 Pod 分布在节点上(同一应用程序的 2 个 Pod 不应该是同一个节点)。事实上,根据文档(https://kubernetes.io/docs/concepts/configurati

  • 如何强制调度器以循环方式在节点上运行pod,以便如果任何节点宕机,那么至少有一个节点将NGINX pod处于运行模式。 这到底有没有可能?如果可能,我们如何实现这一场景?

  • 我已经配置了一个混合节点Kubernetes集群。两个工作节点是Unbuntu服务器18.04.4,两个工作节点是Windows Server 2019标准。我已经将几个Docker容器作为部署/吊舱部署到每一组工作节点(Ubuntu上的.NET核心应用程序和Windows上的遗留WCF应用程序)。一切似乎都如广告所说的那样有效。 我已经检查了在Windows节点上安装/配置kubelet的Pow

  • 我刚开始用几个Raspberry pi设备创建自己的Kubernetes集群。我用的是Alex Ellis的指南。但是我有一个问题,我的NodePort只能从实际运行容器的Pod中工作。因此没有从不运行容器的Pod进行重定向。 服务部署(&D kubectl get服务 在不同于主机的节点上和总是返回连接定时。 sudo iptables-保存(在230主节点上) sudo iptables-保存

  • 我的Kubernetes设置: v1.16.2裸机 1主节点:用于Jenkins master+Docker注册表 5个从节点:用于Jenkins JNPL从节点 我使用kubernetes-plugin来运行奴隶码头代理。标记为“Jenkins=slave”的所有从k8节点。当我将nodeSelector(“Jenkins=slave”)用于podTemplate时,kubernetes总是在同

  • 使用复制控制器,当我调度一个pod的2个(两个)副本时,我期望每个节点中各有1个(一个)副本。相反,我发现两个副本都是在同一个吊舱中创建的。这将使1个节点成为我需要避免的单点故障。 对于2个pod:节点A中的1个pod,节点B中的1个pod 对于3个吊舱:节点A中的2个吊舱,节点B中的1个吊舱,kubernetes可以根据资源可用性进行调度 有没有正确配置的建议吗?