Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 参考库伯内特斯内另一个吊舱的头盔Redis大师_Kubernetes_Redis_Kubernetes Helm - Fatal编程技术网

Kubernetes 参考库伯内特斯内另一个吊舱的头盔Redis大师

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

我正在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
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