返回

轻轻松松搞定家庭服务器k3s双栈部署,如此简单!

开发工具

在家庭环境中部署双栈 Kubernetes 集群:一个业余爱好者的指南

对于 Kubernetes 爱好者来说,在家部署一个完整的集群可能是梦想成真。我作为一名业余爱好者,花了大约一周的时间,成功地在家庭环境中搭建了一个双栈 Kubernetes 集群。在此过程中,我遇到了各种问题,但也学到了很多东西。在这篇文章中,我将分享我的经验,帮助其他想要踏上 Kubernetes 家庭部署之旅的朋友们。

部署环境

家庭宽带: 电信 100M 光纤
路由器: TP-Link TL-WDR8630
家庭局域网: 192.168.1.0/24
公网 IP:
服务器:
* CPU:Intel Core i5-4590
* 内存:8GB
* 硬盘:120GB SSD
* 系统:Ubuntu Server 20.04

网络配置

由于我没有公网 IP,因此无法将 Kubernetes 集群直接暴露在公网上。我必须在家庭局域网内构建一个私有集群。首先,我在路由器上启用了双栈功能,允许同时支持 IPv4 和 IPv6。然后,我在服务器上配置了 IPv4 和 IPv6 地址。

安装 Kubernetes (k3s)

对于家庭部署,我选择了 k3s,因为它轻量且易于安装。安装非常简单,只需运行几条命令:

curl -sfL https://get.k3s.io | sh -

然后,使用 kubectl 命令初始化集群:

kubeadm init --pod-network-cidr=10.244.0.0/16

安装 Docker

Docker 是一个容器运行时,用于在 Kubernetes 集群上运行应用程序。在 Ubuntu 上安装 Docker 的步骤也很简单:

sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Kubernetes 部署

通过 kubectl 命令,我可以创建 Deployment 和 Service 来部署和管理应用程序。例如,可以运行以下命令部署 Nginx:

kubectl create deployment nginx --image=nginx:latest
kubectl create service nodeport nginx --tcp=80:80

网络连接

由于私有 IP 的限制,我需要使用反向代理服务器将家庭局域网外的流量转发到 Kubernetes 集群。我使用了 Nginx 作为反向代理:

server {
    listen 80;
    server_name my.k8s.local;
    location / {
        proxy_pass http://10.244.0.2:80;
    }
}

总结

历时一周,我成功地在家庭服务器上部署了一个双栈 Kubernetes 集群。现在,我可以在自己的环境中部署和管理各种应用程序。如果你也有兴趣,我希望我的经验分享能够为你提供帮助。

常见问题解答

  1. 需要什么硬件?
    • 至少需要一台服务器,配置根据应用程序需求而定。
  2. 需要什么软件?
    • k3s、Docker、反向代理服务器(如 Nginx)
  3. 如何配置网络?
    • 在路由器上启用双栈,配置服务器的 IPv4 和 IPv6 地址。
  4. 如何部署应用程序?
    • 使用 kubectl 创建 Deployment 和 Service。
  5. 如何将外部流量转发到集群?
    • 使用反向代理服务器,如 Nginx。