最近在做腾讯云一键部署EKS容器的事情,公司的所有微服务都放到腾讯云上管理,并且把所有的操作通过一键部署的形式实现.因为公司是做Saas服务, 所以不同的租户, 通过应用进行隔离, 也就是每个租户一套系统.所有的原来通过控制台用手点击的操作,全都通过代码实现. 今天用这套程序测试了一下效率,中途遇到的问题,在此总结一下.
首先整理一下多租户实现的思路
每个租户给分配一个租户id,所有的腾讯云资源都基于这个租户id,比如,租户id是p218, 那么租户的数据库实例取名为p210-mysql, 类似的还有p218-redis, p218-rabbitmq, p218-net, p218-subnet,等等.
调接口的流程大概如下:
首先查用户的网络和子网, 存到一个上下文变量,然后查用户的redis实例, mq实例, 都存到上下文变量, 然后查数据库实例,这里需要提前配置好mysql的root用户名密码, 然后组装sql文件, 上传到腾讯的COS, 拿到cos的地址后, 数据库进行数据初始化, 然后再创建数据库用户, 给数据库用户赋权. 把用户的用户名,密码等也存到上下文变量里. 接下来就是创建容器的EKS集群, 创建完之后, 调接口开通EKS的外网,并且添加白名单ip, 开通之后, 拿到kubectl的config文件, 用来创建k8s容器负载. 接下来就创建负载, 创建svc, 创建ingress, 域名解析.
调用K8S的接口总结
k8s的接口其实是kubectl直接可以调用,相当于我们本地生产一个kubectl的客户端.这个步骤需要的就是集群的config文件.因为是java代码,所以需要有统一的java调用的sdk.
首先上k8s的文档地址: 因为都是英文文档, 所有看的时候,还挺不错的
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#ingress-v1-networking-k8s-io
腾讯云接口调用总结
腾讯云的接口还是有很完善的文档的,这个小伙伴们倒是不用担心,只要按照文档来就可以,而且, 不管是腾讯还是阿里, 都会提供给开发者一个调用工具, 这个使用好,一般就没问题.
本来想多写一点的,腾讯云EKS一键部署k8s容器总结确实有很多内容, 因为一边调试,一边部署,也着实花了一些时间,下次上代码, 通过整套一键部署代码,10多个微服务都直接在容器里运行,给大家用代码讲讲.
最近在做腾讯云一键部署EKS容器的事情,公司的所有微服务都放到腾讯云上管理,并且把所有的操作通过一键部署的形式实现.因为公司是做Saas服务, 所以不同的租户, 通过应用进行隔离,