让我们说,您需要在每个工作节点上的固定端口上运行自定义应用程序吗?,就像监控代理一样,这里是我案例的POC:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: monitor
spec:
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
labels:
app: monitor-nginx
spec:
# nodeSelector:
# app: node-monitor-nginx
containers:
- name: node-monitor-nginx-container
image: nginx:alpine
ports:
- containerPort: 80
hostPort: 31179
protocol: TCP
让我们说我的代理在nginx pod上报告节点状态,这样你就可以在每个节点上获取TCP31179上的数据。
为什么pod没有监听工作节点上的那个端口?
root@ip-10-0-1-109:~# telnet 10.0.1.109 31179
Trying 10.0.1.109...
telnet: Unable to connect to remote host: Connection refused
答案 0 :(得分:1)
使用CNI时有关于hostPort的问题,您可以在此GitHub issue中找到有关信息的讨论。
除此之外,您还可以查看hostNetwork: true
作为解决方法。