如何从同一节点中的另一个 pod 与 daemonset pod 通信?

Ore*_*ari 8 kubernetes daemonset

我想要一个 daemonset-redis,其中每个节点都有自己的缓存,每个部署 pod 将与其本地 daemonset-redis 通信如何实现?如何从 docker-container 中引用同一节点中的 daemonset pod?

更新:我宁愿不使用服务选项并确保每个 pod 访问其本地守护进程集

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: redislocal
spec:
  selector:
    matchLabels:
      name: redislocal
  template:
    metadata:
      labels:
        name: redislocal
    spec:
      hostNetwork: true
      containers:
      - name: redislocal
        image: redis:5.0.5-alpine
        ports:
        - containerPort: 6379
          hostPort: 6379

Run Code Online (Sandbox Code Playgroud)

Cro*_*rou 8

有一种使用service.

您可以通过环境变量将 Pod 信息暴露给容器

您可以使用它status.hostIP来了解pod正在运行的节点的 IP 地址。这是在 Kubernetes 1.7链接中引入的

您可以将其添加到您的poddeploymentyaml 中:

env:
- name: HOST_IP
  valueFrom:
    fieldRef:
      fieldPath: status.hostIP
Run Code Online (Sandbox Code Playgroud)

它将设置一个变量HOST_IP,该变量的值为pod正在运行的节点 ip ,然后您可以使用它连接到本地DeamonSet.