K8s系统的服务临时访问设计

实现背景

有时候,我们在系统中发布了微服务的应用或者系统运行了相关的服务,但是内部的网络通信一般不会对外暴露,如果项目开发测试中需要进行链接或者临时的测试验证等问题,则需要使用一些特殊的手段实现链接访问达到验证的目的。

demo测验

比如现在系统维护一套用于内部使用的mysql服务,但是mysql的链接和测试都是内部的方式进行的,不可以对外暴露,外部如何在不影响当前业务的时候实现服务的暴露呢!

一般可以新增同样配置的svc或者ingress进行对外的路由设置,此处我们按照svc的暴露方式进行说明,其他路由的方式类似。

截图中我们可以看到svc一般使用集群IP进行路由设计,往往我们通过NodePort可以访问:

定位需要临时开启的服务

kubectl get svc -A | grep mysql

保存编辑服务模板

kubectl edit svc -n xxxx-system mysql

说明:编辑服务名称和暴露方式,不要和系统的服务同名冲突即可。

name: mysql-nodeport
type: NodePort

查看服务的配置和测试

kubectl get svc -n xxxx-system mysql -oyaml
注:通过curl,wget或者客户端链接实现访问测试。

总结

因为微服务的管理和设计再加上系统服务太多,往往我们不可以更改系统的配置进行调试,团队协作尤其如此,所以这种小的测试用例可以很快的用于服务的暴露和访问设计;
我们可以通过这种方式临时的给团队进行工作的配合和渲染实现,每天一个小技巧,你get到了吗?

posted @ 2020-12-06 12:32  流雨声  阅读(75)  评论(0编辑  收藏  举报