文章目录
前言
一、Kubernetes是什么
-
它是一个全新的基于容器技术的分布式架构领先方案
-
是一个大规模集群管理系统,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化
-
在Kubernetes中,Service(服务)是分布式集群架构的核心
二、为什么要用Kubernetes
- 可以“轻装上阵”地开发复杂系统了
- 可以全面拥抱微服务架构
- 可以随时随地整体搬迁到公有云上
- k8s系统架构具有超强的横向扩容能力
三、Kubernetes集群管理
Kubernetes将集群中的机器划分为一个Master和一些Node
在Master上运行着集群管理相关的一组进程kubeapiserver、kube-controller-manager和kubescheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且都是自动完成的。
Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。在Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁,以及实现软件模式的负载均衡器。
四、Kubernetes的资源对象
0. 缩写
1. Master
Kubernetes里的Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它负责具体的执行过程,
我们后面执行的所有命令基本都是在Master上运行的。Master通常会占据一个独立的服务器(高可用部署建议用3台服务器),主要原因是它太重要了,是整个集群的“首脑”,如果它宕机或者不可用,那么对集群内容器应用的管理都将失效。
在Master上运行着以下关键进程
-
Kubernetes API Server(kube-apiserver):提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。
-
Kubernetes Controller Manager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心,可以将其理解为资源对象的“大总管”。
-
Kubernetes Scheduler(kube-scheduler):负责资源调度(Pod调度)的进程,相当于公交公司的“调度室”。
-
另外,在Master上通常还需要部署etcd服务,因为Kubernetes里的所有资源对象的数据都被保存在etcd中
2. Node
除了Master,Kubernetes集群中的其他机器被称为Node
与Master一样,Node可以是一台物理主机,也可以是一台虚拟机。Node是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上。
在每个Node上都运行着以下关键进程:
-
kubelet:负责Pod对应的容器的创建、启停等任务,同时与Master密切协作,实现集群管理的基本功能。
-
kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件。
-
Docker Engine(docker):Docker引擎,负责本机的容器创建和管理工作
3. Pod
4. Label
5. Replication Controller
6. Deployment
7. Horizontal Pod Autoscaler
8. StatefulSet
9. Service
10. Job
11. Volume
12. Persistent Volume
13. Namespace
14. Annotation
15. ConfigMap
完结撒花~