Как связаться с модулем daemonset из другого модуля в том же узле?

Я хочу daemonset-redis, где каждый узел будет иметь свое собственное кэширование, и каждый модуль развертывания будет взаимодействовать со своим локальным daemonset-redis, как этого добиться? как ссылаться на модуль daemonset в том же узле из docker-контейнера?

ОБНОВЛЕНИЕ: я скорее не использую сервисную опцию и удостоверяюсь, что каждый модуль имеет доступ к своему локальному демону

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 ответа

Есть способ не использовать service,

Вы можете раскрыть информацию о контейнерах в контейнерах через переменные среды.

И вы можете использовать status.hostIP узнать IP-адрес узла, где pod это работает. Это было введено в Kubernetes 1,7 ссылка

Вы можете добавить это к вашему pod или же deployment YAML:

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

Это установит переменную HOST_IP который будет иметь значение узла IP, на котором pod работает, то вы можете использовать его для подключения к локальной DeamonSet,

Вы должны определить службу (выбрать все модули Redis), а затем общаться с Redis из других модулей.

Другие вопросы по тегам