V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
289396212
V2EX  ›  程序员

k8s 有一项作用是把多台服务器管理起来部署节点,我有几个 AWS 领的那种试用 vps,把好几个小 vps 加到一个集群里充分利用资源?

  •  
  •   289396212 · 2023-06-07 18:58:29 +08:00 · 2539 次点击
    这是一个创建于 535 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前没用过 k8s,不太熟悉,以前只用 docker 部署服务,最近在研究 MicroK8s,想拿我一台 vps 做主服务,然后把另外几台小 vps 添加到这个集群里,这样能充分利用硬件资源,部署服务直接都在主服务上就好了?
    19 条回复    2023-06-08 12:44:23 +08:00
    anubu
        1
    anubu  
       2023-06-07 19:10:06 +08:00   ❤️ 1
    自己研究学习,折腾着玩是没问题的。主要是网络问题,节点间最好是二层互联的,或者能够借助 overlay 实现二层互联,如基于 wireguard 的 VPN 。可以看看 kairos ,包含开箱即用的 wireguard-vpn 。
    刚刚接触 k8s ,个人还是推荐使用 kubeadm ,在标准的二层网络中进行学习研究。
    ysicing
        2
    ysicing  
       2023-06-07 19:15:09 +08:00
    个人大都数都是基于 k3s 跨云吧。
    我是基于 k3s+tailscale+metallb 实现资源利用的,不然就吃会探针了
    locoz
        3
    locoz  
       2023-06-07 19:41:05 +08:00 via Android
    当然可以,我的服务器现在都在一个集群内,任意一台机器都能通过基于 k8s 的网络架构进行互访,每个部署了 traefik 的节点都相当于一个反代节点,走哪个都能访问到家里服务器或其他云服务器上跑的服务。
    289396212
        4
    289396212  
    OP
       2023-06-07 19:47:09 +08:00
    @ysicing 吃探针是啥意思呀?
    289396212
        5
    289396212  
    OP
       2023-06-07 19:48:22 +08:00
    @locoz 这样是不是有点花生壳的感觉,把家里的电脑当作服务器,请求通过 k8s 的网关来访问家里的电脑
    289396212
        6
    289396212  
    OP
       2023-06-07 19:49:56 +08:00
    @anubu kubeadm 和 MicroK8s 用起来有什么区别吗,我看微软的教程是用 MicroK8s 来学的
    locoz
        7
    locoz  
       2023-06-07 20:22:03 +08:00
    @289396212 #5 跟花生壳不一样,花生壳是起到 DDNS 的效果,也就是动态设置 DNS 的解析为最新的公网 IP 。这种情况其实更像是没有缓存机制的 CDN ,而如果运行服务的节点没有公网 IP ,那就是多节点的 FRP 。
    ysicing
        8
    ysicing  
       2023-06-07 20:54:53 +08:00
    @ysicing 像 mjj 们一样吃灰跑探针,闲置
    anubu
        9
    anubu  
       2023-06-07 21:18:11 +08:00
    @289396212 kubeadm 是一个生产级的集群部署工具,个人使用场景更偏向学习运维侧的集群部署维护相关技能。需要提前规划集群节点数量、网络地址、控制平面、业务平面高可用支持等问题,在个人电脑或虚拟化平台上启动多个虚拟机去模拟多节点集群。基本覆盖了实际生产中部署一个集群要考虑的主要方面了。
    microk8s 我没有使用过,印象中可能和 kind 差不多。更偏向 k8s 集群的实际使用而不是部署维护,可以快速的拉起一个集群而不用关注具体的细节。方面快速的学习在 k8s 集群上部署应用,或者基于 api 二次开发。
    defunct9
        10
    defunct9  
       2023-06-07 21:20:52 +08:00
    你这种想法是有问题的
    Actrace
        11
    Actrace  
       2023-06-07 21:23:18 +08:00
    k8s 或者 k3s 这类集群,本身就很吃资源,vps 不够玩。
    管理独立服务器倒是可以试试。但是 k8s 本身就很吃人工,之后有的忙。
    GeruzoniAnsasu
        12
    GeruzoniAnsasu  
       2023-06-07 21:39:06 +08:00
    k8s 会「充分地 **耗尽**」你为数不多的资源


    单主机内存没超 8G 都不建议运行集群节点,不过当然了,学习和玩的目的的话也不是不能忍。

    microk8s 声称只需要 512m 内存就能跑起 non control plane 的节点,但实际上我自己试过,2G 的机子跑起来都略微吃力。coredns 和 calico 那几个核心服务都够喝一壶了,而且由于使用的组件和网络架构跟其它 k8s 实现不太一样,你找教程的时候会比较痛苦,而且也不通用。
    locoz
        13
    locoz  
       2023-06-08 01:01:57 +08:00
    @anubu #9 “需要提前规划集群节点数量、网络地址、控制平面、业务平面高可用支持等问题”
    错误的,kubeadm 正常按照 k8s 官方文档部署并不需要考虑这些,直接按高可用方式配置,单主多主都能用,剩下没提到的全部默认配置就行了,非特殊场景毫无问题。
    dayeye2006199
        14
    dayeye2006199  
       2023-06-08 01:16:01 +08:00
    自己用用没问题的。
    网络问题需要设置一下。可以用 consul 这种 mesh solution ( https://www.consul.io/)

    记得多关注一下流量的问题。节点间通讯流量有时候很客观的,账单会令人瞩目
    zedpass
        15
    zedpass  
       2023-06-08 11:12:22 +08:00
    k8s 本身就很耗费资源,你这种需求不如使用 docker swarm
    Gonlandooo
        16
    Gonlandooo  
       2023-06-08 11:47:31 +08:00
    你使用 k8s 集群情况下你应用也受限于 k8s 的 pod 所在主机的计算资源,你送的小主机本来裸机还能跑的东西,挂个 k8s 估计跑不动了
    anubu
        17
    anubu  
       2023-06-08 11:49:14 +08:00
    @locoz kubeadm 并不负责节点的创建和管理,如果搭建一个 6 节点集群的学习环境,6 个虚拟机需要自行部署,虚拟机的 IP 是需要规划一下的。学习环境的高可用主要是 VIP 和 LB ,不管是传统的 keepalived+haproxy ,还是 kube-vip 、metallb ,都需要自己维护,kubeadm 不负责这部分。kubeadm 只是提供了--control-plane-endpoint 选项来指定 VIP 或域名,以支持高可用控制平面,但具体的 VIP 和 LB 实现都要自己管理维护。
    locoz
        18
    locoz  
       2023-06-08 11:59:24 +08:00
    @anubu #16 这算啥“规划”...如果用虚拟机搭建,虚拟机软件通常都会预设一个虚拟机专用网络的网段,而且也可以让虚拟机直接从宿主机网络获取 IP ,在没有强迫症必须要连号 IP 的情况下,直接用就完事了。LB 用 metallb 直接两行还是三行命令按着复制粘贴部署,给个没被其他设备用的 IP 段就行。control-plane-endpoint 参数随便指定个自定义的域名,然后每个节点设个 /etc/hosts 就完事,这个参数也是官方文档里直接就提到的。

    都是简单按说明做个配置直接用就行,算不上规划,甚至是管理维护吧...哪有那么复杂?
    anubu
        19
    anubu  
       2023-06-08 12:44:23 +08:00
    @locoz 是我唐突了。因为上下文是在讨论 microk8s\kind 这种可以暂时忽略节点概念的一键启动工具,所以下意识把 kubeadm 这种至少要考虑创建几个虚拟机的工具定义为需要规划的。误导了大家,抱歉。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1766 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:37 · PVG 00:37 · LAX 08:37 · JFK 11:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.