k8s学习笔记二

在这里插入图片描述

基本概念

k8s集群主要包含三个平面:控制层面,计算层面和数据层面。

控制层面是整个集群的大脑,负责控制、调度集群资源,包括kube-apiserver、kube-controller-manager、kube-scheduler三个组件;
计算层面负责运行工作负载,是控制平面调度的对象,包括kubelet、kube-proxy组件;
数据层面用来存储整个集群持久化数据,比如我们提交的配置文件以及集群状态信息等,指etcd集群。

cluster:kubernetes集群本身;
namespace:k8s集群中的命名空间,用于隔离部署在集群中的应用,方便按团队和项目进行授权;
service :用于实现服务发现功能,便于部署到集群内的服务能够互相访问;
node:组成k8s集群的物理节点,包括控制节点和计算节点;
pod:k8s的最小调度单位,用于同步调度多个应用容器;
kubectl:通常通过kubectl这个命令行客户端来控制Kubernetes集群。

configmap:用来声明应用的配置文件,在容器启动前挂载到应用容器内供应用使用;
secert: 和configmap类似,是加密的,主要应对敏感配置文件需要加密的需求;
ReplicaSet:用于控制pod的副本数,动态扩容;
DeployMent:用于控制ReplicaSet,微应用提供滚动升级的能力;
ingress:用于对外暴露部署在k8s中的服务;
volume:k8s集群中的存储卷,跟docker的存储卷类似(Docker的存储卷作用范围是一个容器,而k8s的存储卷作用范围是一个颇多,每个pod中声明的存储卷由pod中所有容器共享);
Service Account: 服务账户为计算机进程和k8s集群中运行的pod账户提供标识;
ABAC:基于角色的访问控制,主要解决谁能访问哪些api的问题。

基础组件

Kubernetes-api-server: 对外暴露Kubernetes API,所有对集群的操作都是通过这组API完成,包括客户端下单应用编排命令给Kubernetes集群;kubelet上报集群资源使用情况;以及各个组件之间的交互都是通过这套API完成的。

Kubernetes-controller-manager:负责整个Kubernetes集群的管理工作,保证集群中各种资源处于期望状态。当监控到集群中某个资源状态与期望状态不符时,controller-manager会触发调度操作。

Kubernetes-scheduler:调度器负责Kubernetes集群的具体调度工作,接收来自controller-manager触发的调度请求,然后根据请求规格,调度约束,整体资源情况进行调度计算,最后将任务发送到目标节点有kubelet组件执行。

etcd:一个搞笑的kv存储系统,在k8s中用于存储持久化数据;

kubelet:是node节点上的核心组件,负责与docker daemont进行交互运行docker容器;配置网络和数据卷;监控并上传节点使用情况以供调度使用;

kube-proxy:主要负责service endpoint到pod实例的请求转发及负载均衡的规则管理。

参考博客:https://github.com/zhukunJ/Kubernetes/blob/master

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章