您现在的位置是:首页 >学无止境 >基于K8sSVC springboot 服务间调用网站首页学无止境

基于K8sSVC springboot 服务间调用

头发还在。 2024-06-17 11:19:12
简介基于K8sSVC springboot 服务间调用

公司项目私有化部署,甲方要求服务间调用使用K8sSVC完成服务间调用。需要把原有基于springboot+nacos 服务注册发现改造为k8ssvc完成服务间注册发现。

首先了解一下k8s svc:

K8S核心概念之SVC(易混淆难理解知识点总结)_k8s svc_倾听铃的声的博客-CSDN博客

 创建SVC
对集群内部暴露服务的模式--Cluster
apiVersion: v1kind: Servicemetadata:  labels:    app: my-dep  name: my-depspec:  ports:  - port: 8000      #设定Serivce对集群内部暴露的端口.    protocol: TCP    targetPort: 80  #设定Pod的端口,即Pod网络的端口。  selector:    app: my-dep  type: ClusterIP


对集群外部暴露服务的模式--NodePort 

apiVersion: v1kind: Servicemetadata:  labels:    app: my-dep  name: my-depspec:  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/接口地址  完成调用

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。