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

k8s 困惑

  •  
  •   leeeee9 2021-04-24 14:13:41 +08:00 5494 次点击
    这是一个创建于 1632 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前我是 6 台机器+1 个虚 ip,keepalive+haproxy 部署,存储用的是 nfs helm 部署了一些常见的中间件(mongo 、redis 、rabbitmq 这些),这些都是以集群方式部署,相比 docker 部署单一镜像,性能是否取决于 service 这一层?如果做测试的话是要怎么测?微服务调用这些中间件的话,微服务逻辑需要修改吗? vscode: 基础的 yaml 、docker compose 、helm 这些转换 vscode 里有推荐的工具嘛; vscode 里目前使用的 IcePanel 这个远程连接的时候有时候好用有时候打不开; 监控: 中间件通过 helm 部署,里面有 prometues 参数,这部分有前辈踩过坑的吗 k8s 进阶有推荐的资料吗?

    26 条回复    2021-04-26 13:28:23 +08:00
    hwdef
        1
    hwdef  
       2021-04-24 14:49:41 +08:00
    1. nfs 的性能貌似也不好?
    2. service 规模不大的话,iptables 撑得住,规模大了可以用 ipvs,再大可以上 ebpf
    leeeee9
        2
    leeeee9  
    OP
       2021-04-24 14:52:47 +08:00
    @hwdef nfs 主要自己玩,ceph 太复杂了,目前考虑 glusterfs
    yuanji
        3
    yuanji  
       2021-04-24 15:03:43 +08:00   1
    docker-compose 的 yaml 转换成 k8s 对象的 yaml 似乎可以用 https://kompose.io/ 这个工具然后手工调整。
    dcoder
        4
    dcoder  
       2021-04-24 16:13:37 +08:00
    @leeeee9
    简单说,就是配置坑无数, k8s 远没有吹的那么好用
    如果你不是专业的 DevOps 运维之类, 还是不要深入研究了
    rbe
        5
    rbe  
       2021-04-24 16:58:48 +08:00
    @jyjmrlk #3 这个我用过,单个 docker-compose.yaml 能转出来一堆 k8s 的 yaml 配置,而且可能是为了避免冲突,转出来的东西有点诡异,对新手不是很友好…
    AkideLiu
        6
    AkideLiu  
       2021-04-24 17:43:51 +08:00 via iPhone
    nfs 性能是问题
    喜欢 object 可以试试 minio
    rancher 的 longhorn 性能不错
    defunct9
        7
    defunct9  
       2021-04-24 20:18:01 +08:00 via iPhone
    k9s
    defunct9
        8
    defunct9  
       2021-04-24 20:20:06 +08:00 via iPhone   2
    为一个公司搭了一套用于生产。里面坑无数。生产和自己闹着玩完全是两码事
    mazyi
        9
    mazyi  
    PRO
       2021-04-24 23:36:55 +08:00 via iPhone
    k8s 也要有一个团队运营的,东西是不错,前提是你们的确需要
    arischow
        10
    arischow  
       2021-04-25 00:06:34 +08:00 via iPhone
    上 EKS AKS GKE
    lhx2008
        11
    lhx2008  
       2021-04-25 00:22:54 +08:00
    在 k8s 搞中间件、数据库是天坑,还是老老实实用云上的
    arischow
        12
    arischow  
       2021-04-25 00:29:00 +08:00 via iPhone
    再看了一眼,上云服务
    chendy
        13
    chendy  
       2021-04-25 01:49:34 +08:00
    如果可以的话,数据库之类的基础服务建议直接买运营商的,k8s 也建议买运营商的,一般出问题几率比自己搞低,而且出了问题可以索赔……
    mritd
        14
    mritd  
       2021-04-25 09:20:01 +08:00 via iPhone
    OrangeLoveMilan
        15
    OrangeLoveMilan  
       2021-04-25 09:32:34 +08:00
    1 、性能不能单说取决于哪一层,而根据业务看瓶颈,举个例子,如果 to c 的高并发,那么 nginx-ingress 的大概率需要调优
    2 、新人上手 k8s,最好从无状态服务开始
    3 、微服务调用中间件,逻辑跟不用 k8s 是一样的,只不过中间件地址变成了中间件的 service 地址加端口
    4 、新手推荐部署方式从 yaml->kustomize->helm->operator 的部署过程渐进
    5 、关于 prometheus 参数,很多开源工具都自带了 prometheus 监控参数获取接口,方便你部署后快速接入 prometheus,具体可以学习下 kube prometheus operator
    6 、存储的话,k8s 支持非常多类型的存储,主要依靠于你对哪种存储比较熟悉。我们测试环境用的 ceph,线上直接用 nas
    amrom
        16
    amrom  
       2021-04-25 09:40:38 +08:00
    推荐一本书,《 Kubernetes in Action 》
    vus520
        17
    vus520  
       2021-04-25 10:07:42 +08:00
    @hwdef 来来来,我们来聊聊头像的事情
    vus520
        18
    vus520  
       2021-04-25 10:08:37 +08:00
    @hwdef 话说不是内核支持的话,会自动优先用 ipvs 么。

    顺道安利一下阿里的 k8s 课程
    https://edu.aliyun.com/course/1651
    vhwwls
        19
    vhwwls  
       2021-04-25 10:48:54 +08:00
    1 、性能是否取决于 service 这一层?
    视整体架构而定。只考虑集群内部的网络性能,性能也不仅仅取决于 service 一层。service 的转发性能主要影响客户端对服务的访问这一块,这里的客户端有集群内的其他 service,以及从 Ingress 接入的外部流量。
    同时,也应当考虑底层网络插件的网络模型,即跨节点的 Pod 通信模式也能影响应用的整体网络性能,例如,Flannel 的 UDP 模式在封包和解包时因为需要频繁的内核和用户态切换,性能较差。这一点可以自行验证。
    总而言之,在不考虑在 Ingress 外部额外再加一层 Nginx (或者其他接入层)的情况下,集群内的整体网络性能取决于 Service 和 Pod 这两层。
    2 、如果做测试的话应该要怎么测?
    如果你说的测试指的是对 Pod 内的应用做压测,可以从两个维度进行;第一个是从外部直接访问 Pod,即通过 Ingress 接入的流量,即用于模拟用户访问的真实流程;第二个则是服务之间互相调用的压测,即通过服务 A 去调用服务 B,这种访问不经过 Ingress,只是在 Service 层面做互相访问。这两个维度将同时对集群内的网络性能和计算性能都做有限的压力测试,在测试时,重点关注响应延迟和 Pod 内的 CPU 负载。
    3 、微服务调用集群内的中间件,微服务逻辑需要修改吗?
    通常情况下不需要修改,中间件在集群内和集群外,对微服务自己来说唯一的区别只是访问地址不一样,仅此而已。
    4 、vscode
    我是个运维,对这块了解不多。
    5 、Prometheus
    拿来做监控的,在做白盒监控这块比 Zabbix 强大很多,资料看官方文档就够了。
    risky
        20
    risky  
       2021-04-25 13:46:59 +08:00
    @defunct9 能介绍下都有啥坑么……
    defunct9
        21
    defunct9  
       2021-04-25 15:07:11 +08:00   1
    @risky 用的是阿里的 ACK,master 节点托管。So,坑多了。
    1 、节点 pod 数量一定要选 256,选了 16 之后无法修改。
    2 、如果要 pod 伸缩到 ECI 的话,不能挂任何 Hostpath,SecurityContext 也不能有。所以 Loki-stack 就没法用了
    3 、如果买了 ALB 的 LB 的话,无法用。ACK 用的还是 SLB
    4 、弃用 nginx ingress,改用 traefik 的话,需要自己手绑 nodePort
    ......
    killerv
        22
    killerv  
       2021-04-25 17:44:20 +08:00
    感觉在 k8s 上部署中间件、数据库很不合适,这个维护成本太高了,最好使用云服务。
    leeeee9
        23
    leeeee9  
    OP
       2021-04-25 19:28:16 +08:00
    @rbe win10 安装 helm 和这个工具,里面有两行 cmd 开头的 看蒙了
    dreamusername
        24
    dreamusername  
       2021-04-26 00:25:40 +08:00
    建直接使用 EKS AKS TKE 之的服商版 Kubernetes,免去各部署 Kubernetes 的,直接使用,而且使用服出的候,不像自己搭建,第一找是不是自己境部署的。
    同量不要使用 Kubernetes 部署有的服,不是它擅的,然他可以,如果你非要部署,那麽我不推 Helm,而是 Operator 。
    root01
        25
    root01  
       2021-04-26 08:53:06 +08:00
    @killerv
    @lhx2008 照怎么说,nginx tomcat 所有之类的都不合适上 k8s 是嘛?
    leeeee9
        26
    leeeee9  
    OP
       2021-04-26 13:28:23 +08:00
    @dreamusername 一些 to b 的客户内网想要搞这个
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     932 人在线/strong>   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:47 PVG 02:47 LAX 11:47 JFK 14:47
    Do have faith in what you're doing.
    ubao 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