zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    requests模块
    Html5五子棋
    html5学习之旅第一篇
    Vue.js学习和第一个实例
    electron安装到第一个实例
    mongodb学习-练习实例
    nosql学习一
    csv内存流文件流
    关于Vue中img的src属性绑定的一些坑
    java中的==操作符和equals函数
  • 原文地址:https://www.cnblogs.com/klvchen/p/14206803.html
Copyright © 2011-2022 走看看