Toggle navigation
主页
English
K8S
Golang
Guitar
About Me
归档
标签
Welcome to Sanger's Blog!
kubernetes简述
K8S
2024-01-10 17:34:36
31
0
0
sanger
K8S
[TOC] # k8s是什么? Kubenetes是一个针对容器应用,进行自动部署,弹性伸缩和管理的开源系统。主要功能是生产环境中的容器编排。 K8S是Google公司推出的,它来源于由Google公司内部使用了15年的Borg系统,集结了Borg的精华。 # K8s架构的组成是什么? 和大多数分布式系统一样,K8S集群至少需要一个主节点(Master)和多个计算节点(Node)。 主节点主要用于暴露API,调度部署和节点的管理; 计算节点运行一个容器运行环境,一般是docker环境(类似docker环境的还有rkt,[k8s 1.24及以上版本已经不支持docker了](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#no-really-you-must-read-this-before-you-upgrade-4)),同时运行一个K8s的代理(kubelet)用于和master通信。 计算节点也会运行一些额外的组件,像记录日志,节点监控,服务发现等等。计算节点是k8s集群中真正工作的节点。 ## K8S架构总览 - Master - kube-apiserver - kube-controller-manager - kube-scheduler - etcd - kubelet - addons - Node - kubelet - kube-proxy - continard\podman\docker\rkt - addons - Client - kubectl ## Master节点 默认不参加实际工作 ### kube-apiserver 在K8s架构中承担的是“桥梁”的角色,作为资源操作的唯一入口,它提供了认证、授权、访问控制、API注册和发现等机制。客户端与k8s群集及K8s内部组件的通信,都要通过apiserver这个组件 ### kube-controller-manager 负责维护群集的状态,比如故障检测、自动扩展、滚动更新等 ### kube-scheduler 负责资源的调度,按照预定的调度策略将pod调度到相应的node节点上 ### etcd 担任数据中心的角色,保存了整个群集的状态 ### kubelet master节点也需要 ## Node节点 实际工作的节点 ### Kubelet 负责维护容器的生命周期,同时也负责Volume和网络的管理,一般运行在所有的节点,是Node节点的代理,当Scheduler确定某个node上运行pod之后,会将pod的具体信息(image,volume)等发送给该节点的kubelet,kubelet根据这些信息创建和运行容器,并向master返回运行状态。(自动修复功能:如果某个节点中的容器宕机,它会尝试重启该容器,若重启无效,则会将该pod杀死,然后重新创建一个容器) ### Kube-proxy Service在逻辑上代表了后端的多个pod。 负责为Service提供cluster内部的服务发现和负载均衡(外界通过Service访问pod提供的服务时,Service接收到的请求后就是通过kube-proxy来转发到pod上的) ### CRI container runtime(容器运行时),是负责管理运行容器的软件,比如containerd,podman,docker,rkt等 ## client ### Kubectl 客户端命令行工具,作为整个K8s集群的操作入口 # k8s各类资源简述 ## Label 可以附加在各种资源对象上的一系列Key/Value键值对。为指定的资源对象绑定一个或多个不同的Label,可以实现多维度的资源分组管理。 ## Namespaces 集群内部的逻辑隔离,用于划分、管理资源对象。 ## Pod 是k8s集群里面最小的单位。每个pod里边可以运行一个或多个container(容器),如果一个pod中有两个container,那么container的USR(用户)、MNT(挂载点)、PID(进程号)是相互隔离的,UTS(主机名和域名)、IPC(消息队列)、NET(网络栈)是相互共享的。 我比较喜欢把pod来当做豌豆夹,而豌豆就是pod中的container。 ## Service 用于为一组Pod提供一个统一的、稳定的访问地址。 ## Deployment 无状态工作负载。Pod上的一个抽象,可以定义一组Pod的副本数、版本等。 ### ReplicaSet 副本集 ## DaemondSet 守护进程工作负载。将在每个node上都创建一个pod ## StatefulSet 有状态工作负载。和Deployment类似,用于管理一组Pod,不同的是StatefulSet可以为这些Pod提供持久化存储和持久标识符。 ## ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。 ## Ingress ## Volume Pod中能够被多个容器访问的文件目录。一个数据卷可以挂载在Pod中的一个或多个容器的指定路径下。 ## PersistentVolume PV,存储卷。集群中由管理员配置的存储资源。 ## PersistentVolumeClaim PVC,存储声明。用于表达用户对存储资源的请求。 ## HPA ## Secret ## Rolebindings ### # 参考 [官方解释](https://kubernetes.io/zh-cn/docs/concepts/) [阿里云ACK与原生Kubernetes名词对照](https://help.aliyun.com/document_detail/113088.html?spm=5176.eciconsole.help.3.2f1e4a9cYhNmbJ#concept-ib1-kqf-hhb)
上一篇:
Ingress
下一篇:
ACK专有集群手动签发替换Apiserver证书指导
0
赞
31 人读过
新浪微博
微信
更多分享
腾讯微博
QQ空间
人人网
文档导航