Kubernetes 章节目录
Kubernetes使用与集群搭建
一、 Kubernetes介绍
1.1 容器编排之战
- 当前的应用趋势,Google开发,提供整套机制,解决应用部署的各种疑难问题。
- 目标:帮你实现应用的智能化部署,集群的容器化应用部署。(能够自动化扩容与缩容)
1.2 Kubernetes核心功能
1 在可用的机器上创建集群。
2 部署应用Pod(对docker 的封装)
1.2.1 核心对象资源
1 Pod
- 最小部署单元
- 一组容器的集合
- 一个Pod内是共享网络
- 生命周期是短暂,Pod 重启后是新的。
Pod 是核心,对docker 的封装。
Container -> Pod -> Deployment(多实例) -> Service (对外可见 NodePort) -> Ingress (类似Nginx 一个端口代理多个服务,负载均衡)
2 Controller
通过Controller创建Pod。
- 确保Pod 的副本数量,有状态的(依赖存储等,有条件使用), 无状态应用部署。
- 确保所有node 运行同一个Pod
3 Service
定义一组Pod 的访问规则。
1.2.3 整体架构
一个Master 节点, 多个Worker Node
Master Node
Master节点:也称为控制平⾯,是Kubernetes集群的⼤脑,其中包括如下组件
- apiserver:管理员操作整个Kubernetes集群的⼊口。 集群状态数据存储,来存储数据。 restful 方式,交给etcd存储。
- Etcd:kube-apiserver的后台数据存储。 Key-Value Store
- scheduler:集群的调度器。 有评分算法,将Pod分配到节点上。选择节点应用部署。
- controller-manager:控制管理器,保证Kubernetes集群中的资源按照要求运⾏。 多个实例部署,实例状态的管理,目前状态-> 期望状态。 一个资源对应一个控制器。控制资源。
Worker Node
Worker节点:负责Pod的运⾏.
- kubelet:负责与Master节点交互,进⽽执⾏具体的任务。Master 节点与Kublet 交互,Kublet 然后执行。
- kube-proxy:负责Kubernetes集群中的负载均衡。 为集群提供service功能。访问节点的Pod时,网络相关的功能。
- Container Runtime 容器运⾏时 :负责容器的操作,启动或者关闭等。