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

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

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

    我们的环境是私有云,搭建是用半自动的方式的,就是把启动需要的二进制文件和配置文件都分发到各个节点,虽然说这样可以改的地方比较多,比较灵活,但是非常容易改错某个配置导致集群启动不了。想问问你们公司都是咋搭建 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,就可以愉快使用 Ansible 了吧
    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+rancher
    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
       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   ·   实用小工具   ·   5785 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 01:42 · PVG 09:42 · LAX 17:42 · JFK 20:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.