【问题标题】:Accessing K8S API Server running on Openstack behind a floating IP访问在浮动 IP 后面运行在 Openstack 上的 K8S API Server
【发布时间】:2021-05-17 12:28:47
【问题描述】:

我让 Kubernetes Master 监听内部 Openstack 网络地址 192.168.6.6:6443。这台机器有一个浮动 IP,用于从我家进行基于 ssh 的访问 (x.x.x.x)。在浮动 IP 上接收到的 SSH 被发送到内部 IP。但这不适用于 6443 转发。

当我可以访问与K8S master关联的浮动IP但不能访问API服务器正在侦听的内部IP时,如何从我家访问K8S API服务器。

我知道将配置文件复制到本地计算机的方法,但是配置文件具有主服务器正在侦听的 ip 地址,并且无法从 Openstack 外部访问该 ip。

感谢您的帮助

【问题讨论】:

    标签: kubernetes proxy openstack rbac kubernetes-apiserver


    【解决方案1】:

    1。配置 API 服务器 IP

    需要将KUBE_CONFIG文件中的API服务器ip替换为浮动IP。

    2。配置安全组

    然后,您需要将允许 TCP 6443 端口的入口规则添加到主节点接口的安全组。

    【讨论】:

    • 非常感谢。我不知道您可以更改 API 服务器正在侦听的地址。这是怎么做到的?另外,这不会使 openstack 上的工作节点无法访问主节点吗?
    • 所以kube_config文件中的api服务器地址就是客户端发送请求的地址。该浮动 ip 将被路由到 api 服务器正在侦听的内部 kube_api 服务器 ip。所以我会说监听IP没有改变。而且在集群中,工作节点已经使用 api 服务器地址(内部)加入到集群中。 kube_config 中的地址仅用于您正在使用的 kube 客户端,而不用于工作节点。
    • 再次感谢,但这是我尝试的第一件事。我将配置文件从 k8s master 复制到我的笔记本电脑,并将 IP 192.168.6.6:6443 更改为 :6443。但是运行 kubectl 命令会出现错误:“无法连接到服务器:x509:证书对 192.168.6.6 有效,而不是
    【解决方案2】:

    我设法通过在 OpenStack 上重新实例化 k8s 集群并将浮动 ip 作为“--apiserver-cert-extra-sans”参数提供给 kubeadm 来解决这个问题。

    kubeadm init --apiserver-cert-extra-sans=

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 1970-01-01
      • 2018-06-07
      • 2017-07-09
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      相关资源
      最近更新 更多