• Kubernetes的Ingress


    Ingress 为外部访问集群提供了一个 统一 入口,避免了对外暴露集群端口;
    功能类似 Nginx,可以根据域名、路径把请求转发到不同的 Service。
    可以配置 https

    跟 LoadBalancer 有什么区别?
    LoadBalancer 需要对外暴露端口,不安全;
    无法根据域名、路径转发流量到不同 Service,多个 Service 则需要开多个 LoadBalancer;
    功能单一,无法配置 https

    2.png

    要使用 Ingress,需要一个负载均衡器 + Ingress Controller
    如果是裸机(bare metal) 搭建的集群,你需要自己安装一个负载均衡插件,可以安装 METALLB
    如果是云服务商,会自动给你配置,否则你的外部 IP 会是 “pending” 状态,无法使用。

    文档:Ingress
    Minikube 中部署 Ingress Controller:nginx
    Helm 安装: Nginx

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: simple-example
    spec:
      ingressClassName: nginx
      rules:
      - host: tools.fun
        http:
          paths:
          - path: /easydoc
            pathType: Prefix
            backend:
              service:
                name: service1
                port:
                  number: 4200
          - path: /svnbucket
            pathType: Prefix
            backend:
              service:
                name: service2
                port:
                  number: 8080

    腾讯云 ingress

    其他补充

    kubernates 可以管理大量的容器化应用,方便的进行伸缩扩展集群,随时回退版本。
    kubernates 需要云厂商的支持才是完整的,好在当前各大云厂商都已经提供了 k8s 集群服务,生态很完善,非常方便。
    我们自己搭建的叫裸机,用来做测试、学习很好,可以把自己淘汰的电脑用起来搭建出一个集群玩玩。

    如果你觉得命令行管理集群太麻烦,你可以用 Helm 快速搭建一个 kubernates-dashboard,这样你就有了一个 WEB 界面,可以可视化的进行一些操作和管理。
    如果是 minikube 更加简单,一个命令minikube dashboard就好了。

    数据库这种有状态的应用,更好的做法是直接使用云厂商提供的数据库,运行会更加稳定,也有完善的数据备份。

    Github 上有用户已经把裸机搭建需要做的工作写成了脚本,一个脚本就帮你初始化好集群工作:kainstall

  • 相关阅读:
    The resource identified by this request is only capable of generating responses with characteristics
    javaweb写的在线聊天应用
    JavaScript写一个拼图游戏
    jQ插件--时间线插件和拖拽API
    Javascript写俄罗斯方块游戏
    详解jQ的support模块
    磁盘IO的性能指标 阻塞与非阻塞、同步与异步 I/O模型
    Airflow Python工作流引擎的重要概念介绍
    DEVOPS 运维开发系列
    MYSQL 两表 排除 重复记录
  • 原文地址:https://www.cnblogs.com/47Gamer/p/15870356.html
Copyright © 2020-2023  润新知