k8s-架构中各个组件介绍

简介: K8S

参考链接:https://github.com/opsnull/follow-me-install-kubernetes-cluster
1、基本概念和组件

基础架构
Kubernetes 是一个跨主机集群的 开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作 , 提供以容器为中心的基础架构。

使用 Kubernetes, 您可以快速高效地响应客户需求:

快速、可预测地部署您的应用程序
拥有即时扩展应用程序的能力
不影响现有业务的情况下,无缝地发布新功能
优化硬件资源,降低成本
我们的目标是构建一个软件和工具的生态系统,以减轻您在公共云或私有云运行应用程序的负担。

Kubernetes 具有如下特点:

便携性: 无论公有云、私有云、混合云还是多云架构都全面支持
可扩展: 它是模块化、可插拔、可挂载、可组合的,支持各种形式的扩展
自修复: 它可以自保持应用状态、可自重启、自复制、自缩放的,通过声明式语法提供了强大的自修复能力
集群有Master和Node节点,架构如下:
image.png
其中:

etcd 保存了整个集群的状态,就是一个数据库,只有API Server能与其通信;
apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;
controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;
kubelet 负责维护容器的生命周期,同时也负责 Volume(CSI)和网络(CNI)的管理;
Container runtime 负责镜像管理以及 Pod 和容器的真正运行(CRI);
kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡;
scheduler和controller-manager都是通过apiserver从etcd中获取各种资源的状态,进行相应的调度和控制操作。

除了上面的这些组件,还有一些第三方的组件:

kube-dns 负责为整个集群提供 DNS 服务
Ingress Controller 为服务提供外网入口
Heapster 提供资源监控
Dashboard 提供 GUI
组件之间的关系:
从上面图可以看到所有组件均是通过API Server进行通信,所以API Server就是一个中枢神经,在生产中我们会把master部署为多节点,做高可用。
etcd主要是存储集群里的信息,比如集群状态,集群的各Node信息等,只有API能与其通信,所以我们也会把etcd做高可用,etcd是一个单独的组件,一个应用软件,做高可用建议是奇数节点,比如3,5等,节点不应过多,因为节点过多,节点之间的数据同步是会有一定的开销,影响集群的性能。
Schduler负责整个集群的调度,它通过API Server来检测Node上Pod的状态,然后会根据定义的策略来调度pod并绑定Node。
Controller manager负责pod的控制,常见的比如定义了一个Pod为replicaSet,然后因为某些原因当前pod挂掉了,这时候Controller manager就会为你在Node上重启该Pod。
kubelet是Node上的组件,它会检测Node上的Pod,并将其状态更新到API Server。
kube-proxy主要是负责代理转发,主要控制service,并将sevice状态更新到API Server。
kubectl是集群的管理组件,主要也是调用API Server,然后进行整个集群的管理。

高可用
Kubernetes 集群,在生产环境,必须实现高可用:

实现Master节点及其核心组件的高可用;
如果Master节点出现问题的话,那整个集群就失去了控制;
具体的 HA 示意图:
kubernertes-HA-arch.png

具体工作原理:

etcd 集群:etcd集群建议和主集群分开,3个节点允许一个容错,5个节点允许2个容错,根据实际情况进行选择
master集群: 对master节点来说一般3个节点就够了,主要需要我们做高可用的组件是apiserver,我们可以在前面做一个负载均衡器,比如加一个Nginx,Nginx还可以通过keepalived做高可用,工作节点和客户端通过这个负载均衡器(VIP)和apiserver进行通信
pod-master保证仅是主master可用,scheduler、controller-manager 在集群中多个实例只有一个工作,其他为备用

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
30天前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
110 7
|
3月前
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
10月前
|
Kubernetes Cloud Native 持续交付
容器化、Kubernetes与微服务架构的融合
容器化、Kubernetes与微服务架构的融合
322 82
|
7月前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
7月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
10月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
490 60
|
7月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
10月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
529 9
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
10月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
10月前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?

热门文章

最新文章

推荐镜像

更多