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

时间:2019-06-12 13:29:04

标签: kubernetes daemonset

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

2 个答案:

答案 0 :(得分:1)

您应该定义一项服务(选择所有Redis Pod),然后与其他Pod中的Redis通信

答案 1 :(得分:1)

有一种使用service的方法。

您可以Expose Pod Information to Containers Through Environment Variables

您可以使用status.hostIP知道运行pod的节点的IP地址。 这是在Kubernetes 1.7 link

中引入的

您可以将其添加到poddeployment yaml中:

env:
- name: HOST_IP
  valueFrom:
    fieldRef:
      fieldPath: status.hostIP

它将设置变量HOST_IP,该变量将具有运行pod的节点ip的值,然后可以使用它连接到本地DeamonSet