1. k8s概要

首先我要讲下k8s全称为kubernetes, 发音为[kubə’netis]。从音标可以看出重音在第三音节上,大家都别读错了。如果不认识音标就是百度上看下标准读音吧,我不在这里写中文了。

kubernetes最初源自于谷歌内部的borg项目,提供了面向应用的容器的集群和管理系统。k8s目标是消除编排虚拟机,网络和存储等基础设施的负担,并使应用程序运营商和开发人员将重点放在以容器为中心的原语上进行自动运营。k8s提供稳定、兼容的提供稳定的基础平台,用于构建定制化的workflows和更高级的自动化任务。并且具备完善的集群能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、和透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多颗粒的资源配置额管理能力。另外,k8s还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。kubernetes作为云原生应用的基石,相当于一个云操作系统,重要性由此可见。

2. kubernetes 架构图

 

 

这两幅图从不同角度讲k8s整体数据流走势,包括用户,master及node间,也包括master和node各组件在工作的过程中相互的交互过程。从用户交换到pod的全生命周期都有所体现。本部分从整体理解k8s大致情况,接下来的章节再详细的讲解k8s组件间通信与pod的全生命周期。在集群管理方面,Kubernets将集群中的机器划分为一个Master节点和一群工作节点(Node),其中,在Master节点上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性收缩、安全控制、系统监控和纠错等管理功能,并且都是全自动完成的。Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod创建、启动、监控、重启、销毁、以及实现软件模式的负载均衡

3. kuberbetes 核心组件

上文中提到k8s集群分为master和node两个部分。

master包含四个组件:

  • etcd:保存所有资源对象的数据

  • Kubernetes API Server (kube-apiserver):提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程

  • Kubernetes Controller Manager (kube-controller-manager):Kubernetes里所有的资源对象的自动化控制中心

  •  Kubernetes Scheduler (kube-scheduler):负责资源调度(Pod调度)的进程

node包含三个部分:

  • kubelet:负责Pod对应容器的创建、停止等任务,同时与Master节点密切协作,实现集群管理的基本功能

  • kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件

  • Docker Engine(Docker):Docker引擎,负责本机的容器创建和管理工作。

 

 

 

Logo

开源、云原生的融合云平台

更多推荐