各位公司的 K8S 集群是通过什么方式搭建的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhoudaiyu
V2EX    Kubernetes

各位公司的 K8S 集群是通过什么方式搭建的?

  •  
  •   zhoudaiyu
    PRO
    2021-05-28 06:16:48 +08:00 via iPhone 12117 次点击
    /div>
    这是一个创建于 1664 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们的环境是私有云,搭建是用半自动的方式的,就是把启动需要的二进制文件和配置文件都分发到各个节点,虽然说这样可以改的地方比较多,比较灵活,但是非常容易改错某个配置导致集群启动不了。想问问你们公司都是咋搭建 k8s 的? kubearm ? rancher ? GitHub 上面的全自动化脚本?还是?

    67 条回复    2021-09-09 17:54:57 +08:00
    labulaka521
        1
    labulaka521  
       2021-05-28 06:42:28 +08:00 via iPhone
    用腾讯云
    kennylam777
        2
    kennylam777  
       2021-05-28 06:52:41 +08:00
    Kubesprary 或者全套 OpenStack 都有
    whileFalse
        3
    whileFalse  
       2021-05-28 06:55:32 +08:00
    生产:云托管
    测试:MicroK8s
    ericls
        4
    ericls  
       2021-05-28 07:06:59 +08:00 via iPhone
    这种东西一定要先手动一次 才敢用自动的
    turingli
        5
    turingli  
       2021-05-28 07:35:44 +08:00 via Android
    microk8s
    arischow
        6
    arischow  
       2021-05-28 07:39:48 +08:00 via iPhone
    EKS
    kennylam777
        7
    kennylam777  
       2021-05-28 07:54:06 +08:00
    然 kubespray 可以自搭好境及分配置,但是不 kubeadm 的,不可能敢自己搭的

    我的建是,你有 CKA 格才玩自建 k8s 吧,起了也 troubleshoot,CKA 不考管的。
    plko345
        8
    plko345  
       2021-05-28 08:12:04 +08:00 via Android
    跟着文档走,上生产别看别人的博客和百度
    d0m2o08
        9
    d0m2o08  
       2021-05-28 08:12:35 +08:00   1
    之前用 kubeadm
    现在用 kubeasz
    ansible 一把梭
    yalin
        10
    yalin  
       2021-05-28 08:13:16 +08:00
    rancher
    Webpoplayer
        11
    Webpoplayer  
       2021-05-28 08:26:46 +08:00
    rancher
    lazyyz
        12
    lazyyz  
       2021-05-28 08:29:07 +08:00 via Android
    rancher +1
    JosephHan
        13
    JosephHan  
       2021-05-28 08:32:14 +08:00
    rancher
    bootvue
        14
    bootvue  
       2021-05-28 08:35:18 +08:00
    k3s rancher
    anzu
        15
    anzu  
       2021-05-28 09:19:20 08:00
    测试单机 minikube 一把梭
    生产用云提供的
    jingslunt
        16
    jingslunt  
       2021-05-28 09:27:59 +08:00
    国内社区的 sealos 挺好的,也是一键部署 HA,还支持大量插件 helm/istio/ceph/efk
    dunhanson
        17
    dunhanson  
       2021-05-28 09:28:48 +08:00
    自己手搭建
    koala9527
        18
    koala9527  
       2021-05-28 09:34:31 +08:00
    阿里云 ACK
    coolcoffee
        19
    coolcoffee  
       2021-05-28 09:35:09 +08:00 via iPhone   2
    自己搭建只是学习。但是测试环境和生产环境都用的 aws 和 aliyun 提供的。

    因为自己搭建的无法解决负载均衡、不好解决持久化存储、不好动态扩容 node 。

    就算上面的问题都能自己开发插件解决,但是这成本已经远远超出了直接托管云服务的成本。何况阿里云的基础托管还不收钱。
    Illusionary
        20
    Illusionary  
       2021-05-28 09:37:44 +08:00
    dev qa 环境是在 idc 机房的,用二进制部署,生产直接买阿里云 ack
    kennylam777
        21
    kennylam777  
       2021-05-28 09:38:11 +08:00
    @coolcoffee

    你所要的 LB, PV, Scaling 在 OpenStack 都能包,拆的也不用自己吧,成方案是有不少的。
    QBS
        22
    QBS  
       2021-05-28 09:39:11 +08:00
    自己搭过,也用过 rancher 和 kubesphere,推荐 rancher 。体感:无脑简单,对运维体检最佳。
    arbit
        23
    arbit  
       2021-05-28 09:40:44 +08:00
    kuboard 照着官网这个搭,没遇到什么坑
    risky
        24
    risky  
       2021-05-28 09:42:49 +08:00
    kubeadm
    joesonw
        25
    joesonw  
       2021-05-28 09:43:29 +08:00
    @coolcoffee 即使是 baremetal, LB 和 CSI 也有现成解决方案. 动态扩容的话应该是只适合云上, 自己部署的话哪有多余的闲暇机器.
    lework1234
        26
    lework1234  
       2021-05-28 09:47:24 +08:00
    通过 kubeadm 方式部署,使用 https://github.com/lework/kainstall 脚本一键安装的。
    jingslunt
        27
    jingslunt  
       2021-05-28 09:51:37 +08:00
    rancher 部署方式还真的多
    生产环境
    RancherD
    Helm CLI
    RKE
    开发环境
    docker
    lawmil
        28
    lawmil  
       2021-05-28 09:51:40 +08:00
    线上直接托管阿里云
    salmon5
        29
    salmon5  
       2021-05-28 09:51:42 +08:00
    二进制加 ctrl+c,ctrl+v
    kennylam777
        30
    kennylam777  
       2021-05-28 09:52:52 +08:00
    @lework1234 又一子......的方法是先用 playbook 安好 python3,就可以愉快使用 Anible 了吧
    kennylam777
        31
    kennylam777  
       2021-05-28 10:11:11 +08:00   2
    我大部分的回答都不,都私有半自的了,竟然大部分答案都是公有管,有一堆手小作的 kubeadm 的方案......

    起是要 CNCF 的方案吧,不然就走 K8s the hardway 的路。

    Rancher 是 CNCF 的,但 CNI 有限,半自化上比 Ansible 方案是太傻瓜了一,Rancher 公司也活了一段。

    Kubeasz 也了 CNCF,CNI 也多,全中文的教程及化像是有用的,但是竟是工作不知道目能活多久,我是不用的因有伺服器。

    kubespray 是 kubernetes-sigs 下的官方目,比 Kubeasz 有保,但是就麻了。

    我得起要有 OpenStack 一的西才算私有吧,不然就只是 bare metals 。
    NaVient
        32
    NaVient  
       2021-05-28 10:20:48 +08:00
    @kennylam777 #31 看了很多回答,就大兄弟你的回答靠谱点
    lework1234
        33
    lework1234  
       2021-05-28 10:43:20 +08:00
    @kennylam777 嗯,你这个方案也可行,不过还需要个前提 python3,以及下载对应的 playbook,不够方便。
    kennylam777
        34
    kennylam777  
       2021-05-28 10:54:36 +08:00
    @lework1234 kubespray 或 kubeasz 就全套 playbook 了, scaling 例如安後的 add/remove master/slave nodes 。

    自己一套自化有,但投入生境的工夫是很多的。

    Ansible 方案需要做的事是建立 inventory file 及 variables,和源 playbooks 完全分,完全是一 git + kubesprary/kubeasz 做 submodule 就可以管好的事。

    我想 kubespray 可以配一 cn mirror urls 的 variables file 就能在用了吧。
    wingoo
        35
    wingoo  
       2021-05-28 11:01:33 +08:00
    eks
    arischow
        36
    arischow  
       2021-05-28 11:04:02 +08:00
    楼上回答得很好啊。

    但是把其他人批判一番就挺逗的,根据标题和描述进来回答云托管有问题?
    www5070504
        37
    www5070504  
       2021-05-28 11:09:27 +08:00
    楼上的楼上没什么问题

    描述第一句就说了环境是私有云
    xin053
        38
    xin053  
       2021-05-28 11:12:15 +08:00   1
    @kennylam777 kubespray 新版有 generate_list.sh 脚本列出使用的二进制文件以及镜像(可以手动下载并上传到私仓),offline.yml 文件可以配置整个剧本使用私仓(包括 apt/yum 源,pip 源,二进制文件,docker 镜像等)

    我司目前就是将 kubespray 作为 submodule,然后自己写相关组件的剧本,反正 kubespray 挺好用的
    hijoker
        39
    hijoker  
       2021-05-28 11:54:07 +08:00
    kubeadm 搭建的
    kennylam777
        40
    kennylam777  
       2021-05-28 12:28:39 +08:00   1
    @xin053 kubesprary 的 contrib/offline/真的不

    kubesprary as a submodule 的方法我安心的是,只要跟上游的 release(e.g. 2.16),就可以享用上游的一段,升的候也有可依
    breezeFP
        41
    breezeFP  
       2021-05-28 13:16:35 +08:00
    sealos
    Rexyu
        42
    Rexyu  
       2021-05-28 13:26:36 +08:00
    Azure 搭建的 AKS
    fire2y
        43
    fire2y  
       2021-05-28 13:32:59 +08:00
    terraform 跑 eks
    kugouo4
        44
    kugouo4  
       2021-05-28 14:19:48 +08:00   1
    kubeadm+rancher or rke+ranchr
    konakona
        45
    konakona  
       2021-05-28 14:23:09 +08:00
    由于公司不需要提供 SAAS 或者 PAAS 的底层自动搭建架构,直接用的腾讯云 TKE
    knives
        46
    knives  
       2021-05-28 14:51:13 +08:00
    etcd + k3s + rancher,跑在阿里云的便宜机器上,姑且够用。
    returnErr
        47
    returnErr  
       2021-05-28 15:34:57 +08:00
    ansible 自建.... task 自己写下就可以了
    YzSama
        48
    YzSama  
       2021-05-28 16:14:06 +08:00
    sealos 和 kubeadm,目前再用的。
    Firxiao
        49
    Firxiao  
       2021-05-28 16:37:21 +08:00
    "非常容易改错某个配置导致集群启动不了"
    不管你用哪种方式搭建, 解决问题的话是要创建多个环境,例如 dev--> uat > prod 不要在生产环境直接改, 用流程来避免不当操作.
    huweic
        50
    huweic  
       2021-05-28 17:39:06 +08:00
    kubeasz
    xiaooloong
        51
    xiaooloong  
       2021-05-28 17:48:01 +08:00
    之前用 rke,现在用 kubeadm
    milletlok
        52
    milletlok  
       2021-05-28 18:41:07 +08:00
    学习一下
    SuperManNoPain
        53
    SuperManNoPain  
       2021-05-28 18:47:44 +08:00
    啊,这,k8s 这么流行了么,还是我太落后
    ZehaiZhang
        54
    ZehaiZhang  
       2021-05-28 18:50:38 +08:00
    阿里云免费的 k8s 界面完成的
    fuis
        55
    fuis  
       2021-05-28 19:32:37 +08:00   1
    我自己的话,生产集群用 kubespary 。自己用的开发集群用 kubeadm,或者 sealos
    没有 PV/PVC 可以用 iomesh.com
    监控的话用 Prometheus,日志用 EFK
    zhoudaiyu
        56
    zhoudaiyu  
    OP
    PRO
       2021-05-28 21:40:03 +08:00 via iPhone
    @Firxiao 其实是搭建新集群的时候出现的问题,线上不敢这样操作
    lixiang2017
        57
    lixiang2017  
       2021-05-29 04:15:42 +08:00 via Android
    sealos 一键完成
    hotsymbol
        58
    hotsymbol  
       2021-05-30 13:25:38 +08:00
    AWS EKS 或者 Azure AKS
    firefox12
        59
    firefox12  
       2021-05-30 16:03:49 +08:00
    居然没有 k8seasy. k8seasy 一键安装 二进制服务。
    mingqing
        60
    mingqing  
       2021-05-30 21:41:08 +08:00
    https://github.com/opsaid/deploy-k8s

    生产环境只有自己通过二进制部署,才敢用,最近刚整理了一点部署脚本
    kennylam777
        61
    kennylam777  
       2021-06-03 23:20:51 +08:00
    @mingqing 我不明白你口中的二制部署有何必要......看了你的安方法,不是直接在 yum etcd 。

    正式一的 playbook 都可以自 repo,比起自己在 local files/git repo 管理 binaries 有用得多,生境就不要玩吧。

    看看人家 production grade 的 playbook,有考 disaster recovery,不是一步安好就完事的。
    https://github.com/kubernetes-sigs/kubespray/blob/master/docs/recover-control-plane.md
    JimmyXu
        62
    JimmyXu  
       2021-06-04 15:35:18 +08:00
    @Illusionary 我们现在也准备这样来实现,能加下能您这边联系方式,聊聊吗?
    JimmyXu
        63
    JimmyXu  
       2021-06-04 15:36:42 +08:00
    @Illusionary 最近公司也准备忘这方面走,能加下您联系方式共同交流下吗?
    mingqing
        64
    mingqing  
       2021-06-06 13:52:09 +08:00
    @kennylam777 kubespray 我自己都有在看在学习,但是有很多功能、组件在各自业务体系里完全用不上,而通过这种定制化精简的二进制部署,维护者会更熟悉这套集群的基础架构,基础设施方便接入 cicd 工作流,而且组件单一,定位问题简单,而不是通过第三方工具自动化完成部署,之后出问题就甩给开源工具
    kennylam777
        65
    kennylam777  
       2021-06-07 03:59:37 +08:00
    @mingqing 嗯. 如果你是重自建 k8s cluster 涉及自家的 CI/CD 那用自己的 Ansible playbook 是可厚非的, 但其他使用者要理解你的 playbook 要有 K8s the hard way 的能力, 如果是公司分工的, 我是 Kubespray, 除非 team members 都是 CKA 一家的
    johnniang
        66
    johnniang  
       2021-07-14 09:37:20 +08:00 via Android
    kubekey
    leiuu
        67
    leiuu  
       2021-09-09 17:54:57 +08:00
    目前的方案推荐排序:

    rancher 10
    kubeadm 10
    Ansible 6
    sealos 5
    playbook 5
    kubeasz 4
    OpenStack 3
    Kubesprary 3
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     924 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:19 PVG 06:19 LAX 14:19 JFK 17:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86