Golang Go语言项目中用阿里云的容器服务 Kubernetes 搭建怎么样?
最近我们技术部想把单机版的项目部署成微服务架构可动态扩容式的,但是鄙人不太精通 k8s+docker ,还有微服务治理方面的东西(之前想着学来着,也正在学但是感觉微服务需要懂的东西有点多,一时半会还搞不定)。 所以就想着买一个阿里云容器服务 Kubernetes 集群服务,之前没用过,想问问有没有用过阿里云这套东西的人,如果买了以后,我这边是不是只需要部署代码就 ok ,不需要再去管 微服务的一些 服务发现、服务注册、链路追踪、日志分析等事项啦。只需要把项目打包成镜像 运行 docker 容器就行,是这样的吗。
Golang Go语言项目中用阿里云的容器服务 Kubernetes 搭建怎么样?
更多关于Golang Go语言项目中用阿里云的容器服务 Kubernetes 搭建怎么样?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Kubernetes 只是 CD ,其他都是公用的,阿里云也可以买其他服务
服务发现、服务注册:网关
链路追踪:arms
日志分析:sls
当前你也可以自己搭,省钱但费运维
更多关于Golang Go语言项目中用阿里云的容器服务 Kubernetes 搭建怎么样?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
很好用。就是你想的那样
阿里云的函数计算可以部署 docker 镜像,微信的云托管也可以部署 docker 镜像。
看项目大小,如果是中小项目 不用买他们的 k8s 服务 直接用上面这两个就行,都是支持动态扩容的。
买 k8s 服务配置也稍微麻烦。
我们是自己搭的, 不过用起来应该差不过. 服务发现,服务注册,负载均衡…这些也不是不用管,还是要根据你们的业务流程去合理使用,像服务发现也要写点儿代码切合你们的业务逻辑. 链路追踪日志分析这些额外的功能也是要自己去利用框架或者其他手段去支持的的. 前期有点麻烦,不过弄好了版本发布,版本回滚等操作就点几下鼠标的事儿.
麻烦先看看价格再说,这个是企业使用的; ack 只是一个集成阿里云服务的容器集群而已,剩余的东西都是需要自己去实现。
ack 仅是一个阿里云强化版的 k8s ,需要的东西一个少不少了,就算能偷懒效果也会打折。
ack 提供阿里云服务的接入功能,权限控制可以使用 k8s 自带的 rbac 和阿里云 arm 同时生效;服务器可以使用 ecs 一键加入集群;存储可以使用 ack 默认提供的 sc 使用云盘作为 pv ;服务可以使用阿里云 slb 作为 lb svc ;监控可以直接接入 arms ;日志接入 sls ;然后阿里云还有一个自带的 k8s 面板,功能我觉得比开源的好一些。
但是服务治理也需要自己去手动实现;应用需要手写 helm 去编排全部业务部署; cicd 需要自己接入; arms 监控需要应用实现 metrics 采集 go runtime 监控和自定义数据;日志虽然 sls 和采集标准输出,但是需要自己去定义日志规范和日志监控;链路追踪好像 arms 也可以用来存储,但是需要自己去框架层接入 otel(go 基本就这个),服务发现看选型 k8s svc 本身就不错,要是不用也需要自己去接入和维护;配置中心也可以使用 k8s cm 或自定义。
如果用 serverless 会怎么样是不是比 k8s 要省事点。
如果项目小,想省事,serverless 更适合
在Golang项目中,使用阿里云的容器服务Kubernetes版(ACK)搭建是一个不错的选择。以下是对此方案的几点分析:
优势
- 高性能与稳定性:ACK是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,确保您的Go语言项目在云端稳定高效运行。
- 丰富的集群类型:ACK提供多种集群类型,如托管集群、Serverless集群等,满足不同场景的需求。对于需要灵活部署和管理的Go语言项目,Serverless集群尤为合适,无需购买节点即可直接部署容器应用。
- 安全性与可靠性:ACK提供镜像扫描、镜像签名、容器运行时安全检测等安全功能,确保您的Go语言项目在安全的环境中运行。同时,ACK支持多AZ高可用集群和自动弹性伸缩,提高系统的可靠性和稳定性。
实践建议
- 熟悉Kubernetes:在使用ACK之前,建议熟悉Kubernetes的基本概念和操作方法,以便更好地利用ACK的功能。
- 优化Dockerfile:在使用Go语言构建Docker镜像时,注意优化Dockerfile,减少镜像体积,提高构建效率。
- 利用client-go库:Go语言项目与Kubernetes交互时,可以利用Kubernetes官方提供的client-go库,简化与集群的交互过程。
综上所述,使用阿里云的容器服务Kubernetes版搭建Go语言项目是一个值得推荐的选择。