一、K8S功能介绍
1.自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器
2.弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整
3.服务发现:服务可以通过自动发现的形式找到它所依赖的服务
4.负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡
5.版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本
二、master node(控制节点)
1.API server
资源操作的唯一入口,接受用户输入的命令,提供认证,授权、API注册和发现等机制
2.scheduler(调度器)
负责集群资源的调度,按照预定的调度策略将pod调度到相应的node节点上
3.controller-manager
负责维护集群的状态,比程序部署安排,故障检测,自动扩展,滚动更新等
4.Etcd
负责存储集群中各种资源对象的信息
二、worker node(工作节点)
1.kubelet
作用:管理本机的容器
2.kube-proxy
作用:负责提供集群内部的服务发现和负载均衡
3.docker
作用:负责节点上容器的各种操作
三、核心概念
1.pod
1.Pod 是 k8s 系统中可以创建和管理的最小单元.
2.Pod 是由一个或多个容器(container) 组成
3.k8s 不会直接处理容器,而是 Pod
4.pod中的容器共享网络命名空间
2.控制器
控制器 | 作用 |
---|---|
ReplicaSet | 确保预期的Pod 副本数量 |
Deployment | 无状态应用部署 |
StatefulSet | 有状态应用部署 |
DaemonSet | 确保所有Node 运行同一个Pod |
Job | 一次性任务 |
cronjob | 定时任务 |
3.service 服务
将一组pod关联起来,提供一个统一的入口,即使pod地址发生改变,这个统一入口也不会发生改变,可以保证用户访问不受影响
4.label 标签
一组pod是一个统一的标签
service是通过标签和一组pod进行关联的
5.namespace 名称空间
为不同的业务提供不同的名称空间。进行隔离