问题标签 [daemonset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - kubernetes 上的 cAdvisor 无法识别新创建的节点池(仅识别一个 cadvisor 节点池而不识别其他节点池)
我是 Kubernetes 的新手。我想从 kubernetes 集群中存在的所有 cAdvisor pod 获取容器指标。我已将 cAdvisor 部署为集群上的守护程序集。下面是yaml文件。
我只能看到 cAdvisor 部署在一个节点池的每个节点上。不在新创建的。如何做到这一点?
用于 kubernetes 的cAdvisor daemonset yaml文件:
prometheus.yml 文件:
更新:我可以看到仅从其中一个节点池 pod 中抓取的容器指标。如何也从新添加的节点池中获取容器指标?
kubernetes - From a container that is part of a DaemonSet, how can I look up the labels on "the node on which I am running"?
I have a service running as a DaemonSet
across a number of kubernetes nodes. I would like to make some policy decisions based on the labels of the node on which each DaemonSet
pod is running. From within a container, how do I know on which node this pod is running? Given this information, looking up the node labels through the API should be relatively easy.
What I'm doing right now is passing in the node name as an environment variable, like this:
Is that the correct way of getting at this information? More specifically, is there any sort of API call that will answer the question, "where am I?"?
kubernetes - kubernets:daemonset:OnDelete 策略未按预期工作
kubernetes 版本:1.21.1 主机:Linux CO4AEAP000110FB 5.0.0-1032-azure #34-Ubuntu
我应用了一个带有“OnDelete”的守护进程作为更新策略。这会在两个节点中运行 pod。我将 nodeAffinity 更新为不在其中一个节点中部署(排除一个节点)并应用更新的守护程序集(kubectl apply -f ...)
期望: daemonet pods 继续在两个节点中运行,即使一个被添加到反关联中,因为 OnDelete 应该只在 pod 删除时起作用。后来当我手动删除excluded-node中的pod时,我希望k8s不会重新部署
发生了什么: k8s 立即终止了排除节点上的 pod。
我什至尝试过“kubectl cascade=orphan apply -f”
守护进程:
任何提示将非常方便?
谢谢!
elasticsearch - 将数据发送到 Elastic Cloud 时,在指标节拍中添加新字段
目前的情况是来自不同集群的所有日志都混合在同一个索引中。
我正在使用在集群中作为守护程序集运行的 metric beats。我们需要相同的仪表板,我们可以在其中列出集群,以便查看此仪表板的人可以使用相同的仪表板来查看不同的集群指标。在 Kibana 有什么方法可以做到这一点吗?
从 Kibana 的控件中,我可以创建一个下拉列表供用户选择,但我想添加一个新字段,该字段对于每个集群都是唯一的。我们可以添加一个这样的字段,以便我可以使用控制选项对日志进行分类。
请建议是否有任何解决方案
azure - 比较 Azure 集群中的 docker 镜像
我最近从 AWS 切换到 Azure,但在让 docker 在我的守护进程中运行时遇到了问题。
在 AWS 上,我正在提取 Pod 的图像并执行 docker diff 以将该图像与原始图像进行比较。
但是现在在 Azure 上,我无法访问 docker,并且似乎无法找到一种方法来获取原始图像和当前图像以及 pod 的更改。
我该如何做 docker diff 之类的事情,或者至少在 Azure 中获取两个图像?
nginx - 将 nginx 入口从部署更新到 daemonset
我使用 helm 安装了 nginx-ingress。之后我注意到默认controller.kind
是deployment
而不是daemonset
,正如我在官方文档中找到的那样。
那么如何在不从一开始就重新安装的情况下更新controller.kind
fromdeployment
到daemonset
?
docker - 如何在 kubernetes 的每个节点而不是 daemonset 中运行作业
有一个 100 个节点的 kubernetes 集群,我必须手动清理特定的图像,我知道 kubelet 垃圾收集可能会有所帮助,但它不适用于我的案例。上网浏览后,我找到了一个解决方案——docker in docker,来解决我的问题。
我只想删除每个节点中的图像一次,有没有办法在每个节点中运行一次作业?
我检查了 kubernetes 标签和 podaffinity,但仍然没有任何想法,任何机构都可以提供帮助吗?
另外,我尝试使用 daemonset 来解决问题,但事实证明它只能删除部分节点而不是所有节点的图像,我不知道可能是什么问题......
这是守护程序集示例:
kubernetes - 如何从另一个节点中的另一个 pod 与 daemonset pod 通信?
我有一个在所有节点上运行的守护进程配置。每个 pod 都在端口 34567 上侦听。我想从不同节点上的其他 pod 与这个 pod 通信。我怎样才能做到这一点?
kubernetes - 为什么 spec.schedulerName 在 daemonset 下不起作用?
在这个关于如何使用多个调度程序的K8s页面之后,我只能看到这是在 pod 的规范schedulerName
下发生的,尽管我不明白这是否特别针对单个 pod 进行了解释(因为 Pod 是最小的k8s 可部署对象),甚至当 pod 附加到部署或其他可部署资源时。就我而言,我有一个自定义调度程序,并且我希望它处理调度 Daemonset 对象。我尝试了两种选择:
一种。将spec.schedulerName: custom-scheduler
daemonset pod 的规格放在下面。
湾。将spec.schedulerName: custom-scheduler
daemonset 规范放在下面。
结果是:
一种。从 pods 事件可以看出,daemonset 的 pod 由自定义调度程序调度。
湾。daemonset 的 pod 由 kube-system 的默认调度程序调度。
我的问题是:
用户能否确定除 Pod 之外的可部署 k8s 对象的调度程序,例如 daemonset/deployment/replicas?如果不是,请解释为什么以及如何在内部工作。非常感谢您的见解。
kubernetes - GPU 没有出现在 GKE Node 上,即使它们出现在 GKE NodePool 中
我正在尝试按照这些说明在节点中设置一个带有 GPU 的 Google Kubernetes Engine 集群,因为我正在使用 Python 客户端以编程方式进行部署。
出于某种原因,我可以使用包含 GPU 的 NodePool 创建一个集群
...但是,NodePool 中的节点无权访问这些 GPU。
我已经用这个 yaml 文件安装了 NVIDIA DaemonSet: https ://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml
由于某种原因,这两行似乎总是处于“ContainerCreating”和“PodInitializing”状态。他们永远不会变成绿色状态=“正在运行”。如何让 NodePool 中的 GPU 在节点中可用?
更新:
根据评论,我在 2 个 NVIDIA pod 上运行了以下命令;kubectl describe pod POD_NAME --namespace kube-system
.
为此,我在节点上打开了 UI KUBECTL 命令终端。然后我运行了以下命令:
gcloud container clusters get-credentials CLUSTER-NAME --zone ZONE --project PROJECT-NAME
然后,我打电话kubectl describe pod nvidia-gpu-device-plugin-UID --namespace kube-system
并得到了这个输出:
然后,我打电话kubectl describe pod nvidia-driver-installer-UID --namespace kube-system
并得到了这个输出: