nginx代理k8s服务(nginx和k8s)
nginx和k8s
k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能,就是k8s可以用来管理docker,
Nginx是一个高性能的 HTTP 和反向代理服务器, k8s可以用来管理nignx服务器
k8s nginx ingress
OpenShift:
设计了ImageStream,BuildConfig与DeploymentConfig等资源对象,及s2i构建方法,方便了开发者实施Devops。
添加了一个内部镜像仓库。
使用Route资源,为应用提供了一个公共统一的访问入口。类似于Ingress,使用起来比Ingress方便。
提供了一个友好的可视化界面。
对容器有更多的安全策略,更安全
6. 有更高的可靠性。 作为RedHat的企业级容器平台,红帽会对集群做详细的测试,修复bug。
7. 一般版本会落后K8S一个大版本
8. 一般为只管理单个OpenShift集群
Rancher:
1. 具有良好的界面
2. 方便管理多个K8S集群
3. 对网络插件的选择会比OpenShift更加灵活
4. 与K8S版本同步,及时拥有K8S最新的特性
个人认为,单集群管理使用OpenShift,更稳定,更简单,也更安全,而如果是要管理多集群,选择Rancher。不过OpenShift 4起红帽也支持多集群管理,但还不能私有化部署。
两种方案都有不少的企业客户选择,因为都是基于K8S, 功能上都差不多 。不管是构建DevOps流水线,还是生产部署原生应用上。
nginx代理api
在我们讲的微服务架构下的API网关,一般指的是前三类使用场景。即,主要是把企业内部的API能力,暴露给其他应用或合作伙伴使用。网关层作为客户端与服务端的一层挡板,主要起到了三大类作用:
第一类作用是隔离作用,作为企业系统边界,隔离外网系统与内网系统。
第二类作用是解耦作用,通过解耦,使得微服务系统的各方能够独立、自由、高效、灵活地调整,而不用担心给其他方面带来影响。
第三类作用是脚手架作用,提供了一个地点,方便通过扩展机制对请求进行一系列加工和处理。
二:网关的好处
(1)网关层对外部和内部进行了隔离,保障了后台服务的安全性。
(2)对外访问控制由网络层面转换成了运维层面,减少变更的流程和错误成本
(3) 减少客户端与服务的耦合,服务可以独立发展。通过网关层来做映射。
(4)通过网关层聚合,减少外部访问的频次,提升访问效率。
(5)节约后端服务开发成本,减少上线风险。
(6)为服务熔断,灰度发布,线上测试提供简单方案。
(7)便于扩展。
三:API网关需要考虑的因素
1、安全性问题
企业在把服务暴露给外部使用时,首先要确保服务使用的安全,防止外部的恶意访问对公司业务的影响,特别是涉及交易方面的服务,更是要全面考虑安全性。为确保安全,需要考虑在通讯链路的建立、通讯数据的加密、数据的完整性、不可抵赖性等方面。
2、性能问题
作为企业API的入口,所有的请求都会经过API网关进行转发,可想而知,对API网关的访问压力是巨大的,有的网站甚至达到每分钟上千万的访问量。特别是在一些互联网企业,海量的移动终端每时每刻都需要与后端的服务进行交互,如果不能保证网关的高性能,企业在网关层需要投入大量的设备和成本。曾在一家互联网公司发生过,由于网关性能问题,网关的机器数量,需要与后台服务器的数量保持同步增长。这种情况显然是企业服务忍受的。
四:API网关的功能
企业级API网关应该提供下列的功能:
API网关功能
1.服务路由:外部服务访问接口映射到对应的内部服务访问接口。
2.认证授权:提供对用户身份的认证以及用户权限验证,包括用户身份的合法性、针对用户角色的访问授权验证、针对用户的访问授权验证、IP 黑名单验证等。
3.超时处理:当 API 网关调用的内部服务响应时间超过了在自主开发的 API 网关后台管理子系统中所设置的允许最长的超时时间时,API 网关会立即停止调用,并返回相关消息给你。
4.限流控制:当你通过 API 网关调用内部服务的频率达到在某个阈值时,API 网关会立即做断开链路处理。过了时间后,链路会自动闭合回去。
5.熔断处理:熔断处理对避免无谓的资源消耗特别有用,当通过 API 网关调用的内部服务出现异常的频率达到某个阈值时,那么 API 网关会做临时熔断处理即临时断开链路,暂时停止你对那个内部服务的调用。临时熔断后,过了一段时间后,链路会自动闭合回去。
6.日志信息记录:会记录客户 IP、客户请求参数、返回结果、异常信息等信息。
7.负载均衡: 提供API接口的负载均衡,能够处理API接口的高并发访问,防止服务雪崩。
8.安全防护:提供严格的认证服务,支持算法签名,用户使用 API 网关提供的密钥进行认证,没有被授予密钥的客户端无法调用业务 API接口,经过认证授权的请求才能到达后端应用服务。同时SSL 加密。
9.灰度发布:支持API接口线上灰度部署,减少应用版本切换风险。
nginx 代理服务器
ngix可以启动后端代码,因为ngix是一个代理服务器,拥有发布代码的功能。
nginx代理nginx
因为nginx可以反向代理,让你可以多台服务器支撑同一个业务而iis做不到这点,nginx效率和消耗的资源也少很多
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.