gpt4 book ai didi

kubernetes - 从 Kubernetes 中的另一个 pod 引用 Helm Redis master

转载 作者:IT王子 更新时间:2023-10-29 06:12:26 24 4
gpt4 key购买 nike

我在 Kubernetes 上通过 Helm 运行 Redis,想知道如何从我的应用程序中引用主 pod,该应用程序也在 Kubernetes 内部作为 pod 运行。 Helm 足以创建 ClusterIP 服务,但我仍然不清楚在我的应用程序中我总是引用 master 的内容:

MacBook-Pro ➜  api git:(master) ✗ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ignoble-hyena-redis-master ClusterIP 10.100.187.188 <none> 6379/TCP 5h21m
ignoble-hyena-redis-slave ClusterIP 10.100.236.164 <none> 6379/TCP 5h21m
MacBook-Pro ➜  api git:(master) ✗ kubectl describe service ignoble-hyena-redis-master
Name: ignoble-hyena-redis-master
Namespace: default
Labels: app=redis
chart=redis-9.0.1
heritage=Tiller
release=ignoble-hyena
Annotations: <none>
Selector: app=redis,release=ignoble-hyena,role=master
Type: ClusterIP
IP: 10.100.187.188
Port: redis 6379/TCP
TargetPort: redis/TCP
Endpoints: 192.168.34.46:6379
Session Affinity: None
Events: <none>

我是否使用:redis://my-password@ignoble-hyena-redis-master:6379。这看起来很脆弱,因为每次我重新部署 Helm 图表时 pod 名称都会更改。在 Kubernetes 集群中处理内部服务发现的推荐方法是什么?

最佳答案

你应该 package your application as a Helm chart .这主要涉及运行 helm create,然后将现有部署 YAML 复制到 templates 目录中。 Charts can have dependencies因此您可以声明您的应用程序需要 Redis。使用 standard Helm charts repository 中的版本你可以这样说

# I am requirements.yaml
- name: redis
version: ~9.0.2
repository: https://kubernetes-charts.storage.googleapis.com

这里的重要细节是您的应用程序及其 Redis 将具有相同的 Helm 版本名称——如果您的应用程序是 ignoble-hyena-myapp 那么它的 Redis 将是 ignoble-hyena -redis-master。您可以使用模板在部署 YAML 规范中进行设置

env:
- name: REDIS_HOST
value: {{ .Release.Name }}-redis-master

由于 Kubernetes 的内部工作方式,即使您 helm upgrade 您的图表到更新的图像标签,它通常也不会触及 Redis。 Helm 将上传新版本的 Redis 工件,看起来与旧版本完全相同,而 Kubernetes 将不采取任何操作。

关于kubernetes - 从 Kubernetes 中的另一个 pod 引用 Helm Redis master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57470051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com