图总是比最后几句好,下面是我想做的事情:

总括而言:
H 110我希望当添加一个节点时,一个Redis从荚被添加到该节点并注册到主<代码>H 211H 112我希望一个节点中的所有pods只消耗本地Redis从站(我认为简单的部分)H 213代码>F 214/>代码。
我为什么想要这样的建筑?
。
是否有可能自动化这些部署,例如使用Helm?是否有丰富的资源使这样的体系结构具有干净的动态主/从绑定/解绑定?
最重要的是,这个架构对我想要做的事情来说是个好主意吗?还有其他的办法可以同样快吗?
发布于 2021-12-22 19:41:56
我记得我们以前曾讨论过这个主题-- here,不用担心在这里添加更多内容。
了解更多关于Redis舵机图表的信息:https://github.com/bitnami/charts/tree/master/bitnami/redis#choose-between-redis-helm-chart-and-redis-cluster-helm-chart
,您还应该问我的应用程序将如何连接到同一个节点上而不使用Redis服务的问题。
为此,您可以使用“环境变量”,并将它们公开给应用程序。
类似于:
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP它将给出运行的Node IP 的值,然后您可以使用该IP连接到DeamonSet (如果正在运行,则为Redis从服务器)。
您可以在以下网址阅读更多内容:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/
是否有可能自动化这样的部署,例如使用Helm?
是的,您可以编写自己的Helm图表并部署生成的YAML清单。
和最重要的是,这个体系结构对于我想要做的事情来说是个好主意吗?还有其他的办法可以同样快吗?
如果您认为这是一个好主意,按照我的考虑,这可能会导致$$$问题&更高的集群资源使用率。
如果您正在运行每个节点上的200个节点,那么您将运行Redis的奴隶怎么办?这可能会消耗每个节点上的资源,并将成本添加到下中。
或
如果您正在计划特定的部署
上面的建议也不错,但如果您计划使用 Redis 和--只使用特定的部署--您也可以使用sidecar模式,并使用配置将多个Redis连接到一起。
apiVersion: v1
kind: Service
metadata:
name: web
labels:
app: web
spec:
ports:
- port: 80
name: redis
targetPort: 5000
selector:
app: web
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
selector:
matchLabels:
app: web
replicas: 3
template:
metadata:
labels:
app: web
spec:
containers:
- name: redis
image: redis
ports:
- containerPort: 6379
name: redis
protocol: TCP
- name: web-app
image: web-app
env:
- name: "REDIS_HOST"
value: "localhost"https://stackoverflow.com/questions/70452338
复制相似问题