11. Ingress及Ingress Controller(主nginx ingress controller)
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)的更多相关文章
- Kubernetes 服务入口管理与 Nginx Ingress Controller
Kubernetes 具有强大的副本,动态扩容等特性,每一次 Pod 的变化 IP 地址都会发生变化,所以 Kubernetes 引进了 Service 的概念.Kubernetes 中使用 Serv ...
- Nginx Ingress on TKE 部署最佳实践
概述 开源的 Ingress Controller 的实现使用量最大的莫过于 Nginx Ingress 了,功能强大且性能极高.Nginx Ingress 有多种部署方式,本文将介绍 Nginx I ...
- 手把手教你使用 Nginx Ingress 实现金丝雀发布
概述 本文将介绍如何使用 Nginx Ingress 实现金丝雀发布,从使用场景分析,到用法详解,再到上手实践. 前提条件 集群中需要部署 Nginx Ingress 作为 Ingress Contr ...
- kubernetes nginx ingress controller部署
Kubernetes nginx ingress controller部署 1.下载kubernetes nginx的yaml文件 Wget https://raw.githubusercontent ...
- 见异思迁:K8s 部署 Nginx Ingress Controller 之 kubernetes/ingress-nginx
前天才发现,区区一个 nginx ingress controller 竟然2个不同的实现.一个叫 kubernetes/ingress-nginx ,是由 kubernetes 社区维护的,对应的容 ...
- Kubernetes 部署 Nginx Ingress Controller 之 nginxinc/kubernetes-ingress
更新:这里用的是 nginxinc/kubernetes-ingress ,还有个 kubernetes/ingress-nginx ,它们的区别见 Differences Between nginx ...
- Helm 安装Nginx Ingress
为了便于将集群中的服务暴露到集群外部,需要使用Ingress.接下来使用Helm将Nginx Ingress部署到Kubernetes上. Nginx Ingress Controller被部署在Ku ...
- kubernetes nginx ingress 使用记录
前言 ingress是一种可以暴露k8s集群内部service的方式,用户编辑配置文件定义一个ingress资源即可实现外部网络访问内网service. ingress controller是来管理所 ...
- Nginx Ingress 高并发实践
概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分 ...
随机推荐
- linux入门常用指令3.安装mysql
下载安装包 MySQL-5.6.42-1.el6.x86_64.rpm-bundle_redhat [root@localhost src]# mkdir mysql [root@localhost ...
- SSH环境搭建之Hibernate环境搭建篇
SSH环境搭建之Hibernate环境搭建篇 搭建有两种方式: 1.使用IntelliJ IDEA或者MyEclipse的逆向工程(关系模型 -> 对象模型),我使用的是IntelliJ IDE ...
- 构建官方example
开发工具的选择: 构建官方example:
- CSS基础学习 21.CSS居中总结
注意:*在IE中并不代表通配符的意思,是代表根元素的意思,所以为了匹配适应各种浏览器,进行页面初始化 <style> *{ margin:0; padding:0; } </styl ...
- 洛谷P2664 树上游戏——点分治
原题链接 被点分治虐的心态爆炸了 题解 发现直接统计路径上的颜色数量很难,考虑转化一下统计方式.对于某一种颜色\(c\),它对一个点的贡献为从这个点出发且包含这种颜色的路径条数. 于是我们先点分一下, ...
- Hbuilder + MUI 修改App 启动的首页面
- BZOJ 3895 3895: 取石子 / Luogu SP9934 ALICE - Alice and Bob (博弈 记忆化搜索)
转自PoPoQQQ大佬博客 题目大意:给定n堆石子,两人轮流操作,每个人可以合并两堆石子或拿走一个石子,不能操作者输,问是否先手必胜 直接想很难搞,我们不妨来考虑一个特殊情况 假设每堆石子的数量都&g ...
- 【JAVA-算法】 截取2个字符中间的字符串
Java Code /** 截取2个字符中间的字符串 */ private void GetMiddleString() { String str = "BB022220011BB007EB ...
- 【转】pe结构详解
(一)基本概念 PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等, 事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是 ...
- compile cmdow
1. http://www.commandline.co.uk/ https://github.com/ritchielawrence/cmdow/tarball/master 2. g++ -O2 ...