基于K8sSVC springboot 服务间调用
apiVersion: v1kind: Servicemetadata:labels:app: my-depname: my-depspec:ports:- port: 8000#设定Serivce对集群内部暴露的端口.protocol: TCPtargetPort: 80#设定Pod的端口,即Pod网络的端口。1.endpoint是k8s集群中的一个资源对象,存储在etcd中,用来记录一个ser
·
公司项目私有化部署,甲方要求服务间调用使用K8sSVC完成服务间调用。需要把原有基于springboot+nacos 服务注册发现改造为k8ssvc完成服务间注册发现。
首先了解一下k8s svc:
K8S核心概念之SVC(易混淆难理解知识点总结)_k8s svc_倾听铃的声的博客-CSDN博客
创建SVC
对集群内部暴露服务的模式--Cluster
apiVersion: v1
kind: Service
metadata:
labels:
app: my-dep
name: my-dep
spec:
ports:
- port: 8000
#设定Serivce对集群内部暴露的端口.
protocol: TCP
targetPort: 80
#设定Pod的端口,即Pod网络的端口。
selector:
app: my-dep
type: ClusterIP
对集群外部暴露服务的模式--NodePort
apiVersion: v1
kind: Service
metadata:
labels:
app: my-dep
name: my-dep
spec:
ports:
- port: 8000
#设定Serivce对集群内部暴露的端口.
protocol: TCP
targetPort: 80
#设定Pod的端口,即Pod网络的端口。
selector:
app: my-dep
type: NodePort
注:如果不在yaml文件当中指定NodePort端口,则NodePort是在Node节点上的30000-32767之间随机暴漏端口
代码改造:
1. 原有fegin调用修改为手动创建http请求。
我这里是写了个自定义注解;
注:如果需要具体实现方法可私聊,我私发给你。
2.k8s 需要配置对应的svc.配置如下:
//版本号
apiVersion: v1
//svc
kind: Service
metadata:
//服务名
name: log
//服务命名空间
namespace: default
spec:
//暴露类型
type: ClusterIP
selector:
//服务名
app: log
ports:
//端扣信息
- port: 80
protocol: TCP
targetPort: 80
注意:服务端口一定要与配置端口保持一致。
配置完成后即可通过 name.namespace:80/接口地址 完成调用
更多推荐
已为社区贡献1条内容
所有评论(0)