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

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

  •  
  •   zhoudaiyu · 187 天前 via iPhone · 6101 次点击
    这是一个创建于 187 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    67 条回复    2021-09-09 17:54:57 +08:00
    labulaka521
        1
    labulaka521   187 天前 via iPhone
    用腾讯云
    kennylam777
        2
    kennylam777   187 天前
    Kubesprary 或者全套 OpenStack 都有
    whileFalse
        3
    whileFalse   187 天前
    生产:云托管
    测试:MicroK8s
    ericls
        4
    ericls   187 天前 via iPhone
    这种东西一定要先手动一次 才敢用自动的
    turingli
        5
    turingli   187 天前 via Android
    microk8s
    arischow
        6
    arischow   187 天前 via iPhone
    EKS
    kennylam777
        7
    kennylam777   187 天前
    雖然說 kubespray 可以自動搭好環境及分發配置,但是不會 kubeadm 的話,不可能敢自己搭的

    我的建議是,你有 CKA 資格才玩自建 k8s 吧,起碼掛了也會 troubleshoot,CKA 不考雲託管的。
    plko345
        8
    plko345   187 天前 via Android
    跟着文档走,上生产别看别人的博客和百度
    d0m2o08
        9
    d0m2o08   187 天前   ❤️ 1
    之前用 kubeadm
    现在用 kubeasz
    ansible 一把梭
    yalin
        10
    yalin   187 天前
    rancher
    Webpoplayer
        11
    Webpoplayer   187 天前
    rancher
    lazyyz
        12
    lazyyz   187 天前 via Android
    rancher +1
    JosephHan
        13
    JosephHan   187 天前
    rancher
    bootvue
        14
    bootvue   187 天前
    k3s rancher
    anzu
        15
    anzu   187 天前
    测试单机 minikube 一把梭
    生产用云提供的
    jingslunt
        16
    jingslunt   187 天前
    国内社区的 sealos 挺好的,也是一键部署 HA,还支持大量插件 helm/istio/ceph/efk
    dunhanson
        17
    dunhanson   187 天前
    自己手搭建
    koala9527
        18
    koala9527   187 天前
    阿里云 ACK
    coolcoffee
        19
    coolcoffee   187 天前 via iPhone   ❤️ 2
    自己搭建只是学习。但是测试环境和生产环境都用的 aws 和 aliyun 提供的。

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

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

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

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

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

    Kubeasz 也剛剛過了 CNCF,CNI 選擇也多,全中文的教程及國內優化鏡像是有用的,但是畢竟是義務工作不知道項目能活多久,我是不會用的因為沒有國內伺服器。

    kubespray 是 kubernetes-sigs 下的官方項目,比 Kubeasz 有保證,但是國內網絡就麻煩了。

    我覺得起碼要有 OpenStack 一類的東西才算私有雲吧,不然就只是 bare metals 。
    NaVient
        32
    NaVient   187 天前
    @kennylam777 #31 看了很多回答,就大兄弟你的回答靠谱点
    lework1234
        33
    lework1234   187 天前
    @kennylam777 嗯,你这个方案也可行,不过还需要个前提 python3,以及下载对应的 playbook,不够方便。
    kennylam777
        34
    kennylam777   187 天前
    @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   186 天前
    eks
    arischow
        36
    arischow   186 天前
    楼上回答得很好啊。

    但是把其他人批判一番就挺逗的,根据标题和描述进来回答云托管有问题?
    www5070504
        37
    www5070504   186 天前
    楼上的楼上没什么问题

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

    我司目前就是将 kubespray 作为 submodule,然后自己写相关组件的剧本,反正 kubespray 挺好用的
    hijoker
        39
    hijoker   186 天前
    kubeadm 搭建的
    kennylam777
        40
    kennylam777   186 天前   ❤️ 1
    @xin053 kubesprary 的 contrib/offline/真的不錯

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

    生产环境只有自己通过二进制部署,才敢用,最近刚整理了一点部署脚本
    kennylam777
        61
    kennylam777   180 天前
    @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   179 天前
    @Illusionary 我们现在也准备这样来实现,能加下能您这边联系方式,聊聊吗?
    JimmyXu
        63
    JimmyXu   179 天前
    @Illusionary 最近公司也准备忘这方面走,能加下您联系方式共同交流下吗?
    mingqing
        64
    mingqing   177 天前
    @kennylam777 kubespray 我自己都有在看在学习,但是有很多功能、组件在各自业务体系里完全用不上,而通过这种定制化精简的二进制部署,维护者会更熟悉这套集群的基础架构,基础设施方便接入 cicd 工作流,而且组件单一,定位问题简单,而不是通过第三方工具自动化完成部署,之后出问题就甩给开源工具
    kennylam777
        65
    kennylam777   177 天前
    @mingqing 嗯. 如果你是重頭自建 k8s cluster 還涉及自家的 CI/CD 那用自己的 Ansible playbook 是無可厚非的, 但其他使用者要理解你的 playbook 要有 K8s the hard way 的能力, 如果是公司級分工的話, 我還是會選擇 Kubespray, 除非 team members 都是 CKA 一類專家級的
    johnniang
        66
    johnniang   140 天前 via Android
    kubekey
    leiuu
        67
    leiuu   82 天前
    目前的方案推荐排序:

    rancher 10
    kubeadm 10
    Ansible 6
    sealos 5
    playbook 5
    kubeasz 4
    OpenStack 3
    Kubesprary 3
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3964 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:01 · PVG 11:01 · LAX 19:01 · JFK 22:01
    ♥ Do have faith in what you're doing.