自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(293)
  • 收藏
  • 关注

转载 nginx 流量控制

流量限制(rate-limiting),我们可以用来限制用户在给定时间内HTTP请求的数量。流量限制可以用作安全目的,比如可以减慢暴力密码破解的速率。还可以用来抵御 DDOS 攻击。更常见的情况是该功能被用来保护上游应用服务器不被同时太多用户请求所压垮。1、Nginx如何限流Nginx的”流量限制”使用漏桶算法(leaky bucket algorithm),就好比,一个桶口在倒水,桶底在漏水的水桶。如果桶口倒水的速率大于桶底的漏水速率,桶里面的水将会溢出;同样,在请求处理方面,水代表来自客户端的.

2020-09-24 15:23:00 883 2

转载 nginx 变量与监控

Nginx的配置文件使用语法的就是一门微型的编程语言。既然是编程语言,一般也就少不了“变量”这种东西。1、nginx变量简介所有的 Nginx变量在 Nginx 配置文件中引用时都须带上 $ 前缀 在 Nginx 配置中,变量只能存放一种类型的值,而且也只存在一种类型,那就是字符串类型 所有的变量值都可以通过这种方式引用: $变量名 2、nginx 变量的定义和使用 nginx中的变量分为两种,自定义变量与内置预定义变量1、自定义变量1、声明变量可以在sever,http,locatio.

2020-09-24 15:22:51 484 1

转载 负载均衡集群

1、集群是什么?1 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。2 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。2、负载均衡集群技术① 负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载

2020-09-24 15:21:58 829 2

转载 企业 keepalived 高可用项目实战

1、Keepalived VRRP 介绍 keepalived是什么 keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 ​ keepalived工作原理 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 ​ 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master

2020-09-24 15:21:53 313 1

转载 nginx 的平滑升级

1、为什么要对 nginx 平滑升级随着nginx越来越流行,并且nginx的优势也越来越明显,nginx的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如stream四层代理功能,伴随着nginx的广泛应用,版本升级必然越来越快,线上业务不能停,此时nginx的升级就是运维的工作了nginx 方便地帮助我们实现了平滑升级。其原理简单概括,就是:(1)在不停掉老进程的情况下,启动新进程。 (2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。 ...

2020-09-24 15:21:09 1136 1

原创 nginx 日志配置

1、nginx 日志介绍nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块ngx_http_log_module的支持,日志格式通过log_format命令来定义,日志对于统计和排错是非常有利的,下面总结了nginx日志相关的配置 包括access_log、log_format、rewrite_log、error_log。# 设置访问日志access_log path [format [buffer=size] [gzip[=level...

2020-09-17 16:53:54 1527 1

原创 nginx的set指令

set 指令set 指令是用于定义一个变量,并且赋值应用环境:server,location,if应用示例例8:#http://alice.testpm.com ==> http://www.testpm.com/alice#http://jack.testpm.com ==> http://www.testpm.com/jack​[root@nginx-server conf.d]# cd /usr/share/nginx/html/[root@nginx-s

2020-09-17 16:48:41 11077 1

原创 nginx会话保持与防盗链

nginx 会话保持nginx会话保持主要有以下几种实现方式。1、ip_haship_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。ip_hash语法:upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down;}ip_hash

2020-09-17 16:46:22 341 1

原创 nginx 的平滑升级

1、为什么要对 nginx 平滑升级随着nginx越来越流行,并且nginx的优势也越来越明显,nginx的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如stream四层代理功能,伴随着nginx的广泛应用,版本升级必然越来越快,线上业务不能停,此时nginx的升级就是运维的工作了nginx 方便地帮助我们实现了平滑升级。其原理简单概括,就是:(1)在不停掉老进程的情况下,启动新进程。 (2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。 ...

2020-09-17 16:42:25 1375 1

原创 nginx的localtion指令详解

nginx的localtion指令详解Nginx 的 HTTP 配置主要包括三个区块,结构如下:http { # 这个是协议级别  include mime.types;  default_type application/octet-stream;  keepalive_timeout 65;  gzip on;    server { # 这个是服务器级别      listen 80;      server_n

2020-09-17 16:42:09 652 1

转载 Nginx之HTTP协议介绍(一)连载

一、HTTP 介绍HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。1、HTTP 工作原理HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器有:Nginx,Apache服务器,

2020-09-08 14:51:03 224

转载 Nginx服务

二、nginx 服务1、nginx 介绍Nginx(engine x) 是一个轻量级,高性能的 HTTP 和 反向代理 服务,也是一个IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。创始人伊戈尔·赛索耶夫2、为什么选择 nginxNginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:单机环境下参考服务器配置。 并发连接数在7000+ -8000左右。 集群模式20000+作为 Web 服务.

2020-09-08 14:50:58 240

转载 nginx安装部署和配置管理

1、nginx部署-Yum安装访问nginx的官方网站:http://www.nginx.org/Nginx版本类型Mainline version: 主线版,即开发版Stable version: 最新稳定版,生产环境上建议使用的版本Legacy versions: 遗留的老版本的稳定版Yum安装nginx配置Yum源的官网:http://nginx.org/en/linux_packages.html1、配置nginx的Yum源Installation instr

2020-09-08 14:50:50 245

转载 nginx虚拟主机配置

nginx 虚拟机配置什么是虚拟主机?虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置。 1、基于域名的虚拟主机 (server_name来区分虚拟主机——应用:外部网站) 2、基于ip的虚拟主机, (一块主机绑定多个ip地址) 3、基于端口的虚拟主机 (端口来区分虚拟主机——.

2020-09-08 14:50:43 218

转载 nginx的反向代理

nginx Proxy 代理1、代理原理反向代理服务的实现: 需要有一个负载均衡设备(即反向代理服务器)来分发用户请求,将用户请求分发到后端正真提供服务的服务器上。服务器返回自己的服务到负载均衡设备。负载均衡设备将服务器的服务返回用户。2、正/反向代理的区别正向代理: 正向代理的过程隐藏了真实的请求客户端,服务器不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替请求。我们常说的代理也就是正向代理,正向代理代理的是请求方,也就是客户端;反向代理:反向代理的过程隐藏了真实的服

2020-09-08 14:50:37 252

转载 容器编排之战(二十六)连载

滚动更新概念:将一个集群中正在运行的多个 Pod 版本,交替地逐一升级的过程,就是"滚动更新"。实验:[root@kub-k8s-master prome]# kubectl get deployNAME READY UP-TO-DATE AVAILABLE AGEdep01 2/2 2 2 4h41mnginx-deployment 2/2 2

2020-09-07 15:00:33 162

转载 容器编排之战(二十三)连载

创建SERVICE三台安装iptables:[root@kub-k8s-master prome]# yum install -y iptables iptables-services1.创建一个depl[root@kub-k8s-master prome]# kubectl delete -f deployment.yaml[root@kub-k8s-master prome]# vim nginx-depl.ymlapiVersion: apps/v1kind: Deployment

2020-09-07 14:57:30 139

转载 容器编排之战(二十二)连载

Deployment 资源详解使用yaml创建Deploymentk8s deployment资源创建流程:1. 用户通过 kubectl 创建 Deployment。2. Deployment 创建 ReplicaSet。3. ReplicaSet 创建 Pod。对象的命名方式是:子对象的名字 = 父对象名字 + 随机字符串或数字Deployment是一个定义及管理多副本应用(即多个副本 Pod)的新一代对象,与Replication Controller相比,它提供了更加完善的功

2020-09-07 14:56:46 134

转载 容器编排之战(二十四)连载

RC资源(了解)Replication Controller(简称rc)用来管理Pod的副本,保证集群中存在指定数量的Pod副本。集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量,反之,则会启动少于指定数量个数的容器,保证数量不变。Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。​RC 的主要功能点:确保pod数量:指定某个服务在Kubernetes中有相应数量的Pod在运行;确保pod健康:当pod不健康,运行出错或者无法提供服务时,会杀

2020-09-07 14:56:31 168 1

转载 容器编排之战(二十五)连载

控制器模式解析 k8s 项目通过一个称作"控制器模式"(controller pattern)的设计方法,来统一地实现对各种不同的对象或者资源进行的编排操作。#k8s核心就是用一个东西去控制另一个东西,所有的内容都是被控制的, 容器镜像虽然好用,但是容器这样一个"沙盒"的概念,对于描述应用来说太过简单。好比,集装箱固然好用,如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?​ 所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给集装箱四

2020-09-07 14:56:24 183

转载 容器编排之战(十七)连载

ConfigMap祥解ConfigMap与 Secret 类似,用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中。与 Secret 的区别:ConfigMap 保存的是不需要加密的、应用所需的配置信息。​ConfigMap 的用法几乎与 Secret 完全相同:可以使用 kubectl create configmap 从文件或者目录创建 ConfigMap,也可以直接编写 ConfigMap 对象的 YAML 文件。创建ConfigMap创建C

2020-09-04 15:39:11 85

转载 容器编排之战(十八)连载

Downward APIDownward API用于在容器中获取 POD 的基本信息,kubernetes原生支持​Downward API提供了两种方式用于将 POD 的信息注入到容器内部:1.环境变量:用于单个变量,可以将 POD 信息和容器信息直接注入容器内部。2.Volume挂载:将 POD 信息生成为文件,直接挂载到容器内部中去。​环境变量的方式:通过Downward API来将 POD 的 IP、名称以及所对应的 namespace 注入到容器的环境变量中去,然后在容器中打

2020-09-04 15:39:06 90

转载 容器编排之战(十九)连载

ServiceAccount详解官方文档地址:https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/k8s中提供了良好的多租户认证管理机制,如RBAC、ServiceAccount还有各种Policy等。什么是 Service Account ?当用户访问集群(例如使用kubectl命令)时,apiserver 会将用户认证为一个特定的 User Account(目前通常是ad

2020-09-04 15:38:56 82

转载 容器编排之战(二十)连载

RBAC 详解(基于角色的访问控制)一个实验搞定RBACRBAC基于角色的访问控制--全拼Role-Based Access Control​Service Account为服务提供了一种方便的认证机制,但它不关心授权的问题。可以配合RBAC来为Service Account鉴权​在Kubernetes中,授权有ABAC(基于属性的访问控制)、RBAC(基于角色的访问控制)、Webhook、Node、AlwaysDeny(一直拒绝)和AlwaysAllow(一直允许)这6种模式。​在R

2020-09-04 15:38:00 84

转载 容器编排之战(二十一)连载

容器监控检查及恢复机制在 k8s 中,可以为 Pod 里的容器定义一个健康检查"探针"(Probe)。kubelet 就会根据这个 Probe 的返回值决定这个容器的状态,而不是直接以容器是否运行(来自 Docker 返回的信息)作为依据。这种机制,是生产环境中保证应用健康存活的重要手段。注:k8s 中并没有 Docker 的 Stop 语义。所以如果容器被探针检测到有问题,查看状态虽然看到的是 Restart,但实际却是重新创建了容器。命令模式探针:Kubernetes 文档中的例子:

2020-09-04 15:37:55 85

转载 容易编排之战(十二)连载

集群操作--查看集群信息1.查看集群信息:[root@kub-k8s-master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONkub-k8s-master Ready master 16h v1.16.1kub-k8s-node1 Ready <none> 15h v1.16.1kub-k8s-node2 Ready <none&

2020-09-02 14:26:16 87

转载 容器编排之战(十六)连载

Secret详解secret用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥。这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。 用户可以创建自己的secret,系统也会有自己的secret。 Pod需要先引用才能使用某个secretPod有2种方式来使用secret:1. 作为volume的一个域被一个或多个容器挂载2. 在拉取镜像的时候被kubelet引用。內建的Secrets:由Serv

2020-09-02 14:25:43 94

转载 容器编排之战(十五)连载

Pod API属性详解Pod API 对象Pod是 k8s 项目中的最小编排单位。将这个设计落实到 API 对象上,容器(Container)就成了 Pod 属性里一个普通的字段。问题:通过yaml文件创建pod的时候里面有容器,这个文件里面到底哪些属性属于 Pod 对象,哪些属性属于 Container?解决: Pod 扮演的是传统环境里"虚拟机"的角色。是为了使用户从传统环境(虚拟机环境)向 k8s(容器环境)的迁移,更加平滑。 把 Pod 看成传统环境里的"机器"

2020-09-02 14:25:29 105

转载 容易编排之战(十四)连载

Yaml文件语法解析除了某些强制性的命令,如:kubectl run或者expose等,k8s还允许通过配置文件的方式来创建这些操作对象。通常,使用配置文件的方式会比直接使用命令行更可取,因为这些文件可以进行版本控制,而且文件的变化和内容也可以进行审核,当使用及其复杂的配置来提供一个稳健、可靠和易维护的系统时,这些点就显得非常重要。在声明定义配置文件的时候,所有的配置文件都存储在YAML或者JSON格式的文件中并且遵循k8s的资源配置方式。YAML是专门用来写配置文件的语言,非常简洁和强

2020-09-02 14:25:10 78

转载 容器编排之战(十三)连载

发布第一个容器化应用1.有镜像2.部署应用。。--考虑做不做副本不做副本就是pod,做副本以deployment方式去创建。做了副本访问还需要做一个service,使用访问。发布第一个容器化应用扮演一个应用开发者的角色,使用这个 Kubernetes 集群发布第一个容器化应用。1. 作为一个应用开发者,你首先要做的,是制作容器的镜像。2. 有了容器镜像之后,需要按照 Kubernetes 项目的规范和要求,将你的镜像组织为它能够"认识"的方式,然后提交上去。什么才是 Kubern

2020-09-02 14:24:58 164

转载 容器编排之战(七)连载

在Master节点部署组件在部署Kubernetes之前一定要确保etcd、flannel、docker是正常工作的,否则先解决问题再继续。生成证书master节点操作--给api-server创建的证书。别的服务访问api-server的时候需要通过证书认证创建CA证书:[root@k8s-master1 ~]# mkdir -p /opt/crt/[root@k8s-master1 ~]# cd /opt/crt/# vim ca-config.json{ "signing"

2020-09-01 14:55:07 129

转载 容器编排之战(十一)连载

部署Harbor仓库下面一步需要翻墙(用的1.8.0版本的harbor)[root@kub-k8s-master ~]# wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz[root@kub-k8s-master ~]# yum -y install lrzsz​[root@kub-k8s-master ~]# curl -L https:/

2020-09-01 14:54:36 83

转载 容器编排之战(十)连载

完整安装过程准备三台机器,192.168.246.166 kub-k8s-master192.168.246.167 kub-k8s-node1192.168.246.169 kub-k8s-node2​制作本地解析,修改主机名。相互解析# vim /etc/hosts所有机器系统配置1.关闭防火墙:# systemctl stop firewalld# systemctl disable firewalld2.禁用SELinux:# setenforce .

2020-09-01 14:54:06 204

转载 容器编排之战(九)连载

kubeadm方式部署k8s集群官方文档:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/kubeadm部署k8s高可用集群的官方文档:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/获取镜像在docker hub拉取相应的镜像并重新打

2020-09-01 14:53:44 88

转载 容器编排之战(八)连载

部署Dashboard(Web UI)* dashboard-deployment.yaml #部署Pod,提供Web服务* dashboard-rbac.yaml #授权访问apiserver获取信息* dashboard-service.yaml #发布服务,提供对外访问​创建一个目录[root@k8s-master ~]# mkdir webui[root@k8s-master ~]# cd webui/[root@

2020-09-01 14:53:37 110

转载 容器编排之战(二)连载

Swarm与CoreOSDocker 公司发布 Swarm 项目Docker 公司在 2014 年发布 Swarm 项目. 一个有意思的事实:虽然通过"容器"这个概念完成了对经典 PaaS 项目的"降维打击",但是 Docker 项目和 Docker 公司,兜兜转转了一年多,却还是回到了 PaaS 项目原本深耕多年的那个战场:如何让开发者把应用部署在我的项目上。Docker 项目从发布之初就全面发力,从技术、社区、商业、市场全方位争取到的开发者群体,实际上是为此后吸引整个生态到自家"PaaS"上

2020-08-31 14:39:32 105

转载 容器编排之战(四)连载

MasterMaster主要负责资源调度,控制副本,和提供统一访问集群的入口。--核心节点也是管理节点NodeNode是Kubernetes集群架构中运行Pod的服务节点(亦叫agent或minion)。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机,由Master管理,并汇报容器状态给Master,同时根据Master要求管理容器生命周期。 Node IP Node节点的IP地址,是Kubernetes集群中每个节点的物理网卡的

2020-08-31 14:37:50 85

转载 容器编排之战(六)连载

Kubernetes集群部署方式方式1. minikubeMinikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。​官方地址:https://kubernetes.io/docs/setup/minikube/ 方式2. kubeadmKubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。​官方地址:https://kubern

2020-08-31 14:37:25 177 1

转载 容器编排之战(五)连载

Kubernetes架构和组件主从分布式架构,Master/Node组件:Kubernetes Master:​集群控制节点,负责整个集群的管理和控制,基本上Kubernetes所有的控制命令都是发给它,它来负责具体的执行过程,我们后面所有执行的命令基本都是在Master节点上运行的;​包含如下组件:1.Kubernetes API Server作为Kubernetes系统的入口,其封装了核心对象的增删改查操作,以RESTful API接口方式提供给外部客户和内部组件调用。维护

2020-08-31 14:37:16 82

转载 容器编排之战(三)连载

google与k8s事实并非如此 下回分解2014 年 6 月,基础设施领域的翘楚 Google 公司突然发力,正式宣告了一个名叫 Kubernetes 项目的诞生。这个项目,不仅挽救了当时的 CoreOS 和 RedHat,还如同当年 Docker 项目的横空出世一样,再一次改变了整个容器市场的格局。这段时间,也正是 Docker 生态创业公司们的春天,大量围绕着 Docker 项目的网络、存储、监控、CI/CD,甚至 UI 项目纷纷出台,也涌现出了很多 Rancher、Tutum 这样在开源

2020-08-31 14:37:01 142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除