A 'small' vanilla Kubernetes install on NixOS
6 months ago
- #Networking
- #NixOS
- #Kubernetes
- Kubernetes抽象了系统管理任务并自动化蓝绿部署等流程
- 本文探讨如何搭建一个自主管理的小型多节点Kubernetes集群
- 该方案规避了公钥基础设施(PKI)、NixOS Kubernetes模块及K3s/K0s等发行版的复杂性
- 尽管存在配置交织问题,仍采用NixOS管理Kubernetes软件包和systemd组件
- 测试环境包含QEMU虚拟化支持,可通过文末链接获取
- 基础NixOS配置包含启用nftables防火墙和systemd-networkd网络服务
- 目标使用Kubernetes 1.34版本,需谨慎处理版本升级问题
- 网络配置涉及容器子网划分、WireGuard加密隧道及防火墙/NAT规则
- 通过k8s.internal域名配置主机名以支持Kubernetes服务发现
- API服务器配置包含etcd存储、加密设置及静态令牌文件认证
- CoreDNS部署于Kubernetes外部,由NixOS管理DNS解析服务
- 分别配置kube-proxy管理服务IP,kubelet管理容器运行时
- 测试验证了kubectl命令功能及容器互联网连通性
- 后续建议添加Ingress控制器、存储供应器和数据库管理功能
- 关键收获包括小规模部署的复杂性认知及SQLite支持等简化可能