问题标签 [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.
kubernetes - 调度程序没有为 Master 节点中的 DaemonSet 调度 Pod
我想部署一个 DaemonSet 用于监控目的。所以这些 Pod 需要部署在所有的 Node 上。
DaemonSet 确保所有(或部分)节点运行 Pod 的副本。
我正在使用 DaemonSet 以便所有节点都获得一个副本。
当我DaemonSet
在我的 Kubernetes 集群中创建它时,我没有看到 Pod 在我的主节点中运行。
这个 DaemonSet 的 Pod 在除 Master 节点之外的所有节点中运行。
我在这里想念什么?如何强制调度程序在主节点中调度 Pod?
kubernetes - 指定 Kubernetes DaemonSet 的调度顺序
我的集群中运行着 Consul,每个节点都运行一个 consul-agent 作为 DaemonSet。我还有其他与 Consul 交互的 DaemonSet,因此需要运行 consul-agent 才能与 Consul 服务器通信。
我的问题是,如果我的 DaemonSet 在 consul-agent 之前启动,应用程序将出错,因为它无法连接到 Consul 并随后重新启动。
我还注意到其他 DaemonSet 也存在同样的问题,例如Weave,因为它需要 kube-proxy 和 kube-dns。如果 Weave 先启动,它会不断重启,直到 kube 服务准备好。
我知道我可以向我的应用程序添加重试逻辑,但我想知道是否可以指定 DaemonSet 的调度顺序?
kubernetes - 将 traefik 部署为具有 NET_BIND_SERVICE 功能的 DaemonSet
由于我需要(裸机)k8s 集群中请求者的真实 IP,我想将traefik-ingress-controller部署为具有该功能的DaemonSetNET_BIND_SERVICE
,并将其直接绑定到主机上的端口 80 和 443。
我遵循了 kubernetes 文档中的建议(https://docs.traefik.io/user-guide/kubernetes/#deploy-trfik-using-a-deployment-or-daemonset),但它似乎不起作用。从外部仍然无法到达这些端口。添加服务后externalIPs
(就像我之前使用Deployment-approach所做的那样),可以访问 traefik,但我仍然没有得到真正的源 ip。
作为一个简短的解释:我只想在请求来自我的内部网络时进行路由。
有人可以给我一个简短的操作方法吗?
提前致谢!
kubernetes - 使用 kubectl 创建守护程序集?
我参加了 CKA 考试,我需要在那里使用 Daemonsets 很长一段时间。由于使用 kubectl 做所有事情而不是为 k8s 资源创建 yaml 清单要快得多,所以我想知道是否可以使用kubectl
.
kubectl create daemonset
我知道至少现在不可能使用常规创建它。并且文档中没有对其的描述。但也许有办法以某种不同的方式做到这一点?
我现在能做的最好的事情是首先创建部署kubectl create deployment
并编辑它的输出清单。这里有什么选择吗?
kubernetes - 如何检查特定脚本执行是否由 Kubernetes pod 完成
我有一个守护程序集,它部署容器来检查几个挂载点的状态。这个 daemonset 部署是从 python 脚本完成的,在部署命令之后不久,我正在收集将由上述 daemonset pod 创建的日志。我看到在触发守护程序创建后不久就会复制日志,并且出于同样的原因,日志不完整。
经过一番调查,我发现daemonset pods仍在执行脚本和写入日志。同时主脚本已经跳转到下一个命令复制日志的kubectl cp
命令。
有没有什么办法可以根据仅在脚本执行完成时复制日志的条件来等待。
这是我拥有的代码的一部分
amazon-s3 - 如何将 S3 存储桶复制到 Kubernetes 节点
我想将 Kubernetes 节点上的 S3 存储桶复制为 DaemonSet,因为新节点一旦启动也会获得 s3 存储桶副本,我更喜欢将 S3 副本复制到 Kubernetes 节点,因为将 S3 直接复制到 pod 作为AWS API 意味着多个 pod 需要多次调用,并且每次 pod 启动时复制内容都需要时间。
kubernetes - K8s 调度 DaemonSets
我想在集群的所有节点上安排一个 pod。没有例外。当资源不短缺时,DaemonSet 似乎可以胜任。但有时其他 pod 会在某些节点上被调度,这样就没有更多资源可供 DaemonSet 的 pod 被调度。
强制在所有节点上调度 DaemonSet 的 pod 的最佳方法是什么?在 GCP 上运行,因此可用的最新版本是 1.11.5
kubernetes - StatefulSet、ReplicaSet 或 DaemonSet。单个 Pod 最好的是什么?
我想在节点上部署一个 Pod 来托管我的服务(例如 GitLab)。问题是:在节点故障(如重新启动)后不会重新创建 Pod。解决方案:使用 StatefulSet、ReplicaSet 或 DaemonSet 来确保在 Node 故障后创建 Pod。但是这种情况下最好的方法是什么?
这个 Pod 是有状态的(我使用卷hostPath
来保存数据),并且部署使用nodeSelector
它始终保持在同一个节点上。
这是示例的简单 YAML 文件:https ://pastebin.com/WNDYTqSG
它创建了 3 个 Pod(每个一个Set
),并带有一个卷以有状态地保存数据。在实践中,所有这些解决方案都可以满足我的需求,但我不知道这种情况下是否有最佳实践。
您能帮我在这些解决方案之间进行选择以部署单个有状态 Pod 吗?
kubernetes - 用于 kubernetes 的 DaemonSet 在特权模式下工作正常,但即使添加了所有 linux 功能也会失败
我有一个在 kubernetes 集群中以特权模式运行的守护程序集。这是守护程序集的 YAML 规范。
我没有使用privileged:true
,而是转向 linux 功能以授予对 DaemonSet 的权限。因此,我将所有 linux 功能添加到容器中并删除了privileged:true
. 这是新的 YAML 规范
但是当与 linux 功能一起使用时,守护进程的行为并不像预期的那样。在这两种情况下,/proc/1/status
容器内的权限位图都是相同的。
在 kubernetes 中使用带有 pod 的 linux 功能时,我还需要设置更多字段或权限吗?
amazon-ec2 - 如何在 Kubernetes 的 Daemonset 配置文件中使用实例 ID?
我想从我的 k8s 配置文件中获取我的 pod 正在运行的实例 ID(例如 AWS EC2 实例 ID,如 i-19a9fa9s8df9a8,而不是私有 dns 节点名称),但找不到任何关于如何去做。有人知道如何使用https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#event-v1-corereportingInstance
中的字段吗?
我收到此错误:
这是我尝试过的:
我的 yaml 文件中已经有这个,但是它给出了私有 dns 名称而不是实例 ID