摘要:
Docker若未安装Docker,可参考以下资料进行安装:https://books.studygolang.com/docker_practice/install/ Nginx1. 拉取镜像 docker pull nginx 2. 运行容器(1)创建项目程序根目录,编写一个简单测试的html文件 阅读全文
摘要:
本文将分五个部分来分析和总结Redis的内部机制,分别是:Redis数据库、Redis客户端、Redis事件、Redis服务器的初始化步骤、Redis命令的执行过程。 首先介绍一下Redis服务器的状态结构。Redis使用一个类型为“redisServer”的数据结构来保存整个Redis服务器的状态 阅读全文
摘要:
不同的文件系统存储文件的方式是不同的,所以其结构也是不同的。本文要介绍的是Linux最传统的文件系统EXT2的结构。 EXT2文件系统的主要组成结构有:inode table(inode表格)、data block(信息区块)、superblock(超级区块)、filesystem descript 阅读全文
摘要:
由于以前学习Linux的时候没有做比较全面的总结笔记,而且平时大部分工作都在windows上进行,所以关于Linux的一些知识点有所遗忘。近期难得空闲,翻阅书籍,学习《鸟哥的Linux私房菜》,重温Linux知识,借此机会想把Linux的相关知识做一个总结笔记。首先要总结的是Linux文件相关知识— 阅读全文
摘要:
一、为什么需要依赖注入 首先我们先不管什么是依赖注入,先来分析一下没有使用依赖注入会有什么样的结果。假设我们有一个gmail邮件服务类GMail,然后有另一个类User,User类需要使用发邮件的功能,于是我们在User类中定义一个成员变量$mailServer,并且在声明这个变量的时候就给它赋值一 阅读全文
摘要:
一、MySQL查询执行基础 1. MySQL查询执行流程原理 <1> 客户端发送一条查询给服务器。 <2> 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 <3> 服务器进行SQL解析、预处理,再由优化器生成对应的执行计划。 <4> MySQL根据优化器生成的 阅读全文
摘要:
一、索引基础 1. B-Tree索引 <1> 所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。 <2> 顺序组织存储,很适合查找范围数据,效率会非常高。 <3> 可以有效使用B-Tree索引的查询:全值匹配、匹配最左前缀、匹配列前缀、匹配范围值、精确匹配某一列并范围匹配另一列、只访问索引的 阅读全文
摘要:
为了避免集群中的 Pod 负载加大时节点资源不足,导致某些用户进程被“杀掉”,Kubernetes 需要有一套完备的资源配额限制及对应的 Pod 服务等级机制,解决思路如下: (1)可以全面限制一个应用及其中的 Pod 所能占用的资源配额。具体包括三种方式: <1>定义每个 Pod 上资源配额相关的 阅读全文
摘要:
一、概念解析 1. PV 与 PVC 为了能够屏蔽底层存储实现的细节,让用户方便使用及管理员方便管理, Kubemetes 从 1.0 版本开始引入了 Persistent Volume(PV)与 Persistent Volume Claim(PVC)资源对象来实 现存储管理子系统。 PV 是对存 阅读全文
摘要:
容器内部存储的生命周期是短暂的,会随着容器环境的销毁而销毁,具有不稳定性。如果多个容器希望共享同一份存储,则仅仅依赖容器本身是很难实现的。Kubernetes 系统中,将对容器应用所需的存储资源抽象为存储卷(Volume)概念来解决这些问题。 Volume 是与 Pod 绑定的(独立于容器)与 Po 阅读全文
摘要:
Kubernetes 的网络依赖于 Docker,Docker 的网络又离不开 Linux 操作系统内核特性的支持,所以在学习 Kubernetes 网络原理之前,有必要先深入了解 Docker 相关的网络基础知识,以及 Docker 的网络实现原理,详见《Docker的Linux网络基础》与《Do 阅读全文
摘要:
本文主要讲解 Docker 的网络原理。在此之前,最好对网络命名空间、Veth 设备对、网桥、路由、netfilter 与 iptables 等Linux基础网络知识有所了解,详见《Docker的Linux网络基础》。 一、Docker 的网络原理 1. Docker 的网络模式 标准的 Docke 阅读全文
摘要:
Docker 技术依赖于近年来 Linux 内核虚拟化技术的发展,所以 Docker 对 Linux 内核有很强的依赖。本文将 Docker 使用到的与 Linux 网络有关的主要技术进行简单介绍。 一、网络命名空间 为了支持网络协议栈的多个实例, Linux 在网络栈中引入了网络命名空间,这些独立 阅读全文
摘要:
一、netfilter 与 iptables 简介 1. netfilter 是什么 Netfilter 自 1998 年开发,2000 年合并到 Linux Kernel v2.4 版本,是 Linux 内核提供的一个流量处理框架,用于实现对 IP 数据包的控制和过滤等功能。即:netfilter 阅读全文
摘要:
一、Service 的概念与定义 1. Service 的概念 Service 是 Kubernetes 实现微服务架构的核心概念,主要用于提供网络服务。 通过 Service 的定义,可以对客户端应用屏蔽后端 Pod 实例数量及 Pod IP 地址的变化,通过负载均衡策略实现请求到后端 Pod 实 阅读全文
摘要:
一、NodeSelector:定向调度 1. 基本原理 在 Kubernetes 上部署应用时,有时候可能需要限制 Pod 的调度范围,将 Pod 调度到指定的一些 Node 上。此时,可以为需要调度的这些 Node 打上标签,同时设置 Pod 的 nodeSelector 属性,使二者相匹配来达到 阅读全文
摘要:
Pod 工作负载,亦称 Pod 控制器。在 Kubernetes 平台上,我们很少会直接创建一个 Pod,因为直接管理单个 Pod 的工作量将会非常繁琐。我们可以使用 Kubernetes API 创建工作负载对象, 这些对象所表达的是比 Pod 更高级别的抽象概念,Kubernetes 控制平面根 阅读全文