kubernetes架构之二

简介: 一、概述  IaaS:即基础设施即服务,通过虚拟化和分布式存储等技术,实现对包括服务器、存储设备、网络设备等各种物理资源的抽象;从而形成了一个可扩展、可按需分配的虚拟资源池。最具代表性的IaaS产品有Amazon AWS,提供虚拟机EC2和云存储S3等服务;  PaaS:平台即服务,为开发者提供了应用的开发环境和运行环境,将开发者从繁琐的IT环境管理中解放出来;PaaS主要面向的是软件专业人员;  SaaS:软件即服务,面向使用软件的终端用户。

一、概述

  IaaS:即基础设施即服务,通过虚拟化和分布式存储等技术,实现对包括服务器、存储设备、网络设备等各种物理资源的抽象;从而形成了一个可扩展、可按需分配的虚拟资源池。最具代表性的IaaS产品有Amazon AWS,提供虚拟机EC2和云存储S3等服务;

  PaaS:平台即服务,为开发者提供了应用的开发环境和运行环境,将开发者从繁琐的IT环境管理中解放出来;PaaS主要面向的是软件专业人员;

  SaaS:软件即服务,面向使用软件的终端用户。比如:在线使用的邮箱系统

 二、架构和组件

  kubernetes API Server: 作为k8s系统的入口,其封装了核心对象的增删改查的操作,以REST API接口方式提供给外部客户和内部组件调用,它维护的REST对象将持久化到Etcd中。

  kubernetes Scheduler:负责集群的资源调度,为新建的Pod分配host。这部分工作独立成一个组件,意味着可以很方便地替换成其他的调度器;

  kubernetes Controller Manager:负责执行各种控制器,目前已经实现很多控制器来保证kubernetes的正常运行,主要的控制器如下:

控制器   说明 
Replication Controller                                  管理维护Replication Controller,关联Replication Controller 和Pod,保证Replication Controller定义的副本数量与实际运行Pod的数量是一致的                                                                  
Node Controller   管理维护Node,定期检查Node的健康状态,标识出失效的Node
Namespace Controller   管理维护Namespace,定期清理无效的Namespace,包括Namespace下的API对象,像Pod、Service和Secret等
Endpoint Controller   管理维护Endpoints,关联Service和Pod,创建Endpoints作为Service的后端,当Pod发生变化时,实时刷新Endpoints
Service Account Controller   管理维护Service Account,为每个Namespace创建默认的Service Account,同时为Service Account创建Service Account Secret
Persistent Volume Controller  管理维护Persistent Volume和Persistent Volume Claim,为新的Persistent Volume Claim分配Persistent Volume进行绑定,为释放的Persistent Volume执行清理回收
Daemon Set Controller    管理维护Deamon Set,负责创建Daemon Pod,保证指定的Node上正常运行Daemon Pod
Deployment Controller      管理维护Deployment,关联Deployment和Replication Controller,保证运行指定数目的Pod,当Deployment更新时,控制实现Replication Controller和Pod的更新

Job Controller  

 管理维护Job,为Job创建一次性任务Pod,保证完成Job指定完成的任务数目

Pod Autoscaler Controller

实现Pod的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行Pod的伸缩动作

  kubernetes Node是运行节点,用于运行管理业务的容器,包含以下组件:

  Kubelet: 负责管控容器,kubelet会从kuberenetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server

  Kubernetes Proxy:负责为Pod创建代理服务,Kuberenetes Proxy会从Kubernetes API Server获取所有的Service,并根据Service 信息创建代理服务,实现Service 到Pod的请求路由和转发,从而实现kubernetes曾经的虚拟转发网络;

  Docker: k8s Node是容器运行节点,需要运行Docker服务,目前k8s也支持Rocket(一款CoreOS开发的类Docker的开源容器引擎);

三、k8s网络:

  k8s的网络模型要求每一个Pod都拥有一个扁平化共享网络命名空间的IP,成为PodIP, Pod能够直接通过PodIP跨网络与其他物理机和Pod进行通信。要实现k8s网络模型,需要在k8s集群中创建一个覆盖网络(Overlay Network),联通各个节点,目前可通过第三方网络插件来创建覆盖网络,例如:Flannel和Open vSwitch。

  Flannel为不同Node的Docker网桥配置不同的IP网段以保证Docker容器的IP在集群内唯一,所以Flannel会重新配置Docker网桥,需要先删除原先创建的Docker网桥;

四、k8s深入:

  k8s是容器集群管理系统,为容器化的应用提供资源调度、部署运行、容灾容错和服务发现等功能。其中涉及Pod、Replication Controller和Service这k8s基本要素的功能展示;

  

 

 

 

 

 

 

 

  

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
21天前
|
存储 Kubernetes 调度
|
15天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
13天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
13天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
15天前
|
Kubernetes API 调度
【赵渝强老师】Kubernetes的体系架构
本文介绍了Kubernetes的体系架构及其核心组件。Kubernetes采用主从分布式架构,由master主节点和多个node工作节点组成。master节点负责集群管理和调度,运行API Server、scheduler、controller-manager等服务组件;node节点运行kubelet、kube-proxy和Docker容器守护进程,负责实际业务应用的运行。文章还简要介绍了Kubernetes的附加组件及其作用。
|
13天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
14天前
|
存储 监控 Docker
探索微服务架构下的容器化部署
本文旨在深入探讨微服务架构下容器化部署的关键技术与实践,通过分析Docker容器技术如何促进微服务的灵活部署和高效管理,揭示其在现代软件开发中的重要性。文章将重点讨论容器化技术的优势、面临的挑战以及最佳实践策略,为读者提供一套完整的理论与实践相结合的指导方案。
|
17天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
21天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
55 1
|
25天前
|
Kubernetes 关系型数据库 MySQL
Kubernetes入门:搭建高可用微服务架构
【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
71 3
下一篇
无影云桌面