nginx集群

Kubernetes addons 之 coredns部署

自作多情 提交于 2019-12-01 23:26:55
Kubernetes addons 之 coredns部署 2019.06.04 18:04:35字数 1045阅读 121 DNS 是 Kubernetes 的核心功能之一,通过 kube-dns 或 CoreDNS 作为集群的必备扩展来提供命名服务。 Kubernetes基于DNS的服务发现 在Kubernetes集群推荐使用Service Name作为服务的访问地址,因此需要一个Kubernetes集群范围的DNS服务实现从Service Name到Cluster Ip的解析,这就是Kubernetes基于DNS的服务发现功能。 Kubernetes DNS服务发展史 Kubernetes DNS服务发展史 从Kubernetes 1.11开始,可使用CoreDNS作为Kubernetes的DNS插件进入GA状态,Kubernetes推荐使用CoreDNS作为集群内的DNS服务。 CoreDNS从2017年初就成为了CNCF的的孵化项目,CoreDNS的特点就是十分灵活和可扩展的插件机制,各种插件实现不同的功能,如重定向、定制DNS记录、记录日志等等。下图描述了CoreDNS的整体架构: coredns DNS 格式 Service A records 普通(不是headless)service被分配了一个名为my-svc.my-namespace.svc.cluster

k8s集群架构及基本操作

百般思念 提交于 2019-12-01 19:24:09
首先在k8s集群中要知道有两个部署工具: kubeadm: 自动化部署k8s集群的工具。 kubectl: k8s命令行工具,用于接收用户输入的指令。 kubernetes是由什么组成的? 在硬件级别,一个kubernetes集群由很多节点组成,这些节点被分成以下两种类型: 主节点: 它承载着kubernetes控制和管理整个集群系统的控制面板 工作节点: 它们运行用户实际部署的应用。 控制面板(master) 控制面板用于控制集群并使它工作。它包含多个组件,组件可以运行在单个主节点上或者通过副本分别部署在多个主节点以确保高可用性。 master中的组件有: 注意:master节点默认不参加工作,如果有需要我们可以将它设置为参加工作,但是一般不建议这么做,因为master节点用于负责控制并管理集群,所以非常重要,一般保持默认让它不参加工作即可。 APIserver:apiserver是k8s集群中的前端接口,各种客户端工具以及k8s其他组件可以通过它管理集群中的各种资源。 Scheduler:负责决定将pod放在那哪个node删运行。在调度的过程中,会考虑集群的节点状态,当前各个节点的负载状况,以及对应调度高可用,性能等需求。 Controller manager:负责管理k8s集群的各种资源。保证资源处于用户期望的状态。 ectd:多数据中心

基于MSM实现nginx负载均衡+tomcat集群+memcached(session共享)

↘锁芯ラ 提交于 2019-12-01 16:31:24
Session共享的方案介绍 Session 共享有多种解决方法,常用的有四种:客户端 Cookie 保存、服务器间 Session 同步、使用集群管理 Session(如本文要介绍的Memcached Session Manager) 、把 Session 持久化到数据库: 客户端 Cookie 保存 以cookie加密的方式保存在客户端.优点是减轻服务器端的压力,每次session信息被写在客服端,然后经浏览器再次提交到服务器。即使两次请求在集群中的两台服务器上完成,也可以到达session共享。 将 session 持久化到数据中 这种共享session的方式即将session信息存入数据库中,其它应用可以从数据库中查出 session 信息。目前采用这种方案时所使用的数据库一般为mysql。 利用数据库共享 session 的方案有一定的实用性,但也有如下缺点:首先 session 的并发读写在数据库中完成,对 mysql 的性能要求比较高;其次,我们需要额外地实现 session 淘汰(超时)逻辑代码,即定时从数据库表中更新和删除 session 信息,增加了工作量。 使用服务器间 session 同步 使用主-从服务器的架构,当用户在主服务器上登录后,通过脚本或者守护进程的方式,将 session 信息传递到各个从服务器中,这样用户访问其它的从服务器时

记录工作中遇到的那些坑(一)--NGINX配置worker_connections

我与影子孤独终老i 提交于 2019-12-01 13:52:47
系统架构:域名--F5--nginx集群--服务 现象:web页面随机性的时好时坏,坏的时候会报500内部服务错误或者404页面丢失。 定位:代码、配置、网络都检查了,没问题,最后发现访问域名就会报错,直接访问内网服务器地址就没问题,怀疑是nginx的问题。查看nginx的日志,发现有报错:worker_connections are not enough while connecting to upstream。 解决:nginx主配置文件nginx.conf中默认的worker_connections102400,问题解决。 原因:服务的连接数超过了nginx设置的最大连接数。 疑问:检查了nginx的活跃连接数,不多,不超过1024,但是worker_connections设置1024时候,web页面会报错。怀疑可能web页面在点击的时候会在瞬时向后台频繁请求页面,导致nginx连接数瞬时增加。后续有精力再研究吧,头疼。 来源: https://www.cnblogs.com/gllegolas/p/11689377.html

Nginx入门和redis持久化集群

前提是你 提交于 2019-12-01 13:02:13
推荐的歌: 浪子回头 mariadb 1.yum安装 yum install mariadb-server mariadb -y 2.yum安装好之后,启动服务端,只有通过yum安装的软件才可以用systemctl systemctl start mariadb 3.数据库初始化 4.mysql -uroot -p redis 1.源码包安装redis 2.指定了/opt/redis/工作目录 3.启动redis服务端 redis-server redis.conf 4.redis.conf软件的配置文件作用? 给这个软件,指定开放/关闭一些功能 改redis端口 改redis密码 redis的安全模式 bind参数,指定redis启动的ip地址 杀死redis服务的方法 1.kill pid 2.pkill redis-server 根据服务名 杀死进程,可以杀死所有有关redis-server 1.在linux服务器上安装软件 分好几种: -yum安装 -配置yum源,配置163,清华,阿里云的yum源 -清空yum缓存 -生成新的yum缓存 -源码安装 -下载软件的源码压缩包 -解压缩,切换目录 -释放makefile,编译,编译安装 -rpm软件包安装 远程连接工具 xshell( ssh root@ip ) mac同学 ssh root@ip 今年所学 redis发布订阅

Nginx

孤街浪徒 提交于 2019-12-01 12:54:51
Nginx 与服务器集群 一. 集群 1. 什么是集群 集 合在一起 放在一起 群 一堆 很多 服务器架构集群:多台服务器组成的响应大并发,高数据量的架构体系。 分布式服务器架构 特点: (1)成本高 (2)能够降低单台服务器的压力,使用流量平均分配到多台服务器 (3)使网站服务架构更加安全稳定 服务器概念 : 提供某种或多种服务(功能)的机器(计算机) (1)硬件 性能比较好的电脑主机 (2)软件 实现各种服务支持的协议的软件 1.1 web 服务软件 提供 http https协议的服务器。网站网页访问的功能 Apache 老牌的服务器软件,功能多并且稳定 ,支持多种配置, lamp Nginx 安装简单小巧,并发量高, web服务器,代理服务器,邮箱服务器 lls 微软公司, APS脚本使用,可以通过fast-cgi(网络接口服务)的方式使用PHP Lighttpd 德国开发的软件,小巧,提供 web服务支持 1.2 数据库 关系型数据库( RDBMS): Mysql mysqlab => sun(java) => Oracle Mariadb mysql的一个分支 Postgresql 加州伯克利大学,学院派 Oracle 大型商业数据库 Sqlserver 微软数据库 DB2 IBM Sqllite3 手机端( iOS和安卓)使用 非关系型数据库 Memcached

API 网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd

痴心易碎 提交于 2019-12-01 12:53:33
前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay Çelik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作为单体应用的网关,后来接触到微服务架构后开始逐渐采用了其他组件。 我对于所做的工作或者感兴趣的技术,喜欢刨根问底,所以当读一篇文章时发现没有看到我想要看到的设计思想,我就会四处搜集资料,此外这篇文章涉及了我正在捣鼓的 Spring Cloud,所以我就决定写一篇文章,争取能从设计思路上解释为什么会有这样的性能差异。 技术介绍 文中针对 Nginx、ZUUL、Spring Cloud、Linkerd 等技术进行了对比(其实还有 Envoy 和 UnderTow 也是属于可选的 API 网关,本文不予涉及),那我就分别进行介绍,当然,首先得介绍 API 网关。 API 网关 API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性。 存在跨域请求,在一定场景下处理相对复杂。 认证复杂,每个服务都需要独立认证。 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个

采坑指南——k8s域名解析coredns问题排查过程

蹲街弑〆低调 提交于 2019-12-01 11:43:44
正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出)。今天发现域名解析不了。 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一个nginx服务 apiVersion: v1 kind: Service metadata: name: nginx-svc-old labels: app: nginx-svc spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx-old spec: replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 创建好之后: 因只部署了一个master节点。在master宿主机上直接执行以下命令: nslookup nginx-svc-old.default.svc 发现不能解析域名。事先也在宿主机上/etc/resolv.conf里配置了nameserver

服务端高并发分布式架构演进之路

孤人 提交于 2019-12-01 11:41:13
https://segmentfault.com/a/1190000018626163#articleHeader18 1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 2. 基本概念 在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上 高可用 系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性 集群 一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如Zookeeper中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服务,并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,这时候说明集群具有高可用性 负载均衡 请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的 正向代理和反向代理

高并发Web服务的演变—节约系统内存和CPU

梦想的初衷 提交于 2019-12-01 11:12:24
#0 系列目录# 应用系统架构 大型网站技术架构的演进与设计 大型网站技术架构的实践 大型网站图片服务器架构的演进 大型网站架构的灵魂—性能 大型网站架构的缓存 亿级Web系统搭建—单机到分布式集群 高并发Web服务的演变—节约系统内存和CPU #1 越来越多的并发连接数# 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战。以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置。虽然现在的硬件越来越便宜,但是一味地通过增加机器来解决并发量的增长,成本是非常高昂的。 结合技术优化方案,才是更有效的解决方法 。 并发连接数为什么呈指数增长?实际上,从这几年的用户基数上看,这个数量并没有出现指数增长,因此它并非主要原因。 主要原因,还是web变得更复杂,交互更丰富所导致的 。 ##1.1 页面元素增多,交互复杂## Web页面元素越来越多,更为丰富。更多的资源元素,意味着更多的下载请求。Web系统的交互越来越复杂,交互场景和次数也大幅增加。以“www.qq.com”的首页为例子,刷新一次,大概会有244个请求。并且,在页面打开完成之后,还会有一些定时的查询或者上报请求持续运作。 目前的Http请求, 为了减少反复的创建和销毁连接行为,通常都建立长连接(Connection keep-alive) 。一经建立