问题标签 [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 投票
1 回答
262 浏览

docker - 如何使用 Kubernetes statefulset 调整 Redis 配置?

我对 Redis 的默认 redis.conf 很好,但只想将“appendonly”从默认的“no”更改为“yes”。Kubernetes statefulset 部分是:

我想我已经偏离了轨道,但我很难将我的头脑围绕在 Kubernetes 上。

0 投票
1 回答
1738 浏览

kubernetes - StatefulSet 的策略替换

我的开发环境和 CI 上的 StatefulSet 更新有一个简单的问题。

我想在不先使用 Kubectl delete 的情况下立即替换所有 StatefulSet 副本。是否可以将清单更改为策略:替换为 Deployments 并继续使用 kubectl apply ...

0 投票
1 回答
164 浏览

kubernetes - Cassandra Kubernetes Statefulset NoHostAvailableException

我在 kubernetes 中部署了一个应用程序,它由 cassandra、一个 go 客户端和一个 java 客户端(以及其他东西,但它们与本次讨论无关)组成。我们使用 helm 进行部署。我们正在为 cassandra 使用有状态集和无头服务。我们已将客户端配置为使用无头服务 dns 作为集群创建的联系点。

一切都很好。直到所有节点都关闭,或者其他一些邪恶的节点组合关闭,我通过在所有 cassandra 节点上连续使用 kubectl delete 删除所有 pod 来模拟它。

当我这样做时,客户端在 java 中抛出 NoHostAvailableException

我可以使用 cqlsh 查询 cassandra,使用 nodetool status 节点似乎很好,所有新的 ips 都在那里我使用的图像没有 netstat 所以我还没有确认它在预期的端口上侦听。

通过在两个客户端 pod 上执行 bash,我可以看到使用 nslookup 的 dns 是有意义的,但是... netstat 没有显示任何与 cassandra 建立的连接(它们在我关闭节点之前就存在)

如果我重新启动客户端,一切正常。

我用谷歌搜索了很多(我的意思是很多),我发现的大部分内容都与从未有过工作连接有关,最相关的事情似乎很老(比如 2014 年、2016 年)。

所以一个节点宕机是非常基本的,我希望一切都能正常工作,cassandra集群自行管理,它在新节点上线时发现它们,平衡负载等等。

如果我将我所有的 cassandra 节点慢慢放下,一次一个,一切正常(我还没有确认负载是否正确分配到正确的节点,但至少可以正常工作)

那么,是否存在预期这种行为的点?即我已将所有内容都删除,在第一个集群的最后一个被删除之前没有任何东西启动和运行.. 这种行为是预期的吗?

对我来说,这似乎是一个容易解决的问题,不确定有什么遗漏/不正确,我很惊讶两个客户都表现出相同的症状,这让我觉得我们的 statefulset 和服务没有发生什么

0 投票
1 回答
85 浏览

kubernetes - 如何在使用 PVC 时管理 pod 副本

我有一个在 Kubernetes 中部署的开源项目。它有一个 master、data 和 query pod。数据 pod 用于存储数据。不幸的是,当数据 pod 出现故障时,它也会丢失所有存储的数据。所以我想,我必须使用带有 PVC 的 StatefulSet。我开始研究 PVC 样品。假设我创建了一个 PV:

然后我有一个 Claim 和一个 POD 来绑定它。这是示例状态集:

现在,当我运行示例作业时,我意识到 2 个 pod 中只有一个处于活动状态。另一个吊舱失败说:

我相信这是因为我只创建了一个 PV。所以我去创造一个新的PV,

并且吊舱已启动并正在运行。

在我的产品设置中,我希望这会自动发生。这意味着我不想为每个副本创建这些 PV。有没有办法做到这一点?Kube 是否以某种方式解决了这个问题?

感谢帮助。如果您还有任何问题,请回复。我会尽力解决它。

0 投票
2 回答
1178 浏览

kubernetes - 带有副本的 Statefulset:1 个 pod 具有未绑定的立即 PersistentVolumeClaims

我正在尝试在我的单节点集群(Docker Desktop Windows)中设置一个弹性集群。为此,我创建了 PV 如下(工作)

然后这里是配置:

结果是只有一个“pod”将其 pvc 绑定到 pv,另一个得到错误循环“0/1 个节点可用:1 个 pod 具有未绑定的立即 PersistentVolumeClaims”。这是kubectl get pv,pvc结果:

如果我没有正确理解,我应该有第二个带有以下标识符的persistantolumeclaim:es-data-esnode-1 有什么我错过或不正确理解的吗?谢谢你的帮助

我在这里跳过不相关的部分(configmap、loadbalancer、..)

0 投票
3 回答
321 浏览

python - 如何使用 Kubernetes Python CoreV1API 删除 statefulsets.apps

我正在helm2将版本迁移到helm3. 我的资源之一是redis它不受迁移的保护。我必须使用删除它

我想使用Kubernetespython 库,只是我找不到匹配的函数。我正在使用CoreV1API.

0 投票
1 回答
308 浏览

kubernetes - Kubernetes 多状态集 pods 通信

在同一个有状态集合 afaik 中,您可以通过直接引用特定 pod 在特定 pod 之间进行交互,就像这样 - pod-{0..N-1}.my_service.my_namespace.svc.cluster.local。(这里有更多信息:https ://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id )。

但是,在我的情况下,我有 2 个不同的有状态集,并且我希望能够statefullset1-pod-0从第一个有状态集与statefullset2-pod-0来自第二个有状态集(以及statefullset1-pod-1statefullset2-pod-1,等等)进行交互。可能吗?如果是,您能否提供示例配置?

0 投票
1 回答
97 浏览

mysql - Kubernetes集群中部署的应用如何实现线程安全?

我的数据库(mongodbmysqlStatefulSetyaml文件中声明。后端框架是django. 如果我将执行写操作(编辑或删除)的函数定义为async,它将是线程安全的,对吗?我应该使用锁还是互斥锁?

0 投票
0 回答
131 浏览

kubernetes - kubernetes statefulset podAntiAffinity

波纹管工作正常,k8s 每个节点运行一个 pod,但是当其中一个节点发生故障时,k8s 在一个节点中创建 2 个 pod。一个节点中是否可能只有一个 pod?

0 投票
1 回答
363 浏览

kubernetes - Kubernetes StatefulSets 和 livenessProbes

活跃度探测应该触发失败容器的重启。他们是否尊重默认的有状态集部署和扩展保证。例如,如果在同一个状态集中的多个 Pod 的活跃度探测同时失败,K8S 会尝试一次重启一个容器还是同时重启所有容器?