Kubernetes 如何更改/设置k8s主节点内部ip或公共ip?

Kubernetes 如何更改/设置k8s主节点内部ip或公共ip?,kubernetes,k3s,Kubernetes,K3s,我已经在云虚拟机上安装了k3s。(k3s与k8s非常相似。) k3s服务器作为主节点启动 主节点的标签显示内部ip为192.168.xxx.xxx。主节点的注释显示公共ip也是192.168.xxx.xxx 但是CloudVM的实际公共ip是49.xx.xx.xx。因此来自其他机器的代理无法连接此主节点。 因为代理总是尝试连接代理”wss://192.168.xxx.xxx:6443/...“ 如果我在云虚拟机上运行ifconfig,公共ip(49.xx.xx.xx)不会显示。因此k3s找不到正

我已经在云虚拟机上安装了k3s。(k3s与k8s非常相似。)

k3s服务器作为主节点启动

主节点的标签显示内部ip为192.168.xxx.xxx。主节点的注释显示公共ip也是192.168.xxx.xxx

但是CloudVM的实际公共ip是49.xx.xx.xx。因此来自其他机器的代理无法连接此主节点。 因为代理总是尝试连接代理”wss://192.168.xxx.xxx:6443/...“

如果我在云虚拟机上运行ifconfig,公共ip(49.xx.xx.xx)不会显示。因此k3s找不到正确的内部ip或公共ip。

我尝试用--bind address=49.xx.xx.xx启动k3s,但启动失败。我想这个ip地址没有NIC绑定


如果我尝试创建地址为49.xx.xx.xx的虚拟网卡,如何解决此问题?

连接Kubernetes主机和节点的最佳选择是使用专用网络

如何设置K3S主机和单节点群集: 先决条件:
  • 所有机器都需要在同一个专用网络内。例如192.168.0.0/24
  • 所有的机器都需要相互通信。您可以使用以下命令ping它们:
    $ping IP\u地址
在此示例中,有2个虚拟机:

  • 主节点(k3s),专用ip为10.156.0.13
  • 工作节点(k3s-2),专用ip为10.156.0.8

在VM之间建立连接 最重要的是检查机器是否能相互连接。正如我所说的,最好的办法就是打电话给他们

供应主节点 要在主节点上安装K3S,需要从根用户调用命令:

$curl-sfLhttps://get.k3s.io |sh-

此命令的输出应如下所示:

[INFO]  Finding latest release
[INFO]  Using v0.10.2 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v0.10.2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
检查主节点是否工作:

$kubectl获取节点

上述命令的输出应如下所示:

NAME   STATUS   ROLES    AGE     VERSION
k3s    Ready    master   2m14s   v1.16.2-k3s.1
[INFO]  Finding latest release
[INFO]  Using v0.10.2 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v0.10.2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent
NAME    STATUS   ROLES    AGE   VERSION
k3s-4   Ready    <none>   68m   v1.16.2-k3s.1
k3s-1   Ready    master   69m   v1.16.2-k3s.1
k3s-3   Ready    <none>   69m   v1.16.2-k3s.1
k3s-2   Ready    <none>   68m   v1.16.2-k3s.1
使用以下命令从主节点检索重要的\u令牌

$cat/var/lib/rancher/k3s/server/node令牌

此令牌将用于将代理节点连接到主节点复制它

将代理节点连接到主节点 确保节点可以与主节点通信。 之后,您可以从根用户调用命令:

$curl-sfLhttps://get.k3s.io |K3S_网址=https://MASTER_NODE_IP:6443 K3S_令牌=重要_令牌sh-

将您的重要令牌粘贴到此命令。

在这种情况下,主节点IP为10.156.0.13

此命令的输出应如下所示:

NAME   STATUS   ROLES    AGE     VERSION
k3s    Ready    master   2m14s   v1.16.2-k3s.1
[INFO]  Finding latest release
[INFO]  Using v0.10.2 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v0.10.2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent
NAME    STATUS   ROLES    AGE   VERSION
k3s-4   Ready    <none>   68m   v1.16.2-k3s.1
k3s-1   Ready    master   69m   v1.16.2-k3s.1
k3s-3   Ready    <none>   69m   v1.16.2-k3s.1
k3s-2   Ready    <none>   68m   v1.16.2-k3s.1
试验 在主节点上调用命令以检查代理是否成功连接:

$kubectl获取节点

您先前添加的节点应在此处可见:

NAME    STATUS   ROLES    AGE     VERSION
k3s     Ready    master   15m     v1.16.2-k3s.1
k3s-2   Ready    <none>   3m19s   v1.16.2-k3s.1

所有节点都应该在此处可见

连接Kubernetes主机和节点的最佳选择是使用专用网络

如何设置K3S主机和单节点群集: 先决条件:
  • 所有机器都需要在同一个专用网络内。例如192.168.0.0/24
  • 所有的机器都需要相互通信。您可以使用以下命令ping它们:
    $ping IP\u地址
在此示例中,有2个虚拟机:

  • 主节点(k3s),专用ip为10.156.0.13
  • 工作节点(k3s-2),专用ip为10.156.0.8

在VM之间建立连接 最重要的是检查机器是否能相互连接。正如我所说的,最好的办法就是打电话给他们

供应主节点 要在主节点上安装K3S,需要从根用户调用命令:

$curl-sfLhttps://get.k3s.io |sh-

此命令的输出应如下所示:

[INFO]  Finding latest release
[INFO]  Using v0.10.2 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v0.10.2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
检查主节点是否工作:

$kubectl获取节点

上述命令的输出应如下所示:

NAME   STATUS   ROLES    AGE     VERSION
k3s    Ready    master   2m14s   v1.16.2-k3s.1
[INFO]  Finding latest release
[INFO]  Using v0.10.2 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v0.10.2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent
NAME    STATUS   ROLES    AGE   VERSION
k3s-4   Ready    <none>   68m   v1.16.2-k3s.1
k3s-1   Ready    master   69m   v1.16.2-k3s.1
k3s-3   Ready    <none>   69m   v1.16.2-k3s.1
k3s-2   Ready    <none>   68m   v1.16.2-k3s.1
使用以下命令从主节点检索重要的\u令牌

$cat/var/lib/rancher/k3s/server/node令牌

此令牌将用于将代理节点连接到主节点复制它

将代理节点连接到主节点 确保节点可以与主节点通信。 之后,您可以从根用户调用命令:

$curl-sfLhttps://get.k3s.io |K3S_网址=https://MASTER_NODE_IP:6443 K3S_令牌=重要_令牌sh-

将您的重要令牌粘贴到此命令。

在这种情况下,主节点IP为10.156.0.13

此命令的输出应如下所示:

NAME   STATUS   ROLES    AGE     VERSION
k3s    Ready    master   2m14s   v1.16.2-k3s.1
[INFO]  Finding latest release
[INFO]  Using v0.10.2 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v0.10.2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent
NAME    STATUS   ROLES    AGE   VERSION
k3s-4   Ready    <none>   68m   v1.16.2-k3s.1
k3s-1   Ready    master   69m   v1.16.2-k3s.1
k3s-3   Ready    <none>   69m   v1.16.2-k3s.1
k3s-2   Ready    <none>   68m   v1.16.2-k3s.1
试验 在主节点上调用命令以检查代理是否成功连接:

$kubectl获取节点

您先前添加的节点应在此处可见:

NAME    STATUS   ROLES    AGE     VERSION
k3s     Ready    master   15m     v1.16.2-k3s.1
k3s-2   Ready    <none>   3m19s   v1.16.2-k3s.1

所有节点都应该在此处可见

我也遇到了同样的问题,最终找到了解决办法。 您可以使用
--node external ip
启动服务器,就像这样
sudo k3s服务器--node external ip 49.xx.xx.xx
,代理需要配置env或使用
sudo k3s代理--server启动https://49.xx.xx.xx:6443 --令牌${K3S_token}
,则您的本地设备(边缘节点)可以从私有IP连接到公共云

标志用法是apiserver用于向集群成员播发的
(侦听器)IP地址(默认:节点外部IP/节点IP)

这张图片显示了我的电脑连接远程服务器,我测试了一下,raspberry 4B也成功了


负载平衡器没有将公共IP切换到私有IP,当我使用git Bull get flag功能时,添加时间是2019.10.26,我也遇到了同样的问题,最终找到了解决方案。 您可以使用
--node external ip
启动服务器,就像这样
sudo k3s服务器--node external ip 49.xx.xx.xx
,代理需要配置env或使用
sudo k3s代理启动--