kubernetes - 如何将 STS 应用程序和目标 Pod 调度到 OpenEBS 中的同一节点?
问题描述
我们有一个设置(在 GKE k8s 1.10 中连接了 6 个带有临时 SSD 的节点)和带有 6 个副本的应用程序 StatefulSet。计划是将 1 对 1 个应用程序 pod 映射到一个节点,并使用目标亲和性将 jiva 目标 pod 与应用程序 pod 保持在同一节点上。数据复制/冗余在应用层解决,因此我们需要为存储类设置唯一的 1 个副本。
解决方案
目标关联策略可用于将卷目标 pod 与工作负载放在同一节点上。
此功能利用依赖于 Pod 标签的 Kubernetes Pod Affinity 功能。用户需要将以下标签添加到应用程序和 PVC。
labels:
openebs.io/target-affinity: <application-unique-label>
您可以使用以下方式在应用程序和 OpenEBS PVC 中指定 Target Affinity,对于 Application Pod,它将类似于以下内容
apiVersion: v1
kind: Pod
metadata:
name: fio-jiva
labels:
name: fio-jiva
openebs.io/target-affinity: fio-jiva
对于 OpenEBS PVC,它将类似于以下内容。
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: fio-jiva-claim
labels:
openebs.io/target-affinity: fio-jiva
注意:此功能仅适用于应用程序和 PVC 之间存在 1-1 映射的情况。不建议将 PVC 指定为模板的 STS。
推荐阅读
- python - 如何在一行中读取多个输入?
- excel - 选择和删除组内的行
- html - 内容适合窗口
- python - 如何从 python 子进程执行 netcat 命令?
- reactjs - ref.current.onSnapshot 不是函数
- asp.net - 如何在 Stimulsoft Report 中为图像设置圆角?
- javascript - @aws-sdk/lib-storage 使用 JSONStream.stringify() 将 JSON 从 MongoDB 流式传输到 S3
- asp.net-mvc - 解耦 ASP.NET Core 项目的 SSR 表示层
- python - 正则表达式在多行上搜索文本
- flutter - TypeError:无法读取 null 的属性(读取 'getAllPostsRep')bloc cubit 颤动