问题标签 [statefulset]

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.

0 投票
3 回答
16404 浏览

kubernetes - 卷已专门附加到一个节点,不能附加到另一个节点

我有一个非常简单的 Kubernetes pod。我想要一个有状态的集合并想要以下过程:

  1. 我想下载一个 initcontainer 并将 tarball 从 s3 解压缩到安装到 initcontainer 的卷中
  2. 我想将该卷安装到我的主容器中以供使用

我继续收到以下错误:

起初我运行它,我可以看到我的 tarball 的日志正在被 initcontainer 下载。大约完成一半它终止并给我以下错误:

0 投票
2 回答
692 浏览

kubernetes - 如何将一个不同的 Secret 挂载到 StatefulSet 管理的每个 Pod 中?

我有 3 个不同的 Kubernetes 秘密,我想将每个秘密挂载到自己的 Pod 中,由具有 3 个副本的 StatefulSet 管理。

是否可以配置 StatefulSet 使每个 Secret 都安装到自己的 Pod 中?

0 投票
2 回答
1373 浏览

kubernetes - 如何将流量转发到特定的 pod?

我有一个在内存数据库中使用的应用程序。我使用带有 3 个副本的 Pod 创建了 statefulset。使用 PVC 存储数据库相关文件。

我使用了一个 Loabalancer 来公开 statefulset。

因此,当流量每次转发到不同的 Pod 时都会遇到负载均衡器。

无论如何我可以根据某些条件控制对 Pod 的负载平衡(比如客户端 IP 是 X 转到 pod Y)吗?

0 投票
1 回答
1095 浏览

kubernetes - Kubernetes - 如何为每个节点创建一个 Pod?

我想要一个 Kubernetes StatefulSet:

  • 副本数/Pod 数 = Kubernetes 集群中的节点数
  • 每个节点上都有一个 Pod

有没有关于如何解决这个典型需求的简单示例?

0 投票
1 回答
76 浏览

kubernetes - 在 Kubernetes 中删除有状态集

如何永久删除 Kubernetes 中的 Stateful Sets?--force即使在我通过设置和--grace-period=0标志删除它们之后,它们也会重新创建。

我知道我可以通过删除部署本身来删除它们。我很想知道是否有任何方法可以保留部署并仅删除不需要的有状态集。

0 投票
1 回答
7494 浏览

kubernetes - 如何使用负载均衡器公开 Statefulset?

我目前正在尝试创建一组 X 豆荚,每个豆荚都有一个个人持久卷。为此,我StateFulSet使用 X 副本创建了一个,并且PersistentVolumeClaimTemplate这部分正在工作。

问题是似乎不可能以与 a 相同的方式使用 LoadBalancer 公开这些 pod deployment(因为 statefulset 中 pod 的唯一性)。

此刻我试图将它暴露为一个简单的部署女巫不起作用,我发现的唯一方法是一个一个地暴露每个 pod(我没有测试过,但我在这个上看到了但它是不是那么可扩展...

我没有在任何云提供商平台上运行 kubernetes,那么请避免使用专有命令行。

0 投票
2 回答
235 浏览

kubernetes - K8s:StatefulSet如何在失败的情况下增加重新启动pod之间的时间

我有集成测试,在那里我启动 StatefulSet,等到准备好然后做一些断言。

我的问题是,如果应用程序失败 - 它会尝试重启太快。而且我无法从失败的 pod 中获取日志。

所以我的问题是如何增加 StatefulSet 中 Pod 重启之间的时间?因为 K8s 控制器不支持 RestartPolicy: Never。

0 投票
1 回答
3491 浏览

kubernetes - 如何在 Kubernetes 中重新附加已发布的 PersistentVolume

这是我的总体目标:

  • 运行 MongoDB

  • 通过 pod 故障/更新等持久化数据

我采取的方法:

  • K8S 提供者:数字海洋

  • 节点:3

  • 创建 PVC

  • 创建无头服务

  • 创建有状态集

这是配置的简化版本:

这按预期工作。我可以将副本降速为 0:

kubectl scale —replicas=0 statefulset/my-app-database

重新旋转它:

kubectl scale —replicas=1 statefulset/my-app-database

数据将持续存在..

但是有一次,当我通过上下缩放 statefulset 来搞乱时,我遇到了这个错误:

作为 k8s 的新手,我删除了 PVC 并“重新创建”了同一个:

使用statefulset新 PV 旋转备份,旧 PV 被删除,因为默认persistentVolumeReclaimPolicy设置为Delete

我将这个新 PVpersistentVolumeReclaimPolicy设置Retain为确保数据不会被自动删除。我意识到:我不确定如何回收该 PV。早些时候,为了解决“卷附件”错误,我删除了 PVC,它只会使用我的设置创建另一个新 PV,现在我的数据留在了那个ReleasedPV 中。

我的主要问题是:

  • 总体而言,这听起来像是实现我目标的正确方法吗?

  • 我是否应该考虑将 a 添加claimRef到动态创建的 PV,然后使用该 claimRef 重新创建一个新的 PVC,如此处所述:Can a PVC be bound to a specific PV?

  • 我是否应该尝试让新鲜statefulset的 PVC 真正使用旧的 PV?

  • 尝试将旧 PV 重新附加到正确的节点是否有意义,我该怎么做?

0 投票
2 回答
4991 浏览

kubernetes - 如何获取 StatefulSet Kubernetes 的副本数

我正在尝试在 Kubernetes 上自动扩展我的 StatefulSet。为此,我需要获取当前的 pod 数量。

在处理部署时:

这会输出一个数字,即当前部署的数量。

但是,当你运行

我们没有得到太多的信息。知道如何获取有状态集的当前副本数吗?

0 投票
1 回答
208 浏览

kubernetes - 有没有一种方法/配置可以将默认的 revisionHistoryLimit 从 10 更改为另一个限制?

我正在使用 kubernetes 设置一个新服务器,并且由于存储限制,我需要将所有现有和新项目的revisionHistoryLimit更改为 2 或 3。我知道我可以在每个部署中使用spec.revisionHistoryLimit更改它,但我需要更改它在全球范围内。

感谢您的回答和提示。