我想要一个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
答案 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
您可以将其添加到pod
或deployment
yaml中:
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
它将设置变量HOST_IP
,该变量将具有运行pod
的节点ip的值,然后可以使用它连接到本地DeamonSet
。