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

k8s 这车感觉不好上啊,求经验

  •  
  •   snappyone · 2019-07-17 14:36:31 +08:00 · 13715 次点击
    这是一个创建于 1962 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基础的东西学习完,感觉还有很多相关的东西要搞,现在是简单几个 yaml 把一些个人项目迁移到私有 k8s 了,存储暂时弄了个最简单的 NFS+独立的 mysql。

    但是接下来的什么 helm、glusterfs、ceph、prometheus,heketi 一大堆东西啊,有经验的老哥给点建议后面怎么学

    61 条回复    2019-07-24 02:08:37 +08:00
    ipwx
        1
    ipwx  
       2019-07-17 14:39:18 +08:00
    首先,你需要有一个真的集群作为实验环境……
    snappyone
        2
    snappyone  
    OP
       2019-07-17 14:41:51 +08:00
    @ipwx 集群有了啊,9 个 4g 的 vm 应该勉强够了吧
    benzalus
        3
    benzalus  
       2019-07-17 14:50:10 +08:00   ❤️ 2
    我看这个入的门:

    [Kubernetes Handbook]( https://jimmysong.io/kubernetes-handbook/)

    然后转 eks 了,lz 说的大部分都可以通过 helm 安装,配配参数就行

    prometheus-operator 是个趋势,感觉比直接装 prometheus 好,除非有经验
    laravel
        4
    laravel  
       2019-07-17 14:50:18 +08:00
    @ipwx 我现在有 2 台 300/3 年的那种 1G 1M 的机器 还有个 2 核 4G 的机器 ,够玩了吗?
    我一般都在虚拟机上搭建
    yeya24
        5
    yeya24  
       2019-07-17 14:54:12 +08:00
    @laravel 1G 1M 的那种估计用不上  2 核 4G 的可以勉强用用

    @snappyone 首先看你是不是真的要上 k8s,如果是个人项目的话没什么必要,你根本用不到 k8s 里面的一些特性,跑在哪里不是跑。 当然你想要学习 k8s 的话就花点时间学吧,helm 和 prometheus 都比较有学习的必要。至于其他的分布式文件系统和分布式存储,不是生产里面你就不要花时间去学了,nfs 用用算了。
    rockyou12
        6
    rockyou12  
       2019-07-17 15:01:54 +08:00
    如果实际生产用不到……真的不好学,运维很多东西你用 vm 搭了能初步入门,但很多还和硬件和云服务商有关系,经验都是踩坑踩出来的
    DAPTX4869
        7
    DAPTX4869  
       2019-07-17 15:05:51 +08:00
    目前在啃 k8s in action...萌新入门
    snappyone
        8
    snappyone  
    OP
       2019-07-17 15:10:07 +08:00
    @yeya24 兴趣+学习+知识储备吧,现在就是学了一半感觉东西有点多,不知道重点学哪里
    snappyone
        9
    snappyone  
    OP
       2019-07-17 15:12:31 +08:00
    @rockyou12 这个我也同意,正好我自己私人项目也有 10 来个,想拿来做做实验学习知识
    saytesnake
        10
    saytesnake  
       2019-07-17 15:13:19 +08:00
    可能没有深处高科技公司,我也玩不转,Rancher 可以凑合用用,K8S 的原理我几乎搞不清楚。
    GetVM
        11
    GetVM  
       2019-07-17 15:15:00 +08:00
    我从隔壁来的
    gam2046
        12
    gam2046  
       2019-07-17 15:40:21 +08:00
    @rockyou12 #12 十分同意,最早期的时候,我看到 Docker,心想这是什么花里胡哨的东西?我有这功夫,项目都跑起来了,还整这个没用的干嘛,但是现在......真香。没有 Docker 日子都过不下去了。
    swulling
        13
    swulling  
       2019-07-17 15:49:59 +08:00
    只是搭建 K8s 没啥卵用,生产环境的坑得用经验去堆。

    把你们公司的服务都迁移上去,然后解决各种需求,就差不多可以了
    maichael
        14
    maichael  
       2019-07-17 15:54:04 +08:00
    很简单,用不上的东西先不要急着去学去用,你对一些东西都还没有概念就强行去用肯定是难以理解的。

    先最小化玩着,然后根据你的需求和兴趣慢慢往上面叠加。
    coolloves
        15
    coolloves  
       2019-07-17 16:37:16 +08:00
    马克下
    snappyone
        16
    snappyone  
    OP
       2019-07-17 16:41:38 +08:00
    @maichael 这个我不赞同,不是所有东西都能在工作中遇到的
    yeya24
        17
    yeya24  
       2019-07-17 16:48:58 +08:00   ❤️ 2
    @snappyone k8s 里面东西很多,但是如果你就只是为了跑你的一些小项目真的没必要上 k8,个人项目用用 docker compose 的够了。然后具体学习的话,推荐先懂 k8s 的基本概念,复杂的关于钩子、webhook、crd 可以后面再学。先学习 prometheus, 尝试监控你的 k8s 集群以及虚拟机的状态,在这个过程中你就已经能学会 k8s 的很多概念了。后面可以去看 operator,然后用 kubebuilder 自己试试看去撸一个 controller。至于 helm 就是个命令行工具,没有什么难学的用用就会了
    tuxz
        18
    tuxz  
       2019-07-17 16:56:41 +08:00
    我觉得可以先理解各个组件的功能和作用,还有就是多看看官方的 tutorials
    HangoX
        19
    HangoX  
       2019-07-17 17:13:28 +08:00
    我想搭车问问,有没有比 docker-compose 重一点的,k8s 轻量很多的东西,不能每次都把 docker-compose 考上去服务器敲部署吧。
    snappyone
        20
    snappyone  
    OP
       2019-07-17 17:17:25 +08:00
    @yeya24 好的,非常感谢
    hantsy
        21
    hantsy  
       2019-07-17 17:23:40 +08:00
    @HangoX Docker Swarm 也是类似,现在好像就 AWS 支持?
    hantsy
        22
    hantsy  
       2019-07-17 17:25:48 +08:00
    pifuant
        23
    pifuant  
       2019-07-17 17:27:17 +08:00
    local 用 docker compose 跑

    线上当然用云 k8s 平台啊, 自己折腾个蛋蛋
    ladychili
        24
    ladychili  
       2019-07-17 17:30:37 +08:00
    有一门课老师给每人发了$300 谷歌云的 credit 让我们熟悉 k8s,还是上学好啊 2333
    guokeke
        25
    guokeke  
       2019-07-17 17:45:16 +08:00 via Android
    @ladychili Google 当时新用户自带 300$,不是学生也有的
    ladychili
        26
    ladychili  
       2019-07-17 17:46:39 +08:00
    @guokeke 那 300 早玩没了。这个是额外的老师给的码。
    guokeke
        27
    guokeke  
       2019-07-17 17:51:11 +08:00 via Android
    @ladychili 还是上学好。
    shm7
        28
    shm7  
       2019-07-17 17:52:43 +08:00 via iPhone
    我的纯计算的 api,感觉看完 k8s 官网 guide 的一大半就能操作了啊。ingress 路由下 svc 就行了。纯作 scalable 计算平台用的。
    0312birdzhang
        29
    0312birdzhang  
       2019-07-17 19:26:28 +08:00
    坑 istio 中
    awhane
        30
    awhane  
       2019-07-17 19:34:45 +08:00
    heketi + glusterfs ,ceph 不重复吗,集群规模不大,存储直接 local storage 即可,1.14 已经 GA 了
    单机版,docker-compose + lable 完全够用啊
    chinesestudio
        31
    chinesestudio  
       2019-07-17 20:31:15 +08:00
    除了实际经验 真没啥难的 就是各种配置而已 不懂看文档 解决实际应用中的问题就行了。安全配置做好 别成为别人的矿机。
    wc951
        32
    wc951  
       2019-07-17 23:14:29 +08:00 via Android
    没足够多的机器玩不起 k8s 吧
    jiangzhuo
        33
    jiangzhuo  
       2019-07-18 01:52:59 +08:00
    极客时间上有个张磊讲的深入剖析 k8s 我觉得不错,两口气看完,然后对着源码捋一遍基本就没啥问题了。
    dangyuluo
        34
    dangyuluo  
       2019-07-18 02:30:05 +08:00
    这东西还是得在实战中玩,切记用 Spot intance
    snappyone
        35
    snappyone  
    OP
       2019-07-18 06:12:23 +08:00 via Android
    @dangyuluo 这是说 aws spot?
    jaskle
        36
    jaskle  
       2019-07-18 07:10:30 +08:00 via Android
    准确的说你要做好半夜起来跑公司的准备,不不不,做好通宵准备。k8s 对环境要求苛刻,而且需要丰富经验,否则你的服务在哪都找不到,简单点说就是先本地捯饬吧
    binux
        37
    binux  
       2019-07-18 08:13:20 +08:00
    只要你不哪来部署 stateful 的服务,我感觉还是挺简单的啊。
    snappyone
        38
    snappyone  
    OP
       2019-07-18 08:38:16 +08:00 via Android
    @binux 嗯,无状态的无脑部
    snappyone
        39
    snappyone  
    OP
       2019-07-18 08:38:33 +08:00 via Android
    @jaskle 这么惨的吗,在家连到公司 vpn 应该也可以吧
    snappyone
        40
    snappyone  
    OP
       2019-07-18 08:39:02 +08:00 via Android
    @jiangzhuo 这个课程我也买了,但是你说的对着源码是要写那些插件吗
    sazima
        41
    sazima  
       2019-07-18 08:54:18 +08:00
    看你们也和我一样, 我就放心了. 目前项目也就 docker-compose 跑跑, 有时象征性的用上 docker swarm.
    sampeng
        42
    sampeng  
       2019-07-18 09:08:06 +08:00 via iPhone
    我们上 k8s。要学习 1 个月。搞清楚基本大概。一人搭建一遍。跑一遍所有概念。线上环境先跑起来。里面跑点小东西。看看日常的运维需求有哪些。确实很舒服,但不是没有坑。这些坑文档里是没有的。就得人肉躺。然后测试环境开始跑部分业务。又是成堆的坑。这些就半年过去了。再加上培训啥的。总算开始陆续线上服务迁移。

    所以虚拟机?个人应用?想像其他的开源产品一样几天从入门到放弃。k8s 涉及的知识点不允许你这样…我面试跟我说只是自己搭 k8s 了解一下我都是当没学过 k8s
    sampeng
        43
    sampeng  
       2019-07-18 09:11:32 +08:00 via iPhone   ❤️ 1
    这种经验坑产品。我是不建议学。但是可以了解一下概念。比如给我干了几次 helm upgrade 项目。很简单对不对?楼上不是说只是工具么。这里是有经验坑的…

    如果真想学。了解完概念,要么推动你老大公司层级使用。要么,跳到一个正在使用的
    coolloves
        44
    coolloves  
       2019-07-18 10:57:40 +08:00
    @sampeng 那么大佬,有没有个人博客,分享下踩坑经验啊.多谢多谢
    snappyone
        45
    snappyone  
    OP
       2019-07-18 10:59:35 +08:00
    @sampeng 这个确实,现在 vm 也是自己在测试学习,另外正好还有闲置的几十台 vm 啥的,所以打算用起来,也算是积累点知识,比晚上打游戏强
    RorschachZZZ
        46
    RorschachZZZ  
       2019-07-18 11:04:28 +08:00
    @jaskle 光想想就要崩溃了,在一个大集群中找自己的服务在哪几台机器上。。。。
    tiedan
        47
    tiedan  
       2019-07-18 11:13:45 +08:00
    光一个 pod 网络不通,就好几个方向需要去排查,我也在努力填坑 k8s 中
    CMGS
        48
    CMGS  
       2019-07-18 11:43:29 +08:00
    @HangoX 有的。。。我写的 Eru https://github.com/projecteru2/core 哈哈哈。。白皮书在 https://book.eru.sh

    我现在的公司使用 eru 混合编排 container 和 vm,跑了若干个中间件服务恩- -
    scofieldpeng
        49
    scofieldpeng  
       2019-07-18 12:07:32 +08:00
    所以。。。我再家里搞了一个高可用的 k8s 集群==
    snappyone
        50
    snappyone  
    OP
       2019-07-18 12:07:49 +08:00
    @scofieldpeng 哥们你啥配置啊
    scofieldpeng
        51
    scofieldpeng  
       2019-07-18 12:41:27 +08:00
    @snappyone #50 一堆破烂主机堆起来的,大概有 60 多个 g 内存吧
    pifuant
        52
    pifuant  
       2019-07-18 16:30:31 +08:00
    @0312birdzhang istio 是好东西
    pifuant
        53
    pifuant  
       2019-07-18 16:32:30 +08:00
    @sampeng 所谓的坑, 更多是对文档理解不足
    pifuant
        54
    pifuant  
       2019-07-18 16:37:59 +08:00
    @snappyone 不是有 minikube 吗
    karllynn
        55
    karllynn  
       2019-07-18 16:47:15 +08:00
    这个东西其实…没啥必要自学,大公司有环境才行,小公司基本不用
    snappyone
        56
    snappyone  
    OP
       2019-07-18 17:07:50 +08:00 via Android
    @pifuant 集群已经搭建好了,更多是一些云原生的东西有点晕
    sampeng
        57
    sampeng  
       2019-07-18 20:01:03 +08:00
    @pifuant k8s 的文档加起来可以是一本小说了吧。所以才说是经验坑啊。谁看手册全背下来?
    monsterxx03
        58
    monsterxx03  
       2019-07-18 20:59:00 +08:00
    最近在往 k8s 上迁移生产环境, 怎么说呢, 茫茫多的坑, 但搞定了用起来会很舒服: https://blog.monsterxx03.com/tags/k8s/

    实际生产环境中除了 k8s 以外, 还要面对其他程序在 k8s 上跑的各种坑,几个月里我碰到了 jenkins, fluent-bit, datadog-agent ... 等等程序的 bug, 更别提公司内部的业务程序了.
    szkoda
        59
    szkoda  
       2019-07-19 10:47:39 +08:00 via iPhone
    可以先考个 cka,备考时有不少基础知识

    每次用户问一些小白问题,都想让他先给个 cka 或者 ckad 证书,解释基础概念太累了。。
    cmonkey
        60
    cmonkey  
       2019-07-19 11:01:43 +08:00
    首先你要做好当 yaml 工程师傅的心里准备,其他的无非是找本书,搜索一下的功夫
    jiangzhuo
        61
    jiangzhuo  
       2019-07-24 02:08:37 +08:00
    @snappyone #40 知道轮子是个啥,当然很少有机会自己造轮子,但是知道轮子是个啥以后,再去选现成的轮胎、轮毂、内胎之类的时候就有数多了,轮子出了毛病自己也知道去哪找。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:58 · PVG 09:58 · LAX 17:58 · JFK 20:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.