问题标签 [kubernetes-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 投票
2 回答
302 浏览

kubernetes - 在 Kubernetes 上调试 colissionCount

我在 Openshift 中有一个 StatefulSet,它不断重启,但只在一个节点上。我在 POD 日志中看不到任何内容。在/var/log/messages 中,我只看到容器正在重新启动、卷已卸载等消息以及一些更神秘的消息'error: Container is already stopped''cleanup: failed to unmount secrets: invalid argument'.

但是,当我查看 StatefulSet 的 Yaml 时,我看到以下内容:

我想这才是真正的原因。
但是我怎样才能找出是什么导致了这种碰撞呢?

0 投票
2 回答
1854 浏览

mongodb - Kubernetes MongoDB 自动缩放

我在我的 k8s 集群中部署了一个有状态的 mongodb 设置。每次扩展一个新的 pod,我需要使用 rs.add() 命令从 mongodb 控制台添加 pod。有什么办法可以安排这个吗?..另外,我怎样才能在我的 k8s 集群之外公开我的 mongodb 服务..将服务类型更改为 nodeport 对我不起作用..请帮忙。

下面给出我用来部署 mongodb 的有状态 yaml 文件。

0 投票
1 回答
246 浏览

kubernetes - rabbitmq-peer-discovery-k8s 失败。我仍然需要手动停止、加入集群并启动每个节点

部署了示例 yaml 文件,但未按预期工作。我仍然需要在集群上运行批处理作业来手动停止、加入集群并为每个 pod 启动。另外,有没有办法使用 rabbitmq.conf 文件配置虚拟主机、用户和凭据?否则,我必须在所有 pod 启动后在 kerbernetes 批处理作业中执行此操作。

我检查了Failing K8s rabbitmq-peer-discovery-k8s clusteringk8s、RabbitMQ 和 Peer Discovery。我的集群 DNS 工作正常,因为它能够解析kuberneteskubernetes.default.svc.cluster.local

0 投票
0 回答
442 浏览

minikube - 具有 3 个副本的持久卷配置的 minikube mongodb statefulset

Pod 无法启动,并且由于我的经验有限,我很难调试它。我还从我的本地机器安装了一个卷到 minikube vm,如下所示: minikube start --cpus 4 --memory 8192 --mount-string="/data/minikube:/data" --mount

任何帮助将非常感激。

存储类:

持久卷:

有状态集:

服务:

Pod 日志来自test-db-0

0 投票
1 回答
3177 浏览

kubernetes - 访问 kubernetes 集群外的 bitnami/kafka

我目前正在使用 bitnami/kafka 映像(https://hub.docker.com/r/bitnami/kafka)并将其部署在 kubernetes 上。

  • Kubernetes 大师:1
  • Kubernetes 工人:3

在集群内,其他应用程序能够找到 kafka。尝试从集群外部访问 kafka 容器时会出现问题。在阅读一点点时,我读到我们需要为外部 kafka 客户端设置属性“advertised.listener=PLAINTTEXT://hostname:port_number”。

我目前正在引用“ https://github.com/bitnami/charts/tree/master/bitnami/kafka ”。在我添加的 values.yaml 文件中

值.yaml

  • 广告监听器1:10.21.0.191

statefulset.yaml

对于单个 kafka 实例,它工作正常。

但是对于 3 节点 kafka 集群,我更改了一些配置,如下所示: values.yaml

  • 广告监听器1:10.21.0.191
  • 广告监听器2:10.21.0.192
  • 广告监听器3:10.21.0.193

Statefulset.yaml

预期的结果是所有 3 个 kafka 实例都应该将 Advertisementd.listener 属性设置为工作节点 IP 地址。

例子:

  • kafka-0 --> "PLAINTEXT://10.21.0.191:9092"

  • kafka-1 --> "PLAINTEXT://10.21.0.192:9092"

  • kafka-3 -->“纯文本://10.21.0.193:9092”

目前只有一个 kafka pod 处于启动和运行状态,另外两个将进入 crashloopbackoff 状态。

其他两个 pod 显示错误为:

[2019-10-20 13:09:37,753] 信息 [LogDirFailureHandler]:启动 (kafka.server.ReplicaManager$LogDirFailureHandler) [2019-10-20 13:09:37,786] 错误 [KafkaServer id = 1002] KafkaServer 期间的致命错误启动。准备关闭(kafka.server.KafkaServer)java.lang.IllegalArgumentException:要求失败:已配置的端点 10.21.0.191:9092 在通告的侦听器中已由代理 1001 在 scala.Predef$.require(Predef.scala:224) 注册在 kafka.server.KafkaServer$$anonfun$createBrokerInfo$2.apply(KafkaServer.scala:399) 在 kafka.server.KafkaServer$$anonfun$createBrokerInfo$2.apply(KafkaServer.scala:397) 在 scala.collection.mutable.ResizableArray $class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at kafka.server.KafkaServer.createBrokerInfo(KafkaServer.

这意味着 statefulset.yaml 中应用的逻辑不起作用。谁能帮我解决这个问题..?

任何帮助,将不胜感激..

的输出kubectl get statefulset kafka -o yaml

0 投票
1 回答
2130 浏览

kubernetes - 在 statefulset 部署期间出现错误“pod has unbound immediate PersistentVolumeClaim”

我正在通过 statefulset 部署 stolon(默认来自 stolon repo)。我在 statefulset 配置中定义了

这是我的存储类:

statefulset 创建得很好,但 pod 有错误: pod has unbound immediate PersistentVolumeClaims

我该如何解决?

0 投票
2 回答
2247 浏览

kubernetes - Kubernetes 中状态服务的分片负载均衡

我目前正在从 Service Fabric 切换到 Kubernetes,并且想知道如何进行自定义和更复杂的负载平衡。

到目前为止,我已经阅读了有关 Kubernetes 提供“服务”的信息,这些服务可以为隐藏在它们后面的 pod 进行负载平衡,但这只能以更简单的方式使用。

我现在要重写的内容在 Service Fabric 中如下所示:

我有这个界面:

例如,在我的 ASP.Net 应用程序中跟踪帐户的上下文会继承这一点。然后,我编写了一些代码,这些代码现在将通过服务结构集群 API 进行服务发现,并跟踪所有服务,并在任何实例死亡或重新生成时更新它们。

然后,基于此标识符的确定性(由于缓存的上下文等),并给定前端 -> 后端调用的目标服务的多个副本,我可以可靠地将某个帐户的流量路由到某个端点实例.

现在,我将如何在 Kubernetes 中执行此操作?

正如我已经提到的,我找到了“服务”,但它们的负载平衡似乎不支持自定义逻辑,并且仅在使用无状态实例时才有用。

还有一种方法可以在 Kubernetes 中进行服务发现,我可以在这里使用它来替换我现有的代码吗?

0 投票
1 回答
70 浏览

elasticsearch - Elasticseach 的模型如何转化为这些高可用性模式?

我一直在研究 Elasticsearch 可用性模型,您可以在其中创建包含主节点和数据节点 [1] 的集群,其中主节点控制集群,数据节点保存数据。您还可以为每个索引设置通过这些数据节点分布的分片和副本的数量。

我还看到 [2] 高可用性模式通常是故障转移(主动-被动或主动-主动)和/或复制(主从或主-主)的某种模型。但我无法将这些信息放在一起。我如何在这种模式中对该模型进行分类?

还有 [3] 其他 NoSQL 数据库,如 MongoDB,具有类似的 HA 模型,并使用 Kubernetes 中的 StatefulSets 部署为集群。我想更多地了解它是如何工作的。有什么提示吗?

参考:

[1] https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

[2] https://www.slideshare.net/jboner/scalability-availability-stability-patterns/33-What_do_we_mean_withAvailability

[3] https://kubernetes.io/blog/2017/01/running-mongodb-on-kubernetes-with-statefulsets/

0 投票
1 回答
278 浏览

kubernetes - Kubernetes Pod 之间的通信

我有 statefulset pod。当我进入其中一个 pod 并尝试 ping 它的主机名时。有用。但是,如果我尝试从当前容器 p​​ing 其他 pod 的主机名,那么这些主机名不会得到解析。我也有无头服务。有人可以告诉我在集群级别或在服务或 statefulset 的 yaml 中需要做什么以使通信发生。一个工作示例或一些工作图表链接来尝试,会很有帮助。我可以通过那个。

服务:

有状态集:

豆荚:

`

0 投票
2 回答
100 浏览

kubernetes - Kubernetes 将变量固定到 pod

我有一个有 3 个 pod 的应用程序,每个 pod 需要一个固定的变量名存储在每个 pod 中。因此,如果一切运行正常,三个 pod 的 var1、var2 和 var3 将存储在相应的 pod 上。

如果第一个具有 var1 的 pod 被替换,我如何确定其他 2 个 pod 具有 var2 和 var3,从而知道应该为新 pod 分配 var1?

这可以用有状态集来完成吗?