使用 Pod 环境变量连接到 Pod
using Pod environment variable to connect to pod
在我的 AKS 集群中,我有 2 个服务(API 和 Redis 数据库)。我想从 API pod 连接到 Redis 数据库。
我使用 kubectl exec redis-pod -- printenv
获得了 Redis 环境,主机变量是 REDIS_SERVICE_HOST
,是否可以将此环境注入到 API 部署中?
我试过类似的方法,但没有用:
env:
- name: REDIS_HOST
value: ${REDIS_SERVICE_HOST}:6379
您可以将 redis 主机 IP 存储在 configMap 中并将其用作环境
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
注意:在此示例中,redis pod 需要具有标签 app: redis
然后使用 env.
将 redis.default.svc.cluster.local
作为 redis 主机注入其他 pods
您还使用 configMap 存储 redis.default.svc.cluster.local
并将其用作环境。
kubectl create configmap redishost --from-literal=REDISHOST=redis.default.svc.cluster.local
env:
- name: REDISHOST
valueFrom:
configMapKeyRef:
name: redishost
key: REDISHOST
这样即使 redis pod 重新启动并且 pod IP 发生变化,其他 pods 连接到 redis 也不会受到影响,也不需要更改。
在我的 AKS 集群中,我有 2 个服务(API 和 Redis 数据库)。我想从 API pod 连接到 Redis 数据库。
我使用 kubectl exec redis-pod -- printenv
获得了 Redis 环境,主机变量是 REDIS_SERVICE_HOST
,是否可以将此环境注入到 API 部署中?
我试过类似的方法,但没有用:
env:
- name: REDIS_HOST
value: ${REDIS_SERVICE_HOST}:6379
您可以将 redis 主机 IP 存储在 configMap 中并将其用作环境
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
注意:在此示例中,redis pod 需要具有标签 app: redis
然后使用 env.
将redis.default.svc.cluster.local
作为 redis 主机注入其他 pods
您还使用 configMap 存储 redis.default.svc.cluster.local
并将其用作环境。
kubectl create configmap redishost --from-literal=REDISHOST=redis.default.svc.cluster.local
env:
- name: REDISHOST
valueFrom:
configMapKeyRef:
name: redishost
key: REDISHOST
这样即使 redis pod 重新启动并且 pod IP 发生变化,其他 pods 连接到 redis 也不会受到影响,也不需要更改。