zoukankan      html  css  js  c++  java
  • Kubernetes使用Eedpoints连接外部服务端口

    Kubernetes使用Eedpoints连接外部服务端口

    背景: 在Kubernetes的使用环境中,我们经常要连接外部的一些服务,比如mysql Elasticsearch kafka 等等外部的存储服务,但是这些服务又不是部署在K8S中的,所以端口就不好连接,这时我们把service的Endpoints修改成外部ip和端口连接,就可以实现使用service 直接连接外部的服务。具体配置文件如下:

    使用一个Elasticsearch的配置文件作为实践

    cat elasticsearch-enpoint.yaml 
    ---
    apiVersion: v1
    kind: Endpoints
    metadata:
      name: essrv1
      namespace: kube-system
    subsets:
      - addresses:
        - ip: 192.168.0.250
        ports:
          - port: 9200
            protocol: TCP
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: essrv1
      namespace: kube-system
    spec:
      ports:
        - port: 9200
          protocol: TCP
    
    

    上面呢,我们就建立一个service essrv1,同时让这个service 对应Endpoints essrv1 配置,这样我们就实现了把外部服务放到K8S 中去利用。

    接下来我们看下效果:

    $ kubectl get svc -n kube-system |grep essrv1
    essrv1               ClusterIP   10.0.0.95    <none>        9200/TCP                 26d
    
    
    $ kubectl get ep -n kube-system|grep essrv1
    essrv1                    192.168.0.250:9200                                         26d
    
    
    $ kubectl describe  ep essrv1 -n kube-system
    Name:         essrv1
    Namespace:    kube-system
    Labels:       <none>
    Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                    {"apiVersion":"v1","kind":"Endpoints","metadata":{"annotations":{},"name":"essrv1","namespace":"kube-system"},"subsets":[{"addresses":[{"i...
    Subsets:
      Addresses:          192.168.0.250
      NotReadyAddresses:  <none>
      Ports:
        Name     Port  Protocol
        ----     ----  --------
        <unset>  9200  TCP
    
    Events:  <none>
    
    

    上面我们就看到了这种效果,这样我们就可以通过内部的dns去调用essrv1的service名称了,实践完成!

  • 相关阅读:
    linux-centos7-vmware 虚拟机 设置静态 ip 地址,采用 nat 模式,实现连接公网
    mysql_5.7.20 二进制包 在Linux系统中的 安装和配置
    解决windows系统80端口被占用问题
    应用系统架构演变初探
    fastdfs-nginx扩展模块源码分析
    心已落定,入驻博客园
    mac iterm 提示符序列调整
    Background removal with deep learning
    git push fatal: The remote end hung up unexpectedly
    mac sed 使用踩坑实录
  • 原文地址:https://www.cnblogs.com/passzhang/p/13553315.html
Copyright © 2011-2022 走看看