参考链接
Kubernetes
K8s 原理:Kubernetes 架构解析
概念
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
- K8s本质上就是一组服务器集群,可以在集群的各个节点上运行特定的docker容器。|
- Kubernetes是Google在2014年开源的-一个容器集群管理系统,
- Kubernetes简称K8S.
- K8S用于容器化应用程序的部署,扩展和管理。
K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等一系
列功能。 - Kubernetes目标是让部署容器化应用简单高效。
k8s的功能
自我修复
弹性伸缩:实时根据服务器的并发情况,增加或缩减容器数量
自动部署:
回滚:
服务发现和负载均衡
机密和配置共享管理
k8s集群分为两类节点
master node:主
worker node:工作
Master组件
- kube-apiserver
Kubernetes API,集群的统一入口, 各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。 - kube-controller-manager
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。 - kube- scheduler
根据调度算法为新创建的Pod选择一个Node节点, 可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。 - etcd
分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息。
Pod
- 最小部署单元
- 组容器的集合
- 一个Pod中的容器共享网络命名空间
- Pod是短暂的
Controllers
- ReplicaSet:确保预期的Pod副本数量
- Deployment:无状态应用部署
- StatefulSet :有状态应用 部署
- DaemonSet:确保所有Node运行同一个Pod
- Job: 一次性任务
- Cronjob:定时任务
在Kubenetes中,所有的容器均在Pod中运行,一个Pod可以承载一个或者多个相关的容器