公司项目私有化部署,甲方要求服务间调用使用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/接口地址  完成调用

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐