• K8S 中通过 service 访问外部的资源


    在工作时碰到一个场景,K8S中的容器需要访问外部的 es 服务和 kibana, 若把 es 和 kibana 的配置以固定IP的形式写入配置文件中,万一 es 和 kibana 搬迁,ip 地址变更那改起来会非常不灵活和容易遗漏。
    这时我们可以使用 K8S 的 service。

    访问 ES

    外部的 es ip为 192.168.0.200 端口为 9400;这里创建一个 Endpoints 和 Service。

    cat es.yaml 
    
    apiVersion: v1
    kind: Service
    metadata:
      name: es-svc
      namespace: klvchen
    spec:
      ports:
      - port: 9400
        targetPort: 9400
        protocol: TCP
        name: tcp
    ---
    apiVersion: v1
    kind: Endpoints
    metadata:
      name: es-svc
      namespace: klvchen
    subsets:
      - addresses:
        - ip: 192.168.0.200
        ports:
        - port: 9400
          name: tcp
    
    # 在 K8S 中的容器使用 es-svc.klvchen.svc.cluster.local:9400 就可以访问到 es 了。
    

    访问 Kibana

    通过 ingress 管理 Kibana,让用户通过 kibana.klvchen.com 这个域名来访问 192.168.0.200 上的 kibana。
    注意:kibana.klvchen.com 域名需要解析到 ingress 上

    cat kibana.yaml 
    
    apiVersion: v1
    kind: Service
    metadata:
      name: kibana-svc
      namespace: klvchen
    spec:
      ports:
      - port: 5601
        targetPort: 5601
        protocol: TCP
        name: http
    ---
    apiVersion: v1
    kind: Endpoints
    metadata:
      name: kibana-svc
      namespace: klvchen
    subsets:
      - addresses:
        - ip: 192.168.0.200
        ports:
        - port: 5601
          name: http
    ---
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: kibana
      namespace: klvchen
    spec:
      rules:
        - host: kibana.klvchen.com
          http:
            paths:
              - path: /
                backend:
                  serviceName: kibana-svc
                  servicePort: http
    
  • 相关阅读:
    C# 时间格式化
    新线程匿名方法的新用法
    响应类
    图灵API
    Xpath使用
    Meta http-equiv属性
    CAC的Debian-8-64bit安装BBR正确打开方式
    CAC的Debian-8-64bit安装BBR正确方式是?
    Mbps Mb M Kb如何换算
    如何解决服务器远程桌面连接成功但重启却操作失效?
  • 原文地址:https://www.cnblogs.com/klvchen/p/14206803.html
Copyright © 2020-2023  润新知