首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在牧场/库伯纳茨(RKE)中为internal_address开放端口?

在牧场/库伯纳茨(RKE)中为internal_address开放端口?
EN

Stack Overflow用户
提问于 2019-02-01 11:37:52
回答 2查看 2.4K关注 0票数 0

我有以下配置来使用Rancher (RKE)设置集群。

rancher-config.yml

代码语言:javascript
复制
nodes:
  - address: 192.168.88.204
    internal_address: 172.16.22.12
    user: dockeruser
    role: [controlplane,worker,etcd]
  - address: 192.168.88.203
    internal_address: 172.16.32.37
    user: dockeruser
    role: [controlplane,worker,etcd]
  - address: 192.168.88.202
    internal_address: 172.16.42.73
    user: dockeruser
    role: [controlplane,worker,etcd]

services:
  etcd:
    snapshot: true
    creation: 6h
    retention: 24h 

根据Rancher Networking,我已经为所有节点(192.168.88.204、192.168.88.203、192.168.88.202)开放了以下端口作为防火墙服务。

node-firewall.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<service>
    <port port="2376" protocol="tcp"/>
    <port port="2379" protocol="tcp"/>
    <port port="2380" protocol="tcp"/>
    <port port="8472" protocol="udp"/>
    <port port="9099" protocol="tcp"/>
    <port port="10250" protocol="tcp"/>
    <port port="443" protocol="tcp"/>
    <port port="6443" protocol="tcp"/>
    <port port="8472" protocol="udp"/>
    <port port="6443" protocol="tcp"/>
    <port port="10254" protocol="tcp"/>
    <port port="30000-32767" protocol="tcp"/>
</service>

-> commmend

firewall-offline-cmd --new-service-from-file=node-firewall.xml --name=node-firewall
firewall-cmd --reload
firewall-cmd --add-service node-firewall

我的RKE安装在192.168.88.151上。对于RKE ->

代码语言:javascript
复制
rancher-firewall.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
    <port port="80" protocol="tcp"/>
    <port port="433" protocol="tcp"/>
    <port port="22" protocol="tcp"/>
    <port port="2376" protocol="tcp"/>
    <port port="6443" protocol="tcp"/>
</service>
firewall-offline-cmd --new-service-from-file=rancher-firewall.xml --name=rancher-firewall
firewall-cmd --reload
firewall-cmd --add-service rancher-firewall

因此,我运行以下命令来提升我的RKE

代码语言:javascript
复制
rke up --config ./rancher-config.yml

日志是

代码语言:javascript
复制
[root@localhost ~]# rke up --config ./rancher-config.yml
INFO[0000] Building Kubernetes cluster
INFO[0000] [dialer] Setup tunnel for host [192.168.88.204]
INFO[0000] [dialer] Setup tunnel for host [192.168.88.203]
INFO[0000] [dialer] Setup tunnel for host [192.168.88.202]
INFO[0001] [network] Deploying port listener containers
INFO[0001] [network] Port listener containers deployed successfully
INFO[0001] [network] Running etcd <-> etcd port checks
INFO[0001] [network] Successfully started [rke-port-checker] container on host [192.168.88.202]
INFO[0001] [network] Successfully started [rke-port-checker] container on host [192.168.88.204]
INFO[0001] [network] Successfully started [rke-port-checker] container on host [192.168.88.203]
FATA[0016] [network] Host [192.168.88.202] is not able to connect to the following ports: 
            [172.16.22.12:2379, 172.16.22.12:2380, 172.16.32.37:2379, 172.16.32.37:2380, 172.16.42.73:2380, 172.16.42.73:2379]. 
            Please check network policies and firewall rules

我的问题是如何为kubernates集群中的所有节点打开internal_address的端口?

EN

回答 2

Stack Overflow用户

发布于 2019-02-01 17:38:04

可能是我的经验不足。我只是分享我的发现。internal_address必须是docker (网关)的ip地址。了解每个节点的docker的ip地址(192.168.88.204、192.168.88.203、192.168.88.202)。

运行Run docker network ls。您可能会获得以下网络信息。

代码语言:javascript
复制
NETWORK ID          NAME                DRIVER              SCOPE
aa13d08f2676        bridge              bridge              local
02eabe818790        host                host                local
1e5bb430d790        none                null                local

并运行commend docker network inspect bridge以获取bridge的ip地址。您将获得以下相似的信息。

代码语言:javascript
复制
[
    {
        "Name": "bridge",
        "Id": "aa13d08f2676e40df5a82521fccc4e402ef6b04f82bcd414cd065a1859b3799d",
        "Created": "2019-01-31T21:32:02.381082005-05:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        ....
        ...
        ..
        .

]

并按如下所示配置rancher-config.yml,然后再次运行rke up --config ./rancher-config.yml

代码语言:javascript
复制
nodes:
  - address: 192.168.88.204
    internal_address: 172.17.0.1
    ...
...
..
..
票数 1
EN

Stack Overflow用户

发布于 2019-02-08 04:41:02

这是不正确的。

internal_address提供了让具有多个地址的节点设置特定地址的功能,以用于专用网络上的主机间通信。如果未设置internal_address,则该地址用于主机间通信。

每个https://rancher.com/docs/rke/v0.1.x/en/config-options/nodes/#internal-address

您可能会遇到防火墙问题。

检查您的活动区域以及这些区域中有哪些接口。

代码语言:javascript
复制
firewall-cmd --get-active-zones
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54472544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档