K3s家用集群搭建指南
项目介绍
K3s是Kubernetes的一个轻量级版本,专为边缘计算和资源有限的环境设计。此项目基于LilDrunkenSmurf/k3s-home-cluster,提供了一套详尽的教程,帮助用户在家中或小型环境中快速部署一个高可用(HA)的K3s集群。它简化了家庭服务器或者个人开发环境中的Kubernetes部署流程,使得管理和运维变得轻松高效。
项目快速启动
环境准备
首先,确保你的所有节点(至少3台机器)都安装了Ubuntu 22.04或相似的Linux发行版,并且能够互相通信。接下来,遵循以下步骤来设置单个节点作为主节点:
curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="server" sh -s - --flannel-backend=none --cluster-init
对于额外的节点,执行以下命令加入集群:
curl -sfL https://get.k3s.io | K3S_TOKEN=k3stoken sh -s - server --server https://<master_ip>:6443 --flannel-backend=none
替换<master_ip>
为主节点的IP地址。
确认集群状态
安装完毕后,你可以通过运行以下命令检查集群状态:
kubectl get nodes
应当看到所有节点的状态为Ready。
应用案例和最佳实践
部署Nginx示例
为了测试你的新集群,可以部署一个简单的Nginx服务:
kubectl create deployment nginx --image=nginx --replicas=1
随后,创建一个服务以暴露该应用程序:
kubectl expose deployment nginx --type=LoadBalancer --port=80 --target-port=80
存储类配置和动态卷供给
对于最佳实践,配置存储类以便能够动态供给持久化卷,适合家庭环境中可能存在的NAS或外部存储解决方案。
典型生态项目
-
监控: 使用Prometheus和Grafana监控你的K3s集群。
部署Prometheus和Grafana可以通过 Helm 图表实现,首先要添加Prometheus Helm仓库并部署:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install prometheus-stack prometheus-community/prometheus
-
网络策略: 利用Calico或其他网络插件实施更细粒度的网络控制。
对于Calico,可以这样安装:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
-
自动化部署: 结合Flux CD进行GitOps管理,自动同步 Git 中的基础设施即代码配置到你的K3s集群中。
请注意,具体的操作步骤可能会随时间更新而变化,请参考最新的K3s官方文档以及相应工具的最新版本说明进行操作。