Kubernetes daemonset监听特定端口

时间:2017-10-06 18:53:31

标签: kubernetes

让我们说,您需要在每个工作节点上的固定端口上运行自定义应用程序吗?,就像监控代理一样,这里是我案例的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

1 个答案:

答案 0 :(得分:1)

使用CNI时有关于hostPort的问题,您可以在此GitHub issue中找到有关信息的讨论。

除此之外,您还可以查看hostNetwork: true作为解决方法。