Linux:Kubernetes(k8s)——基础理论笔记(1)

我笔记来源的图片以及共享至GitHub,本章纯理论。这是k8s中部分的基础理论

👇

KALItarro/k8spdf: 这个里面只有一个pdf文件 (github.com)https://github.com/KALItarro/k8spdf👆


什么是kubernetes

kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,k8s的目标是让部署容器化的应用简单并且高效,k8s提供应用部署,规划,更新,维护的一种机制。就是用于管理容器化平台的一个应用


kubernetes为什么还叫k8s

kubernetes这个名字起源于希腊语,意为"舵手"或者"飞行员"。k8s这个缩写是以为开头字母 "k" 到最后一个字母 "s" 中间包含了8个字母,所以简称为k8s了


他的来自哪里

他是Google的一个开源项目,结合了社区中最优秀的想法和实践


为什么需要k8s

更加方便的对容器进行管理更加快捷


k8s的特点

自我修复,弹性伸缩,自动部署和回滚,服务发现和负载均衡,机密和配置管理,存储编排,批处理


api接口

在k8s中所有操作都是进入到api中,再由api接口进行分配


相关组件

(官方并没有明确的规定,这个是来自网络上以及大家日常进行的归类)
控制面板组件

节点组件

附加组件


控制面板组件(核心)(master)

操作客户端的两大途径:kuberctl , dashboard

api-server:接口服务,基于rest风格开发的k8s的接口服务
kubecontroller-manager:控制器管理器,管理各个类型的控制器针对k8s中的各种资源进行管理
cloud-controller-manager:云控制管理,第三方云平台提供的控制器api对接管理功能
kuber-scheduler:调度器,负责将pod 基于一定算法,将其调用到更合适的节点服务器上
etcd :理解为k8s的数据库,键值类型存储的分布式数据库提供了基于rast算法实现自主的集群高可用 (老版本:基于内存,新版:持久化储存)


节点组件(node)

kubelet:负责pod的生命周期,存储,网络
kube-proxy:网络代理,负责service的服务发现负载均衡(4层负载)
container-runtime:容器运行时环境:docker,containerd CRI-O
pod:pod里面至少有一个容器,可以有多个pod


附加组件

kube-dns:为整个集群提供dns服务
ingree controller :为服务提供外网入口
heapster:提供GUI
federation:提供跨可用区的集群
fiuentd-elasticsearch:提供集群日志采集,存储与查询


分层架构

|------|
| 生态系统 |
| 接口层 |
| 管理层 |
| 应用层 |
| 核心层 |


服务的分类

如何区分有状态和无状态,如再部署个同样的如再部署个同样的节点,同样访问会不会因为数据等本地原因引起无法访问,超时,数据丢失等

无状态应用

无状态应用的特点:不会对本地环境产生任何依赖,不会存储数据到本地磁盘,例如nginx代理 , apche等
优点:对客户端透明,无需依赖关系,可以高效的实现扩容迁移
缺点:不能存储数据,需要额外的数据服务支撑

有状态应用

有状态的特点:会对本地环境产生依赖,储存数据到本地磁盘,例如:mysql,redis,mongodb等
优点:可以独立存储数据,实现数据管理
缺点:集群环境下需要实现主从,数据同步,备份,水平扩容复杂

总之一句话

存储数据的是有状态

不存储数据的是无状态


资源和对象

k8s中所有内容都被抽象为"资源" ,如 pod service node 等都是资源,对象就是资源的实例,是持久化的实体,如某个具体的pod,某个具体的node ,k8s使用这些,实体去表示整个集群的状态


对象规约和状态

规约------规格,希望对象所具有的特征,通过spec ,他是必须的,当创建对象时,必须提供对象的规约
状态------表示对象的实际状态,该属性为k8s自己维护,k8s会通过一系列的控制器对对应对象进行管理,让对象尽可能的让实际与期望状态重合


资源分类

元空间,集群,命名空间 (三大类,但是不止这三个)
元空间:对于资源的元数据描述,每一个资源都可以使用元空间的数据
集群: 作用与集群之上,集群下的所有资源都可以共享使用
命名空间:作用于命名空间之上,通常只能在该命名空间范围内使用


什么是pod

pod是一个容器组,里面至少一个容器,pod的底层有一个pause容器,其他的容器都是通过这个底层容器之上创建
pod理解为容器组,最小的部署单元
一般情况下一个pod里面只包含一个应用程序容器
pod里面是容器,但是里面可以各种品牌的容器,但建议是一个pod里面放一个容器


副本

基于一个对象创建出来的对象就是副本,一个pod可以被复制多份,每一份都是副本


控制器

通常包含一个名为 "replicas" 的属性 ,repclica则指定了特定的pod的副本数量
控制器里定义了很多描述对象的参数,可以理解为pod之上的pod

相关推荐
A小辣椒1 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒5 小时前
TShark:基础知识
linux
AlfredZhao7 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言