请问我想通过「 公网IP」 添加子节点,如何做 ?(master node 不在同一机房)
配置如下添加子节点失败

[all]
master ansible_connection=local ip=172.16.0.6
node1 ansible_host=172.16.0.4 ip=172.16.0.4 ansible_ssh_pass=x
node2 ansible_host=172.16.0.5 ip=172.16.0.5 ansible_ssh_pass=x
node3 ansible_host=106.12.162.210 ip=172.16.0.7 ansible_ssh_pass=x

[kube-master]
master

[kube-node]
node1
node2
node3

[etcd]
master

[k8s-cluster:children]
kube-node
kube-master

    这成功不了,node要能和master互通,node上的kubelet要上报消息。

    Forest-L 都用公网是这个错误

    All assertions passed

    fatal: [node3]: FAILED! => {
    “assertion”: “ip in ansible_all_ipv4_addresses”,
    “changed”: false,
    “evaluated_to”: false
    }

    MSG:

    Assertion failed

    Cauchy 确定可以 ssh, 内网ip是我瞎写的,因为我都用公网ip 会报错如下

    `All assertions passed

    fatal: [node3]: FAILED! => {
    “assertion”: “ip in ansible_all_ipv4_addresses”,
    “changed”: false,
    “evaluated_to”: false
    }

    MSG:

    Assertion failed`

    我就想知道,hosts.ini 该怎么配公网ip 🤣

      zhangdszq

      ansible_host: 公网IP
      ip:内网ip,且应该为机器网卡ip

      如果内网ip是瞎填的,是无法通过对应检测的,不允许继续安装。

      20 天 后

      嗨,有相应的解决方案吗,我正好有这个需求,集群是二进制方式搭的,除了隧道技术之外~

        zwz 多集群方式能解决你的问题吗?不是子节点的方式。你能描述一下你的实际场景以及原因吗?

        • zwz 回复了此帖

          rayzhou2017 我是想把阿里云的服务器作为子节点,加入到内网的k8s集群中,其中内网机器有一个公网ip~

            zwz 你这个阿里云的子节点都没法访问内网的master吧?master和node之间要能互访。你用公网节点是为了在业务峰值的时候调度一些负载过去吗?利用公有云节点的可伸缩性节约成本?

            • zwz 回复了此帖

              rayzhou2017 削峰和弹性伸缩都有考虑,最主要是公有云和私有云跑的业务不一样,想规划到集群里统一调度策略。

              混合云的需求,你这个情况有三个方法:

              1. 通过隧道打通网络连通性
              2. 多集群管理,内网和公有云各部署一套集群,在内网另外部署多集群管理平台,统一纳管这两个集群
              3. 如果要让公有云作为子节点,需要在公有云部署一个proxy打通网络

              第一种方法应该有现成的,而且可以加密隧道,但我估计你们可能安全性的原因不太愿意让公网节点能够直接访问内网节点(其实可以只开放端口访问)。
              第二种方法KubeSphere 3.0会支持,目前网络也不需要改动,如果需要可以让 @Jeff 确认。
              第三种方法比较麻烦,需要写这个proxy。

              你现在公有云node和内网master都不能互通,这不是安装脚本的问题,你就算用kubeadmin去安装也应该成功不了。

              • zwz 回复了此帖

                rayzhou2017 请问加密隧道的话,内网是需要开放哪些端口呢?这个不关脚本的事情,集群用的是二进制搭建的~