Paas扩展

领域知识 homelab PaaS仅提供了K8S + GitOps基础能力,不包含各种PaaS服务。 在安装SaaS软件时,会依赖一些基础的服务(例如存储服务、数据库服务等),就需要对PaaS进行扩展。 工具链 选择 存储 有一个双盘NAS,能提供基础的NFS存储服务。可以使用K8S的持久卷功能来管理空间的分配。 配置安全 K8S的Secret是一种包含少量敏感信息例如密码、令牌或密钥的对象, 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。 但是使用GitOps时,会遇到一个问题:I can manage all my K8s config in git, except Secrets,常见的几个方案: Sealed-Secrets 利用非对称加密算法对 Secret 对象进行加密,使用的时候在集群内自动进行解密,这样就可以将加密后的密钥安全地存储在 Git 仓库中。 External-Secrets 需要外部密钥管理服务的支持,例如 AWS Secrets Manager、Google Secrets Manager、Azure Key Vault 等。 Vault HashiCorp 开源的一款密钥管理工具,要将它和 ArgoCD 结合使用需要额外的插件。 前提条件 homelab PaaS GitOps 配置 NFS持久卷的使用 PV capacity:指定分配给K8S各种应用的存储最大空间 nfs(server/path):指定NFS服务的地址和路径 accessModes:NFS可以多节点同时挂载读写访问 例子 apiVersion: v1 kind: PersistentVolume metadata: name: nas-nfs spec: capacity: storage: 200Gi accessModes: - ReadWriteMany nfs: server: 192.168.0.xxx path: "/volume1/nfs" mountOptions: - nfsvers=4 persistentVolumeReclaimPolicy: Retain PVC ...

March 18, 2025 · afterain

GitOps安装配置

领域知识 homelab PaaS简介 工具链 选择 Kubernetes发行版 Docker Docker在Desktop版包含了Kubernetes,给开发人员提供了开箱即用的体验。 OpenShift OpenShift 是红帽的产品,采用了 Kubernetes 作为 OpenShift 中的编排技术。 Rancher 一个开源的 Kubernetes 管理平台,能够实现多 Kubernetes 集群的统一纳管。 K3s Rancher推出的轻量级的 Kubernetes 发行版,专为在资源有限的环境中运行,每个服务器实例仅需 512MB RAM 以及 200MB 的磁盘空间。 Homelab一般会有资源有限的设备(例如树莓派),所以选择K3s GitOps Flux ArgoCD Gitea ArgoCD的前提是依赖一个Git仓库,在家庭场景中考虑隐私安全,需要先安装一个Git服务,然后创建仓库进行应用的配置管理。 个人感觉ArgoCD简单一些,不代表其他的工具不好或不适合。 k3s 安装工具 K3s的官方和开源社区都有提供简化的一键安装工具。两个都支持K3s的普通/高可用两种方式。 AutoK3s 用于简化 K3s 集群管理的轻量级工具,您可以使用 AutoK3s 在任何地方运行 K3s 服务。 k3sup is a light-weight utility to get from zero to KUBECONFIG with k3s on any local or remote VM. k3sup仅安装K3s本身,而AutoK3s可以在安装时指定自动部署清单(能同时部署GitOps),所以选择AutoK3s。 前提条件 树莓派 配置代码 AutoK3s 安装AutoK3s ...

February 21, 2025 · afterain

homelab PaaS简介

什么是PaaS PaaS是面向开发人员,围绕应用为中心的平台。提供了应用开发、部署、运行和管理所需的服务,而无需构建和维护。 有什么优势 包括:中间件(数据库/分布式缓存/消息队列等)、开发语言和工具(运行时/框架等)、运维(日志/监控等)、容器部署等等。 如果采用云原生,那么容器即服务CaaS的基础Kubernetes是较好的选择(能跨多云服务商、提供兼容性和一致性API) 解决用户什么问题 主要是实现降本增效和高可用性: 提高效率 缩短开发周期,减少应用部署时间。不必担心底层基础架构的维护和更新,例如使用 DevOps 和持续交付(CD)等敏捷实践。 降低成本 无需担心中间件服务的容量问题,服务按需使用,只需为实际用量付费。 高可用性 面对复杂系统,构建弹性强且高可用的应用。 homelab期望一个什么样的PaaS homelab主要是使用应用而不是开发应用,所以关注的主要软件的运行,需要有足够灵活性支持不同运行时/开发语言/框架/工具。 Kubernetes有两个核心理念:声明式编程和面向终态。软件的部署、运行和管理等工作主要就是编写声明式配置文件,然后结合GitOps,后续的工具链能直接满足一切皆代码原则。 根据最小依赖和一切皆代码原则,选择:Kubernetes + GitOps 工具链 Kubernetes Docker Docker在Desktop版包含了Kubernetes,给开发人员提供了开箱即用的体验。 OpenShift OpenShift 是红帽的产品,采用了 Kubernetes 作为 OpenShift 中的编排技术。 Rancher 一个开源的 Kubernetes 管理平台,能够实现多 Kubernetes 集群的统一纳管。 K3s Rancher推出的轻量级的 Kubernetes 发行版,专为在资源有限的环境中运行,每个服务器实例仅需 512MB RAM 以及 200MB 的磁盘空间。 GitOps 主要功能是监听Git Repositories变化和自动拉取变更,对比当前应用运行状态与期望运行状态的差异,执行自我修复和自我调整,达到期望的状态。 Flux ArgoCD 目标 根据最小依赖和一切皆代码原则,选择的方案:Kubernetes + GitOps

January 1, 2025 · afterain