You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NixOS环境下Kubernetes集群部署疑问:多主机节点连接方法

在NixOS上搭建分离式Kubernetes集群(Master+Node节点连接指南)

好问题!在NixOS上拆分K8s的Master和Node节点来搭建真实集群,核心是搞定节点间的认证配置和网络连通性,下面我一步步给你讲具体操作:

1. 配置Master节点

首先在Master节点的configuration.nix里只启用master角色,同时要确保API Server能被Node节点访问到:

services.kubernetes = {
  roles = ["master"];
  # 绑定API Server到所有网卡,或者指定Master的内网/公网IP
  apiServer.address = "0.0.0.0";
  # 关键:设置Node节点用来连接的Master地址,必须是Node能访问到的IP
  apiServer.advertiseAddress = "192.168.1.100"; # 替换成你的Master节点实际IP
  # 启用RBAC授权,这是生产集群的标准配置
  authorizationMode = "Node,RBAC";
};

配置完成后执行sudo nixos-rebuild switch应用更改。

2. 获取Master的集群加入命令

Master节点部署完成后,需要生成Node节点加入集群的认证信息。在Master上执行:

kubeadm token create --print-join-command

这个命令会输出一行类似这样的内容,把它复制下来(后面Node节点要用):

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意:默认令牌有效期是24小时,如果过期了,重新执行上面的命令生成新的即可。

3. 配置Node节点

在Node节点的configuration.nix里只启用node角色,并指定Master的API Server地址:

services.kubernetes = {
  roles = ["node"];
  # 替换成你的Master节点IP+6443端口
  masterAddress = "192.168.1.100:6443";
};

执行sudo nixos-rebuild switch应用配置。

4. 让Node节点加入集群

在Node节点上,执行刚才从Master复制的kubeadm join命令(记得加sudo):

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

执行成功后,Node节点就会开始向Master注册。

5. 验证集群连接

回到Master节点,执行以下命令查看节点状态:

kubectl get nodes

如果Node节点的状态显示为Ready,就说明连接成功了!

关键注意事项

  • 网络连通性:Master和Node之间必须开放这些端口:
    • TCP 6443:K8s API Server端口
    • TCP 10250:Kubelet端口
    • UDP 8472(如果用Flannel网络插件):Pod间通信端口
      你可以在NixOS的configuration.nix里配置防火墙开放这些端口:
    networking.firewall = {
      allowedTCPPorts = [6443 10250];
      allowedUDPPorts = [8472];
    };
    
  • Pod网络插件:集群搭建完成后,必须部署Pod网络插件(比如Flannel、Calico),否则Pod之间无法通信。在Master节点通过kubectl apply部署对应的配置文件即可。

内容的提问来源于stack exchange,提问作者michas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:49:32