在 k8s 学习过程有一些疑问,想请教一下各位

2022-10-27 10:39:10 +08:00
 topgunno

目前了解到 k8s 部署 Java 微服务有以下几种方式

  1. 由 k8s 提供容器编排,将整套 Spring Cloud 组件都部署到 k8s 中
  2. 使用 k8s 基础组件,搭建微服务,只用部署 Java 镜像

由于了解的不太全面,想知道各位 v 友的公司是怎么使用 k8s 的

2293 次点击
所在节点    Kubernetes
10 条回复
camork
2022-10-27 10:44:13 +08:00
选 2. 单独 k8s 还缺少流量治理相关组件, 走 service mesh 架构, 用 istio 补上
superchijinpeng
2022-10-27 10:54:40 +08:00
2
lmshl
2022-10-27 10:54:47 +08:00
一直用的是 2 ,我司微服务有 Scala / Python / Rust / Kotlin / NodeJS / Java ,没接触过 Spring Cloud
superchijinpeng
2022-10-27 10:55:00 +08:00
都 2022 年了
idblife
2022-10-27 11:05:37 +08:00
2
topgunno
2022-10-27 11:15:36 +08:00
@camork @superchijinpeng @lmshl @idblife 多谢各位,get 到了
hjue
2022-10-27 11:32:53 +08:00
选 2

服务注册和发现:直接调用 service name
网关:Ingress
链路跟踪:skywalking
监控:prometheus
日志:elk
zou8944
2022-10-27 15:49:28 +08:00
选 2 ,Spring Cloud 是以 SDK 提供微服务治理的形式,属于上一代产品。
如今云原生提得这么火,大方向就是将所有基础功能下沉到基础设施。如 7 楼所说,Spring Cloud 的每一个组件在 K8s 中都有对应的概念
- 服务注册和发现:对应 Service Name ,由 Core DNS 实现
- 负载均衡:对应 Kubeproxy ,走 iptables 和 LVS 那一套,这个不用自己配置,自带
- 网关:对应 Ingress 。只不过 K8s 自带的 Nginx Ingress Controller 功能比较弱,只能充当流量网关,如果需要业务网关,依然可以使用 Spring Cloud Gateway ,也可以使用 Kong 、ApiSix 之类的,不过个人感觉没必要
- 配置中心:config map 和 secret

监控三要素:tracing 、metrics 、logging ,分别对应
- skywalking
- prometheus
- ELK

当然,K8s 是一个非常复杂的东西,完全不建议自建,通常我们都会购买云服务,如阿里云的 ACK 。搭配其它云服务如 SLS 等,基本是不需要自己搭建任何东西的。你唯一需要做的就是熟练地使用它们。

个人认为云原生的最终形式就是 Serverless ,只不过目前由于技术原因 Serverless 有冷启动、资源分配不稳定等问题并不能应用到所有场景。
Blank10030
2022-10-27 17:01:34 +08:00
2
Nnq
2022-10-27 22:39:28 +08:00
2 直接打包容器,然后服务配置跟上就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/890287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX