1、Pod相关概念

  • 在kubernetes中不能直接运行容器。在Kubernetes群集中,只能运行pods。Pods在kubernetes中是部署的原子单位。一个Pod是一个或者多个共存的容器,它们共享着相同的内核命名空间,比如网络命名空间。

  • 当创建一个新的pod时,kubernetes首先创建所谓的pause container,该容器只负责创建和管理命名空间,而命名空间就是给pod中的所有容器共享使用的。 除此之外,它没有其它用处。 Pause容器通过veth0连接着bridge docker0。其它容器使用Docker engine的功能来让其它容器使用已经存在的网络命名空间。

    Read more »

1、架构介绍

  • kubernetes是Google开源的容器集群管理系统,是大规模容器应用编排系统,是在众多容器之上的又一抽象层。

  • 它支持自动化部署,大规模可伸缩,应用容器化管理。

  • 在kubernetes中部署应用是一件容易的事,因其有着弹性伸缩,横向扩展的优势并同时提供负载均衡能力以及良好的自愈性(自动部署,自动重启,自动复制,自动扩展等)。

  • 整体架构如下图:

    Read more »

1、集群选举机制

第一次启动

  • ①服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3票),选举无法完成,服务器1状态保持为LOOKING。

Read more »

1、概述

  • Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。

  • 工作机制:

    • Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应
Read more »

1、分库分表概述

什么是分库分表?

  • 分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。

    Read more »

1、概述

  • 如果在一个分布式系统中,我们从数据库中读取一个数据,然后修改保存,这种情况很容易遇到并发问题。因为读取和更新保存不是一个原子操作,在并发时就会导致数据的不正确。这种场景其实并不少见,比如电商秒杀活动,库存数量的更新就会遇到。如果是单机应用,直接使用本地锁就可以避免。如果是分布式应用,本地锁派不上用场,这时就需要引入分布式锁来解决。 由此可见分布式锁的目的其实很简单,就是为了保证多台服务器在执行某一段代码时保证只有一台服务器执行
    Read more »

概述

  • 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。

  • 日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。

  • /var/log/目录就是系统日志文件的保存位置:

    Read more »

1、进程管理

概述

  • 在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。

  • 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

  • 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

    Read more »

原理

  • Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

  • Linux采用了一种叫”载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

    Read more »

1、组管理

组基本介绍

  • 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

文件/目录所有者

  • 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

查看文件的所有者

1
ls -ahl
Read more »