自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 论坛 (1)

原创 Ansible playbook的语法∶YAML

playbook的语法∶YAMLansible的playbook采用yaml语法,它以非常简洁的方式实现了json格式的事件插述。y aml之于json就像markdown之于html一样,极度简化了json的书写。YAML文件后缀通常为.yaml或.yml。YAML在不少工具里都使用,学习它是"一次学习、终生受益"的,所以很有必要把yaml 的语法格式做个梳理,系统性地去学—学。YAML的基本语法规则如下∶(1)使用缩进表示层级关系(2)缩进时不允许使用Tab键,只允许使用空格

2020-08-30 18:33:14 64

转载 Docker 初识 macvlan网络

除了 overlay,docker 还开发了另一个支持跨主机容器网络的 driver:macvlan。macvlan 本身是 linxu kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置自己的 IP。macvlan 本质上是一种网卡虚拟化技术,Docker 用 macvlan 实现容器网络就不奇怪了。macvlan 的最大优点是性能极好,相比其他实现,macvlan 不需要创建 Linux bridge,而是直接

2020-08-30 12:42:39 49

转载 Linux 一则案例了解内存泄漏

对普通进程来说,能看到的其实是内核提供的虚拟内存,这些虚拟内存还需要通过页表,由系统映射为物理内存。当进程通过 malloc0申请虚拟内存后,系统并不会立即为其分配物理内存,而是在首次访问时, 才通过缺页异常陷入内核中分配内存。为了协调 CPU与磁盘间的性能差异,Linux 还会使用Cache和Buffer,分别把文件和磁盘读写的数据缓存到内存中。对应用程序来说,动态内存的分配和回收,是既核心又复杂的一个逻辑功能模块。管理内存的过程中,也很容易发生各种各样的"事故",比如● 没正确回收分配.

2020-08-28 20:25:59 65

原创 Ansible Ansible的灵魂∶playbook

Ansible playbookansible命令每次只能执行一个任务,这种运行方式称为Ad-hoc(点对点模式),不考虑Ansible特性的话,这功能比ssh远程执行命令还要弱。所以,Ansible靠ansible命令是撑不起自动化管理这把大伞的,Ansible真正强大的是playbook,它才是Ansible撬动自动化管理的结实杠杆。playbook、play和task的关系在前面介绍inventory的时候,将它类比为演员表,在这里,我继续对playbook、play 和task.

2020-08-28 17:20:53 70

转载 Docker 什么?网卡也能虚拟化? 网络模式macvlan

macvlan 简介几种 Linux 虚拟网络设备:tap/tun、veth-pair、bridge,它们本质上是 Linux系统提供的网络虚拟化解决方案,今天要讲的 macvlan 也是其中的一种,准确说这是一种网卡虚拟化的解决方案。因为 macvlan 这种技术能将一块物理网卡虚拟成多块虚拟网卡 ,相当于物理网卡施展了多重影分身之术 ,由一个变多个。 macvlan 的工作原理macvlan 是 Lin...

2020-08-26 20:35:16 38

转载 k8s 启动Pod遇到CrashLoopBackOff的解决方法与思路

一直正常运的k8s,集群节点没问题,但启动pod出现异常等待中: CrashLoopBackOff1.登陆此节点主机使用kubctl获取pod状态kubectl get pod 查询异常pod名称为:elkhost-944bcbcd4-8n9nj2.查看此状态pod详细情况kubectl describe pod elkhost-944bcbcd4-8n9nj3.查看此pod日志 kub...

2020-08-26 16:36:43 191

转载 Linux 理解系统缓存提高程序运行效率

内存性能中 Buffer和Cache的概念Buffer和Cache的设计目的,是为了提升系统的I/O性能。它们利用内存,充当起慢速磁盘与快速CPU之间的桥梁,可以加速 I/O的访问速度。Buffer和Cache 分别缓存的是对磁盘和文件系统的读写数据。●从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返回去做其他工作。●从读的角度来说,不仅可以提高那些频繁访问数据的读取速度,也降低了频繁I/O对磁盘的压力。既然Buffer和Cache .

2020-08-26 11:09:53 73

原创 Docker 一篇文章总结Docker的网络模式

Docker网络现状为了解决容器网络性能低下、功能不足的问题,Docker启动了子项目“Libnetwork”。Libnetwork提出了新的容器网络模型(Container Network Model,简称CNM),定义了标准的API用于为容器配置网络,其底层可以适配各种网络驱动(如图Docker-network01所示)。CNM有三个: 沙盒 沙盒是一个隔离的网络运行环境,保存了容器网络栈的配置,包括了对网络接口、路由表和DNS配置的管理。在Linux平台上,沙盒是用Linux Networ

2020-08-25 21:40:37 84

原创 Ansible 变量的使用详解

1、Playbook 变量ansible中使用变量,能够让我们的工作变得更加灵活定义变量变量名应该由字母、数字、下划线组成,变量名需要字母开头,ansible内置的关键字不能作为变量名使用2、Playbook 变量定义使用vars关键字可以在当前playbook中进行变量定义,让我们要使用变量的时候,则需要引用对应变量名,使用{{ 变量名 }}可以引用对应变量。变量简单定义[root@localhost ~]# cat vars.yml - hosts: all r.

2020-08-25 15:13:24 61

转载 Kubernetes k8s当中几个重要的概念

实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石。ClusterCluster 是计算、存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用。MasterMaster 是 Cluster 的大脑,它的主要职责是调度,即决定将应用放在哪里运行。Master 运行 Linux 操作系统,可以是物理机或者虚拟机。为了实现高可用,可以运行多个 Master。NodeNode 的职责是运行...

2020-08-24 17:47:51 79

原创 Docker 一文教你清理docker空间释放磁盘空间

如何清理docker目录docker 目录已经占满系统盘,又不好迁移,问下有没有快捷的解决方案,答案是有的。以下是我整理的经典案列,适合生产以及测试使用。编写清理docker 日志脚本如下:[root@www ~]# cat clean_docker_log_space.log #!/bin/bashdocker_log_files=$(find /var/lib/docker/containers/ -name '*-json.log')docker_logs_size=$(find /v

2020-08-24 17:09:53 239

原创 Redis 单机部署redis实例

Redis入门简介Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是一个key-value存储系统。 和Memcached缓存类似,Redis支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、hash(哈希类型)。并且支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。Redis也被看成是一个数据结构服务器。编译安..

2020-08-23 13:23:09 57

原创 Linux 7.x磁盘配额详解

磁盘配额(Quota)磁盘配额(Quota)就是 Linux 系统中用来限制特定的普通用户或用户组在指定的分区上占用的磁盘空间或文件个数的。在此概念中,有以下几个重点需要注意:磁盘配额限制的用户和用户组,只能是普通用户和用户组,也就是说超级用户 root 是不能做磁盘配额的 磁盘配额限制只能针对分区,而不能针对某个目录,换句话说,磁盘配额仅能针对文件系统进行限制,举个例子,如果你的 /dev/sda5 是挂载在 /home 底下,那么,在 /home 下的所有目录都会受到磁盘配额的限制 我们可

2020-08-20 17:50:28 80

原创 Nginx listen指令处理连接请求

listen指令nginx作为一个高性能的HTTP服务器,网络的处理是其核心,了解网络的初始化有助于加深对nginx网络处理的了解。与网络有关的配置命令主要有两个:listen和sever_name。listen命令设置nginx监听地址,对于IP协议,这个地址就是address和port,对于UNIX域套接字协议,这个地址就是path,一条listen指令只能指定一个address或者port,address也可以是主机名。一个请求进入Nginx在处理之前先要监听端口,使得Nginx与客户端建立T

2020-08-20 11:00:44 204

转载 Docker 日志管理之 Docker logs

高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要。在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要。考虑到容器短暂和不固定的生命周期,当我们需要 debug 问题时有些容器可能已经不存在了。因此,一套集中式的日志管理系统是生产环境中不可或缺的组成部分。本章我们将讨论监控容器的各种可用技术和方案,首先会介绍 Docker 自带的 logs 子命令,然后讨论 Docker 的 logging driver,接下来通过实践学习几个已经广泛应用的日志管

2020-08-19 16:29:31 90

原创 Docker 官方镜像构建你的zabbix 5.x

环境准备Docker CE版本,以及mysql zabbix nginx镜像准备好,这些镜像都可以去使用docker pull去官方仓库拉取下来[root@www ~]# docker versionServer: Docker Engine - Community Engine: Version: 19.03.12 API version: 1.40 (minimum version 1.12) Go version: go1.13.10.

2020-08-19 15:54:49 323 2

转载 Redis 一文带你明白哨兵Sentinel模式

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操

2020-08-17 21:59:35 64

原创 Docker storage-driver overlay2 限制容器可占用的磁盘空间

Docker容器默认启动的虚拟机,会占用宿主机的资源(CPU、内存、硬盘),例如默认Docker基于Overlay2驱动方式,容器硬盘的rootfs根分区空间是整个宿主机的空间大小。可以指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件:vim /usr/lib/systemd/system/docker.service中,OPTIONS参数后面添加如下代码,指定Docker容器rootfs容量大小为40G:说明overlay2.size是在17.07.0-ce...

2020-08-17 17:19:26 449

转载 Linux 一文详解 缓冲区buffer和缓存cache

内存和CPU的关系非常紧密,而内存管理本身也是很复杂的机制,所以感觉知识很硬核、很难啃,都是正常的。但还是那句话,初学时不用非得理解所有内容,继续往后学,多理解相关的概念并配合一定的实践之后,再回头复习往往会容易不少。当然,基本功不容放弃。先来回顾一下系统的内存使用情况,比如下面这个 free输出界面∶[root@localhost ~]# free total used free shared buff/cache availa

2020-08-17 10:30:05 143

原创 Docker Docker Habor一个比Register更加好用的仓库

[root@www ~]# wget -c https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0.tgz--2020-08-14 21:19:45-- https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0.tgzResolving stor.

2020-08-15 09:17:13 898

原创 Docker registry镜像构造你自己的私有仓库

Register镜像就是用来启动仓库的,其他docker平台可以从该仓库中下载镜像,不需要去官方下载镜像,仓库服务器需要安装dokcerDocker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库,使用私有仓库的优点如下:节省网络带宽,针对于每个镜像不用去Docker官网仓库下载;下载Docker镜像从本地私有仓库中下载;组件公司内部私有仓库,方便各部门使用,服务器管理更加统一;可以基于GIT或者SVN、Jenkins更新

2020-08-14 10:55:37 76

转载 Linux 计算机基础知识必知必会

基础知识回顾这部分我们简单回顾一下计算机存储体系、虚拟内存、栈和堆,以及堆内存的管理,这部分内容对理解和掌握内存管理比较重要。存储金字塔这幅图表达了计算机的存储体系,从上至下依次是:CPU寄存器 Cache 内存 硬盘等辅助存储设备 鼠标等外接设备从上至下,访问速度越来越慢,访问时间越来越长。你有没有思考过下面2个简单的问题,如果没有不妨想想:如果CPU直接访问硬盘,CPU能充分利用吗? 如果CPU直接访问内存,CPU能充分利用吗?CPU速度很快,但硬盘等持久.

2020-08-13 23:29:00 84

原创 Docker --link实现源容器与接收容器通信

docker间常常需要互联或者说通信,比如后台程序访问数据库容器,一般是需要ip+端口的形式,然而ip是经常会变化的,docker中采用link来为容器起个名字,以后访问只要名字+端口就行了,这样减少了ip访问下,ip常发生变化而导致的问题操作概述,在创建第二个容器时,将第二个容器link到第一个容器中,这样第一个容器访问第二个容器时利用名字就能访问。docker run --link的作用docker run --link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去.

2020-08-13 16:56:53 60

原创 Docker Copmose之部署你的wordpress站点

Quickstart: Compose and WordPressYou can use Docker Compose to easily run WordPress in an isolated environment built with Docker containers. This quick-start guide demonstrates how to use Compose to set up and run WordPress. Before starting, make sure yo

2020-08-12 20:41:46 58

原创 Docker CentOS 7.x下Docker桥接网络配置

为什么要让docker桥接物理网络?docker默认提供了一个隔离的内网环境,启动时会建立一个docker0的虚拟网卡,每个容器都是连接到docker0网卡上的。而docker0的ip段为172.17.0.1,若想让容器与宿主机同一网段的其他机器访问,就必须在启动docker的时候将某个端口映射到宿主机的端口上才行,例如:docker run -itd -p 22 centos。这是我们所不能接受的,想想每个应用都要绞尽脑汁的去设置端口,因为不能重复,如果应用有多端口那更是不堪设想啊。所以为了让容器与宿

2020-08-11 22:20:13 212 1

原创 Docker 网络初识之bridge模式

none模式的好处是可以静态配置IP地址,也就是我们可以自己手工去配置IP,不用DHCP去分配,none模式有自己的网络模块,默认是没有指定IP地址需要人工去指定,bridge模式用的是最多的模式,该模式下会为每个容器分配其IP地址eth0是宿主机的IP地址10.10.101.105,docker0相当于二层的交换机,docker1或者docker2叫做容器(虚拟机),多个容器的网络连接到交换机上(docker0相当于二层的交换机),从而能够实现容器和容器之间是可以访问的,因为在二层网络里面,doc

2020-08-11 21:30:10 76

翻译 Docker Compose的一些常用参数

depends_onAdded inversion 2.0file format.Express dependency between services. Service dependencies cause the following behaviors:docker-compose upstarts services in dependency order. In the following example,dbandredisare started beforeweb....

2020-08-11 15:48:39 70

原创 Linux 搞懂物理内存和虚拟内存

对于精通CURD的业务同学,内存管理好像离我们很远,但这个知识点虽然冷门(估计很多人学完根本就没机会用上)但绝对是基础中的基础。这就像武侠小说中的内功修炼,学完之后看不到立竿见影的效果,但对你日后的开发工作是大有裨益的,因为你站的更高了。再功利点的说,面试的时候不经意间透露你懂这方面知识,并且能说出个一二三来,也许能让面试官对你更有兴趣,离升职加薪,走上人生巅峰又近了一步。虚拟地址即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了...

2020-08-11 10:40:07 62

原创 Docker 网络 none模式

处于none模式有自己的网卡,有网络模块但是docker不会给其配置IP地址,可以看到是没有ip的,需要手工配置IP地址。none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo,没有其他任何网卡。容器创建时,可以通过 –network=none 指定使用 none 网络。[root@localhost test]# docker run -itd --net=none centos-ssh3205a3b3ff63a7e568c5096fd20b1355fd758ed3f158011c

2020-08-10 21:35:53 91

原创 Docker Dockerfile制作Nginx镜像

使用 Dockerfile 来制作 nginx镜像[root@www dockerfile]# cat Dockerfile FROM ansible/centos7-ansibleMAINTAINER Complicated#ENV 设置环境变量ENV PATH /usr/local/nginx/sbin:$PATHRUN yum install gcc gcc-c++ make openssl-devel pcre-devel pcre -y &&\ use.

2020-08-10 17:50:01 96

原创 Docker 初探Docker的网络模式之Container模式模式

Container模式熟悉了host模式,Container模式也非常好理解,Container模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。即新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样两个容器除了网络方面相同之外,其他的如文件系统、进程列表等还是隔离的。新创建的容器和已经存在的容器共享网络IP,而不是和宿主机共享,不管host模式也好还是container模式也好,这个容器和宿主机还是

2020-08-09 13:46:23 114

原创 Docker 初探Docker的网络模式之host模式

刚接触Docker的时候,你是否好奇容器之间是怎么通信的呢?今天我们就一起来认识一下docker的网络吧~Docker的网络模块是可插拔式的,默认有五种网络模式可以选择。通过docker network ls这个命令来查看本机中所有的网络模式。[root@VM_0_14_centos ~]# docker network lsNETWORK ID NAME DRIVER SCOPEc79756cf9cde br

2020-08-07 17:14:30 890

转载 Linux 内存映射以及内存是如何工作的

同CPU管理一样,内存管理也是操作系统最核心的功能之一。内存主要用来存储系统和应用程序的指令、数据、缓存等。那么,Linux 到底是怎么管理内存的呢?今天,我就来带你一起来看看这个问题。内存映射说到内存,你能说出你现在用的这台计算机内存有多大吗?我估计你记得很清楚,因为这是我们购买时,首先考虑的一个重要参数,比方说,我的笔记本电脑内存就是8GB的。我们通常所说的内存容量,就像我刚刚提到的8GB,其实指的是物理内存。物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM).

2020-08-07 11:58:42 80

原创 Ansible 制定演员表inventory即hosts解析

记录目标主机∶ inventory在没有对Ansible做任何配置的时候,Ansible只能通过localhost来控制本机,我们都是让Ansible指挥本机去执行任务,这离我们批量控制远程主机的目标还有点远。Ansible肯定是支持指挥远程主机执行任务的,如何指定哪些远程主机执行任务呢?让Ansible发挥强大作用的第一步是配置inventory。inventory表示清单的意思,在计算机领域里往往表示的资源清单,在Ansible中它表示主机节点清单,也是资源的一种。通过配置inventory,就

2020-08-06 17:43:26 51

转载 LVS 小猪都能看懂的LVS负载均衡原理,你确定不看?

本文希望阐述清楚LVS的各种转发模式,以及他们的工作流程和优缺点,同时从网络包的流转原理上解释清楚优缺点的来由,并结合阿里云的slb来说明优缺点。如果对网络包是怎么流转的不太清楚,推荐先看这篇基础:程序员的网络知识 -- 一个网络包的旅程,对后面理解LVS的各个转发模式非常有帮助。几个术语和缩写cip:Client IP,客户端地址vip:Virtual IP,LVS实例IPrip:Real IP,后端RS地址RS: Real Server 后端真正提供服务的机器LB: Load.

2020-08-05 18:06:17 71

原创 Docker 入门docker compose请看这篇文章

简介docker容器编排工具,实现对docker多容器的控制 重要概念 服务 ( service ):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例 项目 ( project ):由一组关联的应用容器组成的一个完整业务单元,在 dockercompose.yml 文件中定义 使用步骤 Dockerfile 定义应用的运行环境 docker-compose.yml 定义组成应用的各服务 docker-compose up 启动整个应用 一个简单的例子

2020-08-05 17:21:34 75

原创 LVS 负载均衡之DR模式 原理与实践

LVS DR原理:用户请求LVSVIP到达director(LB均衡器),director将请求的报文的目标MAC地址改成后端的realserver MAC地址,目标IP为VIP(不变),源IP为用户IP地址(保持不变),然后Director将报文发送到realserver,realserver检测到目标为自己本地VIP,如果在同一个网段,然后将请求直接返给用户。如果用户跟realserver不在一个网段,则通过网关返回用户,如图23-6所示:DR模式 改的是MAC地址,目标IP的报文没有修改,这.

2020-08-04 17:58:17 96

转载 Docker 10张图带你深入理解Docker容器和镜像

这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。题外话:就我个人而言,掌握一门技术并合理使用它的最好办法就是深入理解这项技术背后的工作原理。通常情况下,一项新技术的诞生常常会伴随着媒体的大肆宣传和炒作,这使得用户很难看清技术的本质。更确切地说,新技术总是会发明一些新的术语或者隐喻词来帮助宣传,这在初期是非常有帮助的,但是这给技术的原理蒙上了一层砂纸,不利于用户在后期掌握技术的真谛。Git就是

2020-08-03 17:45:16 61

原创 Linux 挂载之磁盘I/O优化 Access Time

前言 默认情况下,Linux ext2/ext3/ext4 文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间。Linux下的三个时间:1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。3. Change Time:简写为ctime,表示文件的状...

2020-08-03 17:30:39 61

原创 LVS 负载均衡之NAT模式 原理与实践

LVS负载均衡工作原理实现LVS负载均衡转发方式有三种,分别为NAT、DR、TUN模式,LVS均衡算法包括:RR(round-robin)、LC(least_connection)、W(weight)RR、WLC模式等(RR为轮询模式,LC为最少连接模式)。LVS负载均衡NAT转发方式原理:用户请求LVS VIP到达director(LVS服务器:LB),director(LVS服务器)将请求的报文(因为用户的请求有一个请求报文,也就是请求包里面,请求包里面有一个目标IP地址)的目标IP地.

2020-08-03 15:40:35 101

空空如也

Waterloo Bridge.的留言板

发表于 2020-01-02 最后回复 2020-01-02

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