一、Kubernetes是什么?
Kubernetes是一个全新的基于容器技术的分布式架构领先方案,是容器云的优秀平台选型方案,已成为新一代的基于容器技术的PaaS平台的重要底层框架,也是云原生技术生态圈的核心,服务网络(Service Mesh)、 无服务器架构(Serverless) 等新一代分布式架构框架及技术纷纷基于Kubernetes实现,这些都奠定了Kubernetes在基础框架领域的王者地位。
使用Kubernetes提供的方案,不仅节省了30%的开发成本,还可以将精力更加集中于业务本身,而且由于Kubernetes提供了强大的自动化机制,所以系统后期的运维难度和运维成本大幅度降低。
Kubernetes具有完备的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建的智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制,以及多粒度的资源配额管理能力。同时,Kubernetes提供了完善的管理工具,这些工具涵盖了包括开发、部署测试、运维监控在内的各个环节。
二、Kubernetes基本知识
1.核心:Service
在Kubernetes中,Service是分布式集群架构的核心。一个Service对象拥有如何关键特征。
(1)拥有唯一指定的名称(比如mysql-server)
(2)拥有一个虚拟IP(ClusterIP地址)和端口号
(3)能够提供某种远程服务能力。
(4)能够将客户端对服务的访问请求转发到一组容器应用上。
2.Pod的概念
Pod运行在一个被称为节点(Node)的环境中,这个节点既可以是物理机,也可以是私有云或者公有云中的一个虚拟机,在一个节点能够运行多个Pod;其次,在每个Pod中都运行着一个特殊的被称为Pause的容器,其他容器则为业务容器,这些业务容器共享 Pause 容器的网络栈和 Volume 挂载卷,因此它们之封的通信和数据交换更为高效,在设计时我们可以充分利用这一特性将一组密切相关的服务进程放入同一个 Pod 中;最后,需要注意的是,并不是每个 Pod 和它里面运行的容器都能被映射到一个 Service 上,只有提供服务(无论是对内还是对外)的那组 Pod 才会被映射为一个服务。
在集群管理方面,Kubernetes 将集群中的机器划分为 Master和一些Node。 在 Master 上运行着集群管理相关的些进程: kube-apiserver 、 kube-controller-manager 和 kube-scheduler,这些进程实现了整个集群的资源管理、 Pod 调度、弾性伸缩、安全控制、系统监控和纠错等。管理功能并且都是自动完成的。 Node 作为集群中的工作节点,其上运行着真正的应用程序。在 Node上, Kubernetes 管理的最小运行单元是 Pod。在 Node 上运行着 Kubernetes 的 kubelet、kube-proxy服务进程, 这些服务进程负责 Pod 的创建、启动、监控、重启、销毁,以及实现软件模式的负载均衡器。
三、为什么要用Kubernetes
使用 Kubernetes 的理由很多,最重要的理由是,IT 行业从来都是由新技术驱动的。 Kubernetes 是软件领域近几年来最具创新的容器技术,涵盖了架构、研发、部署、运维等全系列软件开发流程,不仅对互联网公司的产品产生了极大影响,也对传统行业的 IT 技术产生了越来越强的冲击。基于 Kubernetes 的新一代容器架构已成为互联网产品及大规模系统的必选方案。
使用 Kubernetes 会收获哪些好处呢?
(1)首先,可以“轻装上阵”地开发复杂系统。
(2)其次,可以全面拥抱以微服务架构为核心思想的新一代容器技术的领先架构,包括基础的微服务架构,以及增强的微服务架构(如服务网格、无服务器架构等)。
(3)再次,可以随时随地将系统整体“搬迁”到公有云上。
(4)最后,Kubernetes系统架构超强的横向扩容能力可以让我们的竞争力大大提升