一、Kubernetes核心组件
- etcd:保存整个集群的状态。
- apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
- controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。
- scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上。
- kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理。
- Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)。
- kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡。
二、Kubernetes基本概念
- Cluster:集群,是指由Kubernetes使用一系列的物理机、虚拟机和其他基础资源来运行你的应用程序(下图)。
- Node:一个node就是运行着Kubernetes的物理机或虚拟机,并且pod可以在上面被调度。
- Pod:一个pod对应一个由相关容器和卷组成的容器组:(下图)
- Label:一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可以识别的属性。Label还可以被应用来组织和选择子网中的资源。
- selector:是一个通过匹配labels来定义资源之间关系的表达式,例如为一个负载均衡的service指定目标Pod。
- Replication
Controller:为了保证一定数量被指定的Pod的复制品在任何时候都能正常工作。它不仅允许复制的系统易于扩展,还会处理当pod在机器发生重启或故障的时候再创建一个。 - ReplicaSet:取代ReplicationCtronller,持集合式的selector
- Deployment:为Pod和ReplicaSet提供一个声明式定义(declarative)方法,用来代替以前的
- ReplictionController来方便管理应用。其应用场景:
(1)定义Deployment来创建Pod和ReplicaSet
(2)滚动升级和回滚应用
(3)扩容和缩容
(4)暂停和继续Deployment - Service:一个service定义了访问pod方式,就像单个固定的IP地址和与其相对应的DNS名之间的关系。(下图)
- Volume:一个Volume是一个目录,可能会被容器作为未见系统的一部分来访问。Kubernetes volume构建在Docker
Volumes之上,并且支持添加和配置volume目录或者其他存储设备。
三、kubectl命令
来源:CSDN
作者:❤pp
链接:https://blog.csdn.net/cursing/article/details/104745572