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

大佬们,请教一个 k8s 可靠性问题

  •  
  •   Cola98 · 2023-12-20 09:16:33 +08:00 · 3070 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    容器化部署和二进制部署,是不是二进制部署会更加可靠,我是在 VMware 虚拟化出来的主机,之后在这些主机上使用容器化方式部署 k8s ,但是经历断电后,再开机查看集群的时候,kubelet 提示找不到 port ,查看容器发现所有容器都不见了,所以猜想二进制部署的应该会比容器化部署的可靠性更好?

    第 1 条附言  ·  2023-12-21 23:25:06 +08:00
    今天重新安装了集群,之前有一些说法错误,kubekey 是使用 kubeadm 安装的,除了 etcd 和 kubelet 组件,剩下组件都是容器化的,当时没有注意到运行时是 containerd ,全部心思都花在 docker 上,但是后续的断电重启实验,docker 并没有影响,镜像都还在,但是 containerd 中的镜像和容器都不见了,比较好奇为什么镜像也会不见
    31 条回复    2024-01-04 18:00:17 +08:00
    fengxsong
        1
    fengxsong  
       2023-12-20 09:19:05 +08:00
    你二进制部署管理的是 systemd ,容器部署管理的 kubelet->cri
    Cola98
        2
    Cola98  
    OP
       2023-12-20 09:20:41 +08:00
    @fengxsong 嗯嗯,因为我看 systemctl status kubelet 还是正常的
    rebelsre
        3
    rebelsre  
       2023-12-20 09:23:41 +08:00
    容器没设置开机自启吧
    另外 VMware -> 容器 -> k8s ,这套娃呢。。
    我是 VMware 搞了几台虚拟机出来用 kubeadm 原生态部署
    Cola98
        4
    Cola98  
    OP
       2023-12-20 09:30:02 +08:00
    @rebelsre enable 嘛?这是设置的,确实有点套娃了,我是用 kubekey 部署的,里面也用到了 kubeadm ,好像除了 kubelet 组件,其他组件都是容器化的。
    ExplodingFKL
        5
    ExplodingFKL  
       2023-12-20 09:34:21 +08:00   ❤️ 1
    直接二进制部署即可,套娃不可取,或者用 k3s 也可以,该有的都有
    miaosl
        6
    miaosl  
       2023-12-20 09:38:12 +08:00
    老哥容器化部署有啥全面的教程吗?
    我开始学的时候就是容器化
    现在网上搜的时候都不一样呜呜呜
    StoneHuLu
        7
    StoneHuLu  
       2023-12-20 09:59:00 +08:00
    自用就 k3s 一键启动,自学就买两个伸缩性实例一个月也就几顿饭钱自己搭,投产就直接买 ack
    Cola98
        8
    Cola98  
    OP
       2023-12-20 10:05:22 +08:00
    @miaosl 我是用 kubekey 的,你可以康康
    Cola98
        9
    Cola98  
    OP
       2023-12-20 10:06:07 +08:00
    @ExplodingFKL k3s 看 etcd 给换成了 sqlite ,还是想体验下原汁原味的,哈哈哈
    mango88
        10
    mango88  
       2023-12-20 10:20:13 +08:00
    我是用 kubekey 部署的集群 跑了一年多了 挺稳定的

    20 个 node
    jokimina
        11
    jokimina  
       2023-12-20 10:20:38 +08:00   ❤️ 1
    小运维一个。

    公司狂推 k8s, 上云搞生态。

    自己的服务 一个 vps 上 docker-compose ,重要服务加上服务监测告警和自动修复脚本基本都够了,不重要的 docker 或者 docker-compose 裸奔,挂个周备份。场景不同没必要折腾自己,达成目的最重要。

    一般的服务真没那么容易死,二进制裸奔也不是啥大问题,注意对外暴露的服务不要有严重漏洞和安全问题就行
    helone
        12
    helone  
       2023-12-20 10:21:20 +08:00
    @Cola98 k3s 也可以 etcd 的
    julyclyde
        13
    julyclyde  
       2023-12-20 10:33:08 +08:00
    新发明了二进制部署这个词啊
    lasuar
        14
    lasuar  
       2023-12-20 10:50:11 +08:00
    二进制部署 => 裸机部署
    miaosl
        15
    miaosl  
       2023-12-20 11:07:01 +08:00
    @Cola98 好好好
    vivisidea
        16
    vivisidea  
       2023-12-20 11:14:49 +08:00
    @Cola98 k3s 的源代码就是 kubernetes 的,就是做了整合,在一个 k3s 进程里面把 etcd/apiserver/scheduler 等关键组件都整合进去了,而且删减了很多过时的和比较偏门的特性,用起来没啥区别

    我们给客户私有化部署的时候都是用的 k3s
    Cola98
        17
    Cola98  
    OP
       2023-12-20 11:24:35 +08:00
    @helone
    @vivisidea

    好咧,后续关注下 k3s ,感谢大佬安利
    Cola98
        18
    Cola98  
    OP
       2023-12-20 11:25:13 +08:00
    @lasuar
    @julyclyde

    学艺不精,应该是裸机部署,感谢指正
    anubu
        19
    anubu  
       2023-12-20 11:44:01 +08:00   ❤️ 2
    到目前的讨论似乎有点混乱,需要准确定义一下“容器部署”,是 kind 这种整个集群在容器中的情况还是 kubeadm 集群组件使用 static pod 的情况。
    kubeadm 是官方支持的部署方案,稳定性肯定没问题的。二进制部署有点过于 old school 的感觉,我个人没有用过,不认为能提供额外的稳定性,并且维护复杂。

    另外,虚拟机上使用 kubeadm 标准部署,并没有特别的套娃。公有云应该是类似的结构,甚至托管的控制平面都是虚拟的。kind 类似方案有点套娃,但用于开发测试环境没有什么问题。
    HTDit
        20
    HTDit  
       2023-12-20 11:50:46 +08:00 via Android   ❤️ 1
    etcd 数据损坏了吧,重启前备份 etcd 数据,在怎么重启都不会死
    HTDit
        21
    HTDit  
       2023-12-20 11:52:56 +08:00 via Android
    推崇二进制部署是组件用 systemd 管理,主机意外重启更快启动,真要二进制部署的,组件故障也要有手动恢复的能力。
    Cola98
        22
    Cola98  
    OP
       2023-12-20 12:53:32 +08:00
    @anubu 感谢回复,我说的有歧义,我说的容器部署并不是 kind 方式,使用 kubekey 部署,当时看的时候,应该室友几个组件是容器化的,具体一块当时没有留意,但是 kubelet 和 etcd 是二进制,可以使用 systemctl 查看到的,再次感谢!
    Cola98
        23
    Cola98  
    OP
       2023-12-20 12:54:36 +08:00
    @HTDit 是的,当时偷懒了好几次,不过这次和之前不同的地方在于这次是所有 docker 中所有容器都没有了 orz ,怀疑是等待时间太长了?
    Evovil
        24
    Evovil  
       2023-12-20 17:31:46 +08:00   ❤️ 1
    >vmwre 可以直原生接拉 k8s 并具备虚拟化的 cni,需要了解 NSX ,DRS ,VMotion 等相关层,对基本原理和相关技能要求很高。
    https://docs.vmware.com/tw/VMware-vSphere/8.0/rn/vmware-vsphere-with-tanzu-80-release-notes/index.html


    >容器化部署和二进制部署,是不是二进制部署会更加可靠
    我认为是的,套娃只会增加不可靠性,取决于你是玩还是生产,生产建议 3master 以上+二进制,私有云方面见过阿里云小飞天(非完整),ack 相关套件 master 那几个核心组件也是二进制部署的

    看 op 似乎是非大规模生产集群
    kubeadm 一把梭,不管是升级,改配置,更新证书都方便。
    Cola98
        25
    Cola98  
    OP
       2023-12-20 21:10:23 +08:00
    @Evovil 多谢大佬,我是个人集群,弄着好玩,学习学习
    cI137
        26
    cI137  
       2023-12-21 07:43:27 +08:00 via iPhone
    @Cola98 那是很久以前了,现在可以用 etcd
    winson030
        27
    winson030  
       353 天前
    @cI137 话说,用 mysql 替代 etcd 作为 data store 有什么坑么?
    我的 k3s 集群用的是集群外的 mysql 服务容器作为 data store ,目前用着没啥问题。
    不知道访问量上来后会不会有坑
    Cola98
        28
    Cola98  
    OP
       353 天前
    @winson030 问题主要是并发和元数据库存储这一块吧
    cI137
        29
    cI137  
       352 天前 via iPhone
    @winson030 etcd 是本身就支持高可用的,mysql 需要自己做高可用。当然,你能确定你的 mysql 不会挂那就无所谓
    cI137
        30
    cI137  
       352 天前 via iPhone
    @cI137 如果你的 etcd 只有单节点,那高不高可用也无所谓😃
    cI137
        31
    cI137  
       352 天前 via iPhone
    @cI137 如果你的 etcd 只有单节点,那高不高可用也无所谓😃,看你自己的需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:40 · PVG 17:40 · LAX 01:40 · JFK 04:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.