在我的AKS集群中,我有两个服务(API和Redis )。我想从API荚连接到Redis DB。
我使用kubectl exec redis-pod -- printenv获得了Redis,主机变量是REDIS_SERVICE_HOST,可以将这个Env注入到API部署中吗?
我试过这样的方法,但没有用:
env:
- name: REDIS_HOST
value: ${REDIS_SERVICE_HOST}:6379发布于 2020-08-15 10:31:21
您可以将redis主机IP存储在configMap中,并将其用作env。
export REDISHOST_IP=XXX.XXX.XXX.XXX
kubectl create configmap redishost --from-literal=REDISHOST=${REDISHOST_IP}env:
- name: REDISHOST
valueFrom:
configMapKeyRef:
name: redishost
key: REDISHOST更好的方法是使用kubernetes服务公开redis。
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: default
labels:
app: redis
ports:
- port: 6379
targetPort: 6379
selector:
app: redis注意:在本例中,红荚需要有标签app: redis。
然后使用env将redis.default.svc.cluster.local作为redis宿主注入其他荚中。
您还可以使用configMap存储redis.default.svc.cluster.local并将其用作env。
kubectl create configmap redishost --from-literal=REDISHOST=redis.default.svc.cluster.localenv:
- name: REDISHOST
valueFrom:
configMapKeyRef:
name: redishost
key: REDISHOST这样,即使红荚被重新启动和荚IP改变,其他连接到红荚的豆荚也不会受到影响,也不需要改变。
https://stackoverflow.com/questions/63424806
复制相似问题