Kubernetes 参考库伯内特斯内另一个吊舱的头盔Redis大师
我正在Kubernetes上通过Helm运行Redis,不知道如何从我的应用程序中引用主pod,该应用程序也在Kubernetes内部作为pod运行。Helm很好地创建了Kubernetes 参考库伯内特斯内另一个吊舱的头盔Redis大师,kubernetes,redis,kubernetes-helm,Kubernetes,Redis,Kubernetes Helm,我正在Kubernetes上通过Helm运行Redis,不知道如何从我的应用程序中引用主pod,该应用程序也在Kubernetes内部作为pod运行。Helm很好地创建了ClusterIP服务,但我仍然不清楚在我的应用程序中我放了什么来始终引用master: MacBook-Pro ➜ api git:(master) ✗ kubectl get services NAME TYPE CLUSTER-IP EXTER
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
MacBookPro➜ api git:(硕士)✗ kubectl获得服务
名称类型CLUSTER-IP外部IP端口年龄
卑鄙的鬣狗redis master ClusterIP 10.100.187.188 6379/TCP 5h21m
卑鄙的鬣狗redis奴隶集群10.100.236.164 6379/TCP 5h21m
MacBookPro➜ api git:(硕士)✗ kubectl描述服务卑鄙的鬣狗redis主人
姓名:卑鄙的鬣狗redis主人
名称空间:默认值
标签:app=redis
图表=redis-9.0.1
遗产=耕耘者
释放=卑鄙的鬣狗
注释:
选择器:app=redis,release=ignoble-hyena,role=master
类型:集群
IP:10.100.187.188
端口:redis 6379/TCP
目标端口:redis/TCP
终点:192.168.34.46:6379
会话关联:无
活动:
我是否使用:
redis://my-password@卑鄙的鬣狗redis主人:6379
。这看起来很脆弱,因为每次我重新部署舵图时,吊舱名称都会改变。在Kubernetes集群内处理内部服务发现的推荐方法是什么?我找不到详细的文档,但是按照模板代码,您应该能够将设置为您控制的某个字符串,并且redis master将显示为-master
,您可以让您的客户端通过它访问它。如果您的客户机位于不同的名称空间中,则可以通过-master.
访问主机。您应该这样做。这基本上包括运行helmcreate
,然后将现有部署YAML复制到templates
目录中。因此,您可以声明您的应用程序需要Redis。使用中的版本,您可以说
# 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在内部的工作方式,即使您将图表升级为较新的图像标签,它通常也不会触及Redis。赫尔姆将上传一个新版本的Redis工件,看起来与旧版本完全相同,而库伯内特斯将不采取任何行动
env:
- name: REDIS_HOST
value: {{ .Release.Name }}-redis-master