11. Ingress,Ingress Controller
拥有七层代理调度能力

什么是Ingress:
Ingress是授权入站连接到达集群服务的规则集合
Ingress是一个Kubernetes资源,允许您为在Kubernetes上运行的应用程序配置HTTP负载均衡器,由一个或多个服务代表。这样的负载平衡器是将这些应用程序交付给Kubernetes集群之外的客户端所必需的。

Ingress资源支持以下功能:
1 基于内容的路由:
基于主机的路由。例如,将具有主机头的请求路由foo.example.com到一组服务,将主机头路由bar.example.com到另一个组。
基于路径的路由。例如,使用/serviceA以服务A开头的URI和具有/serviceB以服务B 开头的URI的请求来路由请求。
2 每个主机名的TLS / SSL终止,例如foo.example.com。

Ingress将集群外部的HTTP和HTTPS路由暴露给集群中的服务。Ingress可以配置为提供服务外部可访问的URL,负载平衡流量,终止SSL / TLS,并提供基于名称的虚拟主机。

什么是Ingress Controller?
Ingress控制器是一个在集群中运行的应用程序,它根据Ingress资源配置HTTP负载均衡器。负载均衡器可以是在群集中运行的软件负载均衡器,也可以是在外部运行的硬件或云负载均衡器。不同的负载平衡器需要不同的Ingress控制器实现。
在NGINX的情况下,Ingress控制器与负载平衡器一起部署在一个容器中。

Ingress Controller:

HAProxy 不推荐
Nginx
Envoy 微服务强烈推荐使用,可自动动态加载(对比与nginx的优势)
Traefik 可自动动态加载(对比与nginx的优势)

Ingress是一种资源,所以和pod service等定义的方式类似
Ingress Controller k8s核心附件之一

===============================

nginx Ingress Controller部署:

使用官方推荐的mandatory.yaml这个文件部署 pod一直处于pending状态启动有问题
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

部署过程中需要拉取镜像quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.24.1,国内非常慢

有大佬写了个工具,亲测好使。
https://github.com/xuxinkun/littleTools#azk8spull
先将这个镜像拉取下来
https://www.cnblogs.com/xuxinkun/p/11025020.html

验证是否安装成功:
kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx --watch

ssl需要secret

TLS字段

kubectl create secret tls tomcat-ingress-secret --cert=tls --key=tls.key

kubectl get secret

https://kubernetes.github.io/ingress-nginx/

11. Ingress及Ingress Controller(主nginx ingress controller)的更多相关文章

  1. Kubernetes 服务入口管理与 Nginx Ingress Controller

    Kubernetes 具有强大的副本,动态扩容等特性,每一次 Pod 的变化 IP 地址都会发生变化,所以 Kubernetes 引进了 Service 的概念.Kubernetes 中使用 Serv ...

  2. Nginx Ingress on TKE 部署最佳实践

    概述 开源的 Ingress Controller 的实现使用量最大的莫过于 Nginx Ingress 了,功能强大且性能极高.Nginx Ingress 有多种部署方式,本文将介绍 Nginx I ...

  3. 手把手教你使用 Nginx Ingress 实现金丝雀发布

    概述 本文将介绍如何使用 Nginx Ingress 实现金丝雀发布,从使用场景分析,到用法详解,再到上手实践. 前提条件 集群中需要部署 Nginx Ingress 作为 Ingress Contr ...

  4. kubernetes nginx ingress controller部署

    Kubernetes nginx ingress controller部署 1.下载kubernetes nginx的yaml文件 Wget https://raw.githubusercontent ...

  5. 见异思迁:K8s 部署 Nginx Ingress Controller 之 kubernetes/ingress-nginx

    前天才发现,区区一个 nginx ingress controller 竟然2个不同的实现.一个叫 kubernetes/ingress-nginx ,是由 kubernetes 社区维护的,对应的容 ...

  6. Kubernetes 部署 Nginx Ingress Controller 之 nginxinc/kubernetes-ingress

    更新:这里用的是 nginxinc/kubernetes-ingress ,还有个 kubernetes/ingress-nginx ,它们的区别见 Differences Between nginx ...

  7. Helm 安装Nginx Ingress

    为了便于将集群中的服务暴露到集群外部,需要使用Ingress.接下来使用Helm将Nginx Ingress部署到Kubernetes上. Nginx Ingress Controller被部署在Ku ...

  8. kubernetes nginx ingress 使用记录

    前言 ingress是一种可以暴露k8s集群内部service的方式,用户编辑配置文件定义一个ingress资源即可实现外部网络访问内网service. ingress controller是来管理所 ...

  9. Nginx Ingress 高并发实践

    概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分 ...

随机推荐

  1. Maven新建项目出现 Could not calculate build plan:plugin 错误解决办法

    删除本地.m2仓库中 org.apache.maven.plugins:maven-resources-plugin所在目录. 然后右击项目 Maven->Update Project-> ...

  2. web开发:javascript基础

    一.js引入 二.变量的定义 三.三种弹出框 四.调试方式 五.数据类型 六.数据类型转换 七.运算符 八.分支机构 九.循环结构 十.异常处理 十一.函数 一.js引入 - ES: ECMAScri ...

  3. centos7支持exfat

    centos7支持exfat https://blog.csdn.net/shile/article/details/52202030 sudo rpm -Uvh http://li.nux.ro/d ...

  4. tensorflow模型的保存与恢复,以及ckpt到pb的转化

    转自 https://www.cnblogs.com/zerotoinfinity/p/10242849.html 一.模型的保存 使用tensorflow训练模型的过程中,需要适时对模型进行保存,以 ...

  5. IDEA设置CodeGlance颜色

    CodeGlance是IDEA的mini地图插件, 默认情况下, 其颜色和编辑框的颜色基本一致, 而安装CodeGlance就是为了方便滚动框的上下拖拉, 颜色一致的话会将这种CodeGlance比拖 ...

  6. pip安装tesserocr时报错

    在Xubuntu上的python2虚拟环境中, 使用pip安装tesserocr时报错error: command 'x86_64-linux-gnu-gcc' failed with exit st ...

  7. 构建官方example

    开发工具的选择: 构建官方example:

  8. gerapy+scrapyd组合管理分布式爬虫

    Scrapyd是一款用于管理scrapy爬虫的部署和运行的服务,提供了HTTP JSON形式的API来完成爬虫调度涉及的各项指令.Scrapyd是一款开源软件,代码托管于Github上. 点击此链接h ...

  9. vscode+TCC快捷编译c语言

    1.安装vscode. 2.安装插件tcc.小巧,快速,符合ansi c, 法国大神级别程序员开发的编译器. 3.编写C代码,F10运行,即可得结果,对于验证一些语法很快捷,很方便.只需三步!!

  10. HDU 6049 - Sdjpx Is Happy | 2017 Multi-University Training Contest 2

    思路来源于 FXXL - - 一个比较奇怪的地方就是第三步可以不做,也就是ans至少为1,听说场内有提问的,然后 admin 说可以不做- - (wa的我心烦) /* HDU 6049 - Sdjpx ...