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

相关推荐
超级大只老咪4 小时前
快速进制转换
笔记·算法
嵩山小老虎5 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模5 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324475 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.7 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
一只自律的鸡7 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)7 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen7 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
ling___xi7 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络
REDcker8 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络