问题标签 [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.
kubernetes - AWS 中使用 Pod 自动缩放的 Kubernetes PersistentVolumeClaim 问题
我们已经根据我们的项目要求成功地创建了 Pod、服务和复制控制器。现在我们计划使用 Kubernetes 在 AWS 中设置持久性存储。我已经创建了 YAML 文件以在 AWS 中创建 EBS 卷,它按预期工作正常。我能够声明卷并成功安装到我的 pod(这仅适用于单个副本)。
我能够成功创建文件。卷也在创建,但我的 Pod 将进入挂起状态,卷仍然在 aws 中显示可用状态。我在那里看不到任何错误日志。
存储文件:
主文件:
现在我打算设置一个 pod Autoscaling。我已经看到了用于部署和 ReplicationContoller 的 pod 自动缩放。我可以知道我们也可以为有状态集实现 pod 自动缩放吗?
kubernetes - Kubernetes StatefulSet - 获取 spec.replicas 元数据并在配置中的其他地方引用
我正在配置一个 StatefulSet,我希望其中的副本数量(如下所示的spec.replicas)可以以某种方式作为参数传递到应用程序实例中。我的应用程序需要spec.replicas来确定副本的数量,以便它知道要从 MySQL 表中加载哪些行。我不想在spec.replicas和 application 参数中硬编码副本的数量,因为在向上或向下缩放副本数量时这将不起作用,因为在缩放时需要调整 application 参数。
这是我的 StatefulSet 配置:
我已经阅读了 Kubernetes 文档,并且spec.replicas字段的范围是 pod 或容器级别,而不是 StatefulSet,至少就我所见而言。
提前致谢。
kubernetes - Kubernetes StatefulSet pod 启动错误恢复
如果您在 StatefulSet 规范中修补镜像名称,Kubernetes StatefulSet (v1.8) 将自动将其管理的 pod 滚动到新镜像——毕竟,编排这种更新是它的主要工作之一。但是,如果在镜像拉取步骤中部署修改后的镜像失败(例如,镜像名称中有错字,所以没有要拉取的镜像),它尝试使用新镜像重新启动的第一个 pod 会卡在ImagePullBackOff 状态和翻转停止。没关系,这几乎是您想要和期望的。但是,如果您随后再次修补 StatefulSet 规范以纠正错误,则该 set 不会被修复 - 它只是处于损坏状态 - 直到您(手动)删除失败的 pod,此时一切都按原样进行一切都恢复到健康状态。
我认为应该有一种配置方法,以便在更新映像名称时自动进行这种恢复,就像正常部署一样,而不是需要手动干预(尤其是因为这是针对 CI-类型应用程序,无论如何这一切都需要自动化)。我不禁觉得我只是没有在文档中找到正确的选项,但是仔细研究文档并进行无休止的 Google 搜索并没有发现成功的秘诀。有没有办法将这种恢复配置为自动发生,如果是这样,它是什么?
如果做不到这一点,是否有一种优雅的方法可以自动检测故障状态以触发对故障 pod 的脚本删除?我尝试过的一切似乎都很笨拙,有很多轮询和临时超时,所以我很难相信这是正确的做法。
kubernetes - 如何在现有 NFS 共享上指定 mountOptions
我们正在创建一个 kubernetes statefulset,它正在安装一个预先存在的 NFS 共享。
这是一个精简的示例:
这工作正常,并且 nfs 卷已正确安装到容器中。但是如何在挂载上指定挂载选项?我尝试设置 mountOptions 参数,如下所示: https ://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
在卷和 volumeMount 上,它无法验证。我不需要(或不想)创建 PV 或 PVC,因为 nfs 卷已经存在于 k8s 之外,我只需要使用它。
无论如何要指定安装选项吗?
kubernetes - 使用 Kubernetes 部署多个 wordpress 实例
我缺少 Kubernetes 中用于水平扩展“独立”应用程序的功能(您可以将一个应用程序分配给一个用户)。
我想用 kubernetes 部署几个 Wordpress 实例。每个实例都应该有自己的环境和数据,并分配给一个用户。
一开始我想到了Statefullset,但问题是当你删除一个pod时,你必须以相反的顺序或全部并行删除它。如果第三个用户取消服务并且你只想删除第三个pod怎么办?!
部署?然后我必须为每个用户创建一个独特的 Pod,每个用户都有自己的卷!?Kubernetes 的附加值在哪里..
你还有其他更好的主意吗?
问候,
kubernetes - 有没有办法在 kubernetes statefulset 配置文件中获取 pod 的序数索引?
我们在 Kubernetes 1.9.0 上,想知道是否有办法在其 statefulset 配置文件中访问 pod 的“序数索引”。我们喜欢动态地为 pod 的标签分配一个值(从序数索引派生),然后在规范下使用它来设置 pod 亲和性(或反亲和性)。
或者,在 statefulset 配置文件中是否可以使用 pod 的实例名称?如果是这样,我们可以希望从中提取序数索引并动态分配给标签(供以后用于亲和力)。
redis - statefulset 和 headless service 是如何工作的-K8s
我明白
StatefulSet
- 管理/维护稳定的主机名、网络 ID 和持久存储。HeadlessService
- 稳定的网络 ID,您需要为有状态应用程序定义无头服务
来自 K8s Docs -> 有时您不需要或不想要负载平衡和单个服务 IP。在这种情况下,您可以通过为集群 IP (.spec.clusterIP) 指定“无”来创建“无头”服务。
我对“有状态与无状态”应用程序/组件的看法
UI
属于无状态应用程序/组件,因为它不维护任何数据。但它来自数据库并显示DB
,Cache
(Redis) 是有状态的应用程序/组件,因为它必须维护数据
我的问题。
Persistence storage in Apps
- 为什么我应该考虑将postgress(例如)部署为StatefulSet
?我可以定义PV
s 和PVC
inDeployement
来将数据存储在 PV 中。即使 Pod 重新启动,它也会获得 PV,因此不会丢失数据。Network
- Redis(例如)应该部署为StatefulSet
,这样我们每次都可以获得唯一的“网络 ID”/名称,即使在重新启动 pod 后也是如此。例如;Redis-0
,Redis-1
在StatefulSet
,我可以定义Redis-0
为大师,所以大师name
永远不会改变。现在我为什么要考虑Headless Service
应用StatefulSet
程序?我可以直接访问/连接 POD 本身,对吗?有什么用Headless Service
?我听说过
Operators
,管理应用程序的最佳方式StatefulSet
。我在下面找到了一些例子。为什么这些(或其他)对于部署为StatefulSet
. 例如,Prometheus
或ElasticSearch
;我可以定义PVs
和PVC
存储数据而不会丢失。
我为什么/什么时候应该关心StatefulSet
and Headless Serivice
?
kubernetes - 当节点死亡/重新启动并具有 PersistentVolume 时的 StatefulSet 行为
假设我有一个资源 foo,它是一个有 3 个副本的 statefulset。每个都提出一个持久的卷声明。
一个 foo pod (foo-1) 死掉了,一个新的 pod 在它的位置开始。foo-1 是否会绑定到与前一个 foo-1 死前相同的持久卷?持续数量声明的数量会保持不变还是会增长?
这种极端情况似乎不在 StatefulSets 的文档中。
kubernetes - 如何从 StatefulSet 中选择具体 Pod 并将其分配给具体 Node
美好的一天,kubernetesStatefulSet
是否有将具体 Pod 设置为具体节点的选项。
例如:我们有3 个带有唯一标签 ( , , )的StatefulSet
副本和 3 个带有标签 ( , , ) 的副本。如何从带有标签的 Pod 指向带有标签的节点?在 StatefulSet、PodAffinity 和 NodeAffifnity 的官方文档中,我没有找到如何执行此操作的任何信息。Pod
app-0
app-1
app-2
Node
node-0
node-1
node-2
StatefulSet
app-0
node-0
有什么建议么
kubernetes - 如何在 Kubernetes StatefulSet 中运行零停机应用程序
我想在 Kubernetes 中运行一个有状态的应用程序(对特定文件夹执行读/写操作),而不需要单个实例依赖。
- 我可以使用 statefulset 来满足这个要求吗?
- 是否需要使用共享文件系统(例如:GFS、EFS...)?
- 如果是,它是否会影响我的应用程序的性能。