【发布时间】:2019-08-13 01:27:00
【问题描述】:
我在 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 集群中处理内部服务发现的推荐方法是什么?
【问题讨论】:
标签: kubernetes redis kubernetes-helm