k8s的理解笔记

kubernetes概述:
Kubernetes是谷歌团队发起并维护的开源容器集群管理系统,支持docker等容器技术。
类似于docker swarm,可使用kubernetes搭建和管理一个私有容器云。
Kubernetes基于Go语言实现。
kubernetes集群采用主从架构。一个集群主要由管理组件(Master)和工作节点(Node)组件构成。
 
kubernetes提供生命周期管理:
容器组(Pod):由同一节点上若干容器组成,彼此共享网络命名空间和存储卷Volume
服务(SVC):若干Pod形成的对外提供某个功能的抽象,不随Pod改变而变化,带唯一固定访问路径(如:IP地址或者域名)
副本控制器(RC):负责启动Pod,并维护去健康运行的状态。
部署(Deployment):创建Pod,可根据参数自动创建管理Pod的副本控制器(RC)。
横向Pod扩展器:根据Pod的使用率自动调整一个部署里面Pod的个数。
 
集群组件:
Master组件:通过Node Controller来定期检查所管理的Node资源情况。
Node组件:实际工作的计算实例(虚拟机或物理机),需配置agent。
Node节点重要属性:地址信息、阶段状态、资源容量、节点信息。
 
资源抽象:
kubernetes每个资源都是一个REST对象,通过API进行操作,通过JSON/YAML格式的模板文件进行定义。在kubernetes代码包的example目录带有翔实的实例模板文件。
1、容器组
在kubernetes中,并不是直接操作容器,最小的管理单位是容器组(Pod)。Pod由一个或多个容器组成,kubernetes围绕容器组进行创建、调度、停止等生命周期管理。
2、复制控制器和部署
kubernetes通过复制控制器实现Pod发生失败后重新生成。
1.2.0版本始kubernetes引入部署机制支持更灵活Pod管理,用户无需直接跟复制控制器打交道。
3、横向Pod扩展器
在复制控制器和部署的基础上增加自动反馈机制,通过定期查询Pod资源利用率来调整Pod数目
如:通过Heapster组件检查目标部署内Pod的平均CPU使用情况,当CPU使用率高出现目标值,自动增加Pod数据,反之降低。内部机制通过scale接口操作资源。
4、服务
主要解决Pod地址可变的问题。Pod随时可能故障,它的地址不能保持固定。因此,用一个服务来代表提供某一类功能的一些Pod,并分配不随Pod位置变化而改变的虚拟访问地址(Cluster IP)。
 
在Master上运行的关键进程:
Kubernetes API Server(kube-apiserver):提供HTTP Rest接口的关键服务进程,是k8s所有资源增删改查等操作的唯一入口(集群控制的入口进程)。
kube-controller-manager:资源对象自动化控制中心。
kube-scheduler:资源调度(Pod调度)进程。
Master通常需要部署etcd服务,用户保存资源对象数据。
 
Node节点的关键进程:
kubelet:负载Pod对应容器的创建、启停等任务,同时与master协助,实现集群管理。
kube-proxy:实现kubernets Server的通信与负载均衡机制。
Dokcer Engine:Docker引擎,负载本机容器创建核管理工作。
(默认情况下,kubelet会向master注册自己)
 
Pod组成:
Pause:根容器,属于k8s平台一部分。
Pause代表整个容器组Pod的状态。
Pod中多个业务容器共享Pause根容器的IP,共享挂接Volume解决业务容器见文件共享问题
一个或者多个业务容器
 
核心概念拓扑图:

 

完整的Pod调度过程:
posted @   Robert680  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示