3

我是 kubernetes 的初学者,我可以在最新的 calico.yaml 文件(在节点上安装 Calico)中看到监听默认 9099 端口的配置。

我正在几个节点上部署,并且该端口(9099)被占用,因为其他服务正在后台运行。

从日志中我可以看到:

2020-08-28 12:15:15.107 [ERROR][59] felix/health.go 246: Health endpoint failed, trying to restart it... error=listen tcp 127.0.0.1:9099: bind: address already in use
2020-08-28 12:15:16.108 [ERROR][59] felix/health.go 246: Health endpoint failed, trying to restart it... error=listen tcp 127.0.0.1:9099: bind: address already in use
2020-08-28 12:15:17.108 [ERROR][59] felix/health.go 246: Health endpoint failed, trying to restart it... error=listen tcp 127.0.0.1:9099: bind: address already in use
2020-08-28 12:15:18.109 [ERROR][59] felix/health.go 246: Health endpoint failed, trying to restart it... error=listen tcp 127.0.0.1:9099: bind: address already in use

日志来自 pod:

kube-system              calico-node-d4ntt                               1/1     Running   0          9m41s
kube-system              calico-node-mjh4z                               0/1     Running   3          3m31s
kube-system              calico-node-p5lgf                               0/1     Running   2          3m34s
kube-system              calico-node-t4vmd                               0/1     Running   2          3m30s

我们如何更新这个端口?在 yml 文件上我看不到端口。

我可以在 yml 文件中看到配置:

listenPort:
                description: ListenPort is the port where BGP protocol should listen.
                  Defaults to 179
                maximum: 65535
                minimum: 1

但这不是阻止我部署的端口。

4

2 回答 2

1

简而言之,您必须将 containerPort 参数添加到 calico-node 容器部分calico.yaml

第一个下载calico.yaml文件:

curl https://docs.projectcalico.org/manifests/calico.yaml -O

这个 yaml 文件中有一个 DaemonSet,它有一个名为 的容器calico-node,添加DaemonSet.spec.template.spec.containers.ports.containerPort parameter到 yaml 文件并将其值更改为您想要的值(您想要的任何端口)。像这样的东西:

containers:
        # Runs calico-node container on each Kubernetes node. This
        # container programs network policy and routes on each
        # host.
        - name: calico-node
          image: calico/node:v3.16.1
          ports:
          - containerPort: 9090
于 2020-10-03T07:01:40.907 回答
0

确保您的主机和防火墙根据您的配置 - calico-kubernetes-requirements允许必要的流量。

设置TYPHA_HEALTHHOST或检查 localhost 正在解析的内容。类似的解决方案:felix-calico

您也可以尝试更改 livenessProve 和 readinessProbe:

livenessProbe:
  httpGet:
     path: /liveness
     port: 9099 #here you can change port

如果上述解决方案不起作用,请在端口 9099 上终止进程,然后重新安装 Calico。

查看更多:projectcalico-issue

也看看:calico-incubatorcalico-felix

于 2020-08-31T10:16:21.470 回答