首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pod环境变量连接pod

使用Pod环境变量连接pod
EN

Stack Overflow用户
提问于 2020-08-15 10:05:21
回答 1查看 278关注 0票数 0

在我的AKS集群中,我有两个服务(API和Redis )。我想从API荚连接到Redis DB。

我使用kubectl exec redis-pod -- printenv获得了Redis,主机变量是REDIS_SERVICE_HOST,可以将这个Env注入到API部署中吗?

我试过这样的方法,但没有用:

代码语言:javascript
复制
env:
   - name: REDIS_HOST
     value: ${REDIS_SERVICE_HOST}:6379
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-15 10:31:21

您可以将redis主机IP存储在configMap中,并将其用作env。

代码语言:javascript
复制
  export REDISHOST_IP=XXX.XXX.XXX.XXX
  kubectl create configmap redishost --from-literal=REDISHOST=${REDISHOST_IP}

代码语言:javascript
复制
env:
- name: REDISHOST
  valueFrom:
    configMapKeyRef:
      name: redishost
      key: REDISHOST

更好的方法是使用kubernetes服务公开redis。

代码语言:javascript
复制
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。

代码语言:javascript
复制
kubectl create configmap redishost --from-literal=REDISHOST=redis.default.svc.cluster.local

代码语言:javascript
复制
env:
- name: REDISHOST
  valueFrom:
    configMapKeyRef:
      name: redishost
      key: REDISHOST

这样,即使红荚被重新启动和荚IP改变,其他连接到红荚的豆荚也不会受到影响,也不需要改变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63424806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档