Kubernetes核心原理和搭建
1. 引言在过去 , 我们在进行程序部署的时候 , 是直接将环境和程序统一配置部署到主机上 , 但是这样做容易造成程序与程序之间的混淆 , 所以为了处理这种问题 , 我们可以搭建一台不可变的虚拟机镜像 , 将环境和程序配置部署到虚拟机镜像中 , 但是虚拟机镜像部署存在体量过于庞大并且不可移动的问题 , 所以容器技术应运而生 , 容器技术是基于操作系统级别的虚拟化技术 , 各个容器与宿主机是隔离的 , 各个容器之间也是是隔离的 , 它比虚拟机镜像更容易搭建 , 并且可以很方便在不同的主机上移动 。 但是随着分布式、集群等技术在实际应用中越来越多 , 在实际的生产环境中 , 我们可能会涉及到多个容器 , 而这些容器可能会跨越多个服务器主机进行部署 , 所以一个基于容器技术的分布式架构解决方案应用而生 , 它就是Kubernetes 。
2. Kubernetes的概念Kubernetes(k8s)是一个基于容器技术的的分布式架构解决方案 , 是Google开源的容器集群管理系统 , Google内部称为Borg,主要用于自动部署、扩展和管理容器化的应用程序 , 是以Docer为基础的分布式系统架构 。Kubernetes可以对分布式系统进行完美的支撑 , 它具备完善的集群控制能力 , 内建有智能的负载均衡器 , 拥有强大的故障发现和自我修复能力 。 同时还针对开发、部署测试、运维监控等提供了完善的管理工具 。
Kubernetes的核心思想是:一切以服务为中心 , 根据这一核心思想 , Kubernetes可以让在其上构建的系统独立运行在物理机、虚拟机群或者云上 , 所以 , Service(服务)是Kubernetes进行分布式集群构建的核心 , 必须拥有如下关键特征:
- 拥有一个唯一指定的名称 。
- 拥有一个虚拟IP和端口 。
- 能够提供某种远程服务能力 。
- 可以被映射到提供这种远程服务能力的一组容器应用上 。
- Kubernetes API Server:提供Http Rest接口的关键服务进程 , 是Kubernetes中增、删、改、查等操作的唯一入口 , 是集群控制的入口进程 。
- Kubernetes Controller Manager:Kubernetes中所有资源对象的自动化控制中心 。
- Kubernetes Scheduler:负责资源调度的进程 。
- kubelet:负责Pod对应容器的创建 , 启动、停止等任务 。
- kube-proxy:实现Kubernetes Service通讯与负载均衡机制的重要组件 。
- Docker Engine:Docker引擎 , 负责容器的创建和管理
3.4 Replication ControllerKurbernetes用来管理和保证集群中拥有的Pod 。
4. Kubernetes的架构Kubernetes的一切都是基于分布式的 , 下面这张图就是Kubernetes的架构图
文章插图
通过这张架构图我们发现Kurbernetes主要由以下几个核心组件组成:
- Etcd:保存整个集群的状态 。
- API Server:提供认证、授权、访问控制、API注册和发现等机制 , 是资源操作的唯一入口 。
- Kurbernetes Controller:负责维护集群的状态 。
- Scheduler:负责资源的调度 。
- kubelet:负责维护容器的生命周期 , 同时管理Volume和网络 。
- Container:负责镜像管理以及Pod和容器的真正运行 。
- kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡 。
- 虚拟机:这里的虚拟机我采用的是VMware,当然也可以采用VirtualBox , VMware下载地址如下:
- 王兴称美团优选目前重点是建设核心能力;苏宁旗下云网万店融资60亿元;阿里小米拟增资居然之家|8点1氪 | 美团
- 体验|vivo的OriginOS怎么样?体验报告来袭:虽惊艳但核心问题未解决
- 山东国晶|山东企业攻克OLED面板蒸镀源核心技术瓶颈
- 媒介|智媒介:软文发布文案的核心写作技巧介绍
- 随机森林(Random Forest)算法原理
- C/C++协程学习笔记丨C/C++实现协程及原理分析视频
- C++核心准则?:标准库array或vector好于C数组
- 「书讯」移动互联网对企业核心能力影响研究
- 领导者的核心是战略定力
- 自学电脑我来教你,必修掌握的ATX电源输出原理。