侧边栏壁纸
  • 累计撰写 123 篇文章
  • 累计创建 48 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
k8s

k8s集群之-Ingress

田小晖
2020-06-01 / 0 评论 / 0 点赞 / 272 阅读 / 0 字 / 正在检测是否收录...

k8s集群之-Ingress

1.Ingress 是什么?

底层是nginx

Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。

Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

Ingress 公开了从集群外部到集群内 services 的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。

    internet
        |
   [ Ingress ]
   --|-----|--
   [ Services ]

可以将 Ingress 配置为提供服务外部可访问的 URL、负载均衡流量、终止 SSL / TLS,以及提供基于名称的虚拟主机。Ingress 控制器 通常负责通过负载均衡器来实现 Ingress,尽管它也可以配置边缘路由器或其他前端来帮助处理流量。

Ingress 不会公开任意端口或协议。 将 HTTP 和 HTTPS 以外的服务公开到 Internet 时,通常使用 Service.Type=NodePort 或者 Service.Type=LoadBalancer 类型的服务

2.Ingress解决的痛点

  • 使用node的IP+service的端口才能访问到服务
  • 域名的绑定

3.部署Ingress-controller-yaml方式

  • ingress-controller.yaml

    wget http://oss.tianch.xyz/k8s/ingress-controller.yaml
    
  • 部署

    kubectl apply -f ingress-controller.yaml
    
  • 查看

    kubectl get pods --all-namespaces
    

    1590998760200

    1590998819782

4.暴露一个ingress服务 使项目(tomcat8)支持域名访问

  • 准备ingress-tomcat8.yaml

    servicePort: 80 是之前pods的端口

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: web
    spec:
      rules:
      - host: example.tianch.com
        http:
          paths:
            - backend:
                serviceName: tomcat8
                servicePort: 80
    
  • 部署

    kubectl apply -f ingress-tomcat8.yaml
    
  • 修改本地hosts文件

    172.16.10.68  example.tianch.com
    
  • 访问测试 自行测试

博主关闭了所有页面的评论