如何从同一节点中的另一个 pod 与 daemonset pod 通信?
how to communicate with daemonset pod from another pod in the same node?
我想要一个 daemonset-redis,其中每个节点都有自己的缓存,每个部署 pod 将与其本地 daemonset-redis 通信如何实现?如何从 docker-container?
中引用同一节点中的 daemonset pod
更新:
我宁愿不使用服务选项并确保每个 pod 访问其本地 daemonset
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
你应该定义一个服务(选择所有redis pods)然后从其他pods
与redis通信
有一种方法不是使用service
。
你可以Expose Pod Information to Containers Through Environment Variables.
并且您可以使用status.hostIP
来知道pod
是运行 的节点的IP 地址。
这是在 Kubernetes 1.7 link
中引入的
您可以将其添加到您的 pod
或 deployment
yaml:
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
它会设置一个变量HOST_IP
,它的值是pod
是运行的节点ip,然后你可以用它连接到本地DeamonSet
.
我想要一个 daemonset-redis,其中每个节点都有自己的缓存,每个部署 pod 将与其本地 daemonset-redis 通信如何实现?如何从 docker-container?
中引用同一节点中的 daemonset pod更新: 我宁愿不使用服务选项并确保每个 pod 访问其本地 daemonset
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
你应该定义一个服务(选择所有redis pods)然后从其他pods
与redis通信有一种方法不是使用service
。
你可以Expose Pod Information to Containers Through Environment Variables.
并且您可以使用status.hostIP
来知道pod
是运行 的节点的IP 地址。
这是在 Kubernetes 1.7 link
您可以将其添加到您的 pod
或 deployment
yaml:
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
它会设置一个变量HOST_IP
,它的值是pod
是运行的节点ip,然后你可以用它连接到本地DeamonSet
.