蓝盟IT外包,开发者如何理解kubernetes

发布者:上海IT外包来源:http://www.lanmon.net点击数:1130

蓝盟IT小贴士,来喽!
概要
使用在JAVA开发中使用Docker  run命令自制的Docker仓库可以轻松部署JAVA服务,但使用Docker部署应用程序存在一些问题。
由于创建的容器在单台计算机上运行,因此docker  run不是部署服务的可靠方法。 Docker引擎具有基本的管理功能,如容器崩溃或计算机重新启动时自动重新启动容器。 但是,我不能应对机器的崩溃。 无法保证服务的高可用性!
另一个问题是服务通常不是孤立存在的,而是相互依赖性,如数据库和消息队列。 通常,需要将服务及其依赖关系作为一个单元进行部署或取消部署。
开发过程中特别方便的方法是使用Docker  Compose。 Docker  Compose是一种工具,可以使用YAML文件声明性地定义一组容器,然后将这些容器作为组启动和停止。
但是,使用Docker  Compose也有明显的问题。 它仅限于一台机器。 要提供可靠的部署服务,必须使用Docker  (如Kubernetes  )创建框架。
Kubernetes的介绍
Kubernates是一个Docker组织框架,是位于Docker上方的软件层,它将一组计算机硬件资源转换为单个资源池以运行服务。 即使服务实例或计算机崩溃,也要努力维持每个服务所需的实例数并使其在线。 将容器的灵活性与Kubernetes的复杂性结合起来是部署服务的有力方法。
Kubernetes有三个主要功能。
资源管理:将一组计算机视为由CPU、内存和存储卷组成的资源池,将计算机群集视为一台计算机。
计划:选择运行容器的计算机。 默认情况下,时间表将考虑容器的资源要求和每个节点的可用资源。 也可以在同一节点上放置具有亲和性(affinity  )的容器,或者将特定的几个容器分布在不同的节点上(逆亲和性,anti-affinity  )。
服务管理:实现命名和版本化服务的概念。 这个概念可以直接映射到微服务架构中的特定服务。 组织框架,以确保所需数量的常规实例始终运行。 实现要求的负载平衡。 创建框架后,还可以执行服务的回滚,并回滚到旧版本。
Kubernetes在一系列计算机上运行。 Kubernetes集群中的计算机角色分为主节点和常规节点。 群集中只有少数主节点(也许只有一个)和许多常规节点。“主人”负责集群的管理。 Kubernetes的“常规节点”称为“工作节点”,运行一个或多个Pod。 Pod是Kubernetes的部署单元,由一组容器组成。
主节点运行多个组件,包括:
API服务器:用于部署和管理服务的REST  API。 例如,可以在kubectl命令行中使用。
Etcd  :包含集群数据键值的NoSQL数据库。
调度程序:选择要运行POD的节点。
控制器管理器:运行控制器,确认集群的状态与预期的状态一致。 例如,称为复制控制器的控制器通过启动和关闭实例来确保执行所需的服务实例。
普通节点运行多个组件,包括:
Kubelet  :创建和管理在节点上运行的Pod。
kube-proxy  :管理包括pod之间的负载平衡在内的网络。
Pods  :应用程序服务。
接下来,让我们看一下在Kubernetes中部署服务时需要掌握的重要的Kubernetes概念。 通过掌握这些概念,可以抓住Kubernetes的核心。
Kubernetes的重要概念
虽然Kubernetes很复杂,但是一旦掌握了“关键对象”的概念,就可以有效地使用Kubernetes。 Kubernetes定义了许多类型的对象,从开发人员的角度来看,最重要的对象包括:
Pod  :
Pod是Kubernetes的基本部署单元。 由包含一个或多个共享IP地址和卷的容器组成。 服务实例的pod通常由单个容器(如运行JVM的容器)组成。 但是,Pod可能包含一个或多个提供支持功能的“侧车”(sidecar  )容器。 例如,Nginx服务器有一个侧车容器,定期运行git  pull以下载最新版本的网站。 由于Pod的容器或其执行节点可能崩溃,因此Pod的生命周期很短。
部署:
部署: pod的声明规范。 Deployment是一种始终允许所需数量的Pod实例(服务实例)运行的控制器。 通过滚动升级和回滚支持版本控制。
服务:
提供给应用程序服务客户端的静态、稳定的网络地址。 是基础设施提供的服务发现的一种形式。 每个服务都有一个IP地址和一个可解析为该IP地址的DNS名称,负责跨一个或多个Pod平衡TCP和UDP通信。 IP地址和DNS名称只能在Kubernetes内部访问。默认情况下,服务使用群集IP模式。 要允许从外部访问此服务,需要两种类型的对象:节点端口和负载平衡器。
文/上海蓝盟   IT外包专家
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部