kubernetes - 如何与同一节点中另一个 pod 的 daemonset pod 通信?
问题描述
我想要一个 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
解决方案
有一种不使用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
。
推荐阅读
- sql - SQL如何返回将多行合并为一行的结果集
- android - 为什么在深色模式中有不同深浅的黑色?
- qt - PulseAudioService pa_context_connect() 在所有 QT GUI 应用程序中失败
- google-apps-script - Oauth2 服务创建 hasAccess() 在 Google 表格脚本中为除所有者之外的所有用户失败
- python - 我有一本包含值列表的字典。我想从值列表中取最高值
- r - plot.ppp 绘制字符而不显示坐标
- python - Python排序日期
- python - 使用变量触发定义
- mysql - MySQL 组复制使用 super_read_only 启动主节点
- python - 将过滤器应用于第 1 列,但包括异常是第 2 列低于某个值