Kubernetes 系列1 介绍

一.介绍

  kubernetes 简称k8s,是一个全新基于容器技术的分布式架构领先方案。目前kubernetes发布的最新版本是v1.18.2版本 。谷歌从2015年开始发布1.0。是“一切以服务(Service)为中心,一切围绕服务运转”作为指导思想,k8s是基于容器的分布式架构方案,区别于传统的分布式架构方案。虽然2015年k8s才发布,但在谷歌内部已使用了十多年。使用k8s提供的解决方案,不仅节省了30%的开发成本,还可以将精力更加集中于业务本身,由于k8s提供了强大的自动化机制,所以系统后期的运维难度和运维成本大幅度降低。

  有了k8s不必费心微服务的:负载均衡,部署实施问题,服务治理,服务监控,故障处理等功能。

  k8s是一个开放的开发平台,不论用java,GO,C++等编写的服务,都可以映射为k8s的Service,并通过标准的Tcp通信进行交互,由于k8s对现有编程语言,编程框架,中间件没有任何侵入性,因此现有的系统也很容易改造升级并迁移到K8s平台上

  在k8s中,Service(服务)是分布式集群架构的核心,一个Service对象拥有如下关键特征:

  1)拥有一个唯一指定的名字  如: mysql-server

  2)  拥有一个虚拟IP( cluster ip, service ip 或Vip)和端口号

  3)   能够提供某种远程服务能力

  4)被映射到了提供这种服务能力的一组容器应用上

  Service的服务进程目前都是基于Socket通信方式对外提供服务,比如 redis, mysql, web service, 每个服务进程都有一个独立的endpoint(ip+port)访问点。客户端能够通过endpoint访问到K8S对应的Service服务。

  容器提供了强大的隔离功能,所有k8s设计了Pod对象,将每个Service包装到相应的Pod中, 使其成为pod中运行的一个容器(container), 为了建立Service和Pod间的关联关系,k8s首先给每个Pod贴上一个标签(Label),给运行mysql的Pod贴上name=mysql标签,然后给相应的Service定义标签选择器(Lable Selector) 如mysql Service的标签选择器为name=mysql,这样就关联了Service和Pod。

  Pod是运行在节点(Node)环境中,节点可以是物理机,私有云,公有云的一个虚拟机上,通常一个节点上运行几百个Pod

  在集群管理方面,k8s将集群中的机器划分为一个Master节点和一群工作节点node, 在master节点上运行着集群管理相关的一组进程:

    kube-apiserver

    kube-controller-manager

    kube-scheduler

    这些进程实现了整个集群的资源管理、pod调度、弹性伸缩、安全控制,系统监控,和纠错等管理功能,并且都是全自动完成的。 node上k8s管理的最小单元是Pod, node是运行真正的应用程序,Node上运行着服务进程:

    kubelet,

    kube-proxy

    这些服务进程负责pod的创建,启动,监控,重启,销毁,以及实现软件模式的负载均衡器。

 

二. 主要解决的问题

    解决传统IT系统的服务扩容和服务升级。

    全面拥抱微服务架构。

    基于docker的大规模容器化分布式系统解决方案

       采用k8s解决方案,只需一个精悍的小团队就能轻松应对,在这个团队里,一名架构师负责系统中服务组件的架构设计,几名开发工程师负责业务代码的开发,一名系统兼运维工作师负责k8s的部署和维护。

    

   

 参考文献:

    kubernetes权威指南

posted on 2022-12-27 10:34  花阴偷移  阅读(8)  评论(0编辑  收藏  举报

导航