kubernetes概述-介绍、组件、架构

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: kubernetes概述-介绍、组件、架构

kubernetes基本介绍

1.kubernetes是什么?

Kubernetes是一个开源的容器管理平台,简称k8s,用于管理多个主机上的容器化应用程序;提供应用程序的快速部署,维护和扩展的基本机制;Kubernetes提供了应用程序的快速部署、扩缩容,升级的能力,利用service可以实现服务注册和发现以及转发,通过ingress可以实现七层负载均衡等功能;Kubernetes这个名字源于希腊语,意思是舵手或飞行员。谷歌在2014年开放了Kubernetes项目.Kubernetes建立在谷歌拥有大量运行生产工作量的十五年经验的基础上,结合了社区中的最佳创意和实践,社区活跃度很高。

2.kubernetes容器编排工具的优势

1)灵活部署

    kubernetes支持在多种平台部署,支持私有云,公有云,混合云下部署

    2)安全高效

      rbac

      3)负载均衡

        service四层负载均衡
        ingress七层负载均衡

        3.kubernetes的功能

        1)多租户网络隔离,namespace

        2)高可用,高可扩展性

        3)节省资源,优化硬件资源的使用

        4.kubernetes应用场景

        1)DevOps开发运维一体化

        2)微服务

        5.Kubernetes特点

        1)可移植:

          支持公有云,私有云,混合云,多重云(multi-cloud)

          2)可扩展

            模块化, 插件化, 可挂载, 可组合

            3)自愈

              自动布置,自动重启,自动复制,自动扩展

              6.Kubernetes可以满足很多运行环境中应用的需求,比如:

              进程协同,利用复合应用保证应用和容器一对一的模型。
              存储系统挂载
              分发密钥
              应用健康检测
              应用实例复制
              水平自动扩展
              命名和发现
              负载均衡
              滚动更新
              资源监控
              日志访问
              自检和调试
              识别和认证

              这为PaaS提供了IaaS层的便利,提供了基础设施提供者间的可移植性。

              kubernetes架构

              k8s的物理结构是master/node模式,架构图如下所示

              master一般是三个节点或者五个节点做高可用,根据集群规模来定,master高可用指的是对apiserver做高可用或者对master的物理节点做高可用

              node可以有多个节点,专门用来部署应用的。

              kubernetes核心组件

              1.master节点组件

              1)apiserver

              提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制,负责接收、解析、处理请求。

              2)scheduler

              调度器,负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上。

              3)kube-controller-manager

              控制器,负责维护集群的状态,检查pod的健康状态,比如故障检测、自动扩展、滚动更新等一些操作;

              4)etcd

              etcd是一个key/value形式的键值存储,保存了整个kubernetes集群的状态,在kubernetes中使用etcd时,需要对etcd做备份,保证高可用;整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是:

                网络插件calico、对于其它网络插件也需要用到etcd存储网络的配置信息
                kubernetes本身,包括各种对象的状态和元信息配置

                注意:

                网络插件操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API,
                所以在下面我们执行etcdctl的时候需要设置ETCDCTL_API环境变量,
                该变量默认值为2,表示使用v2版本的api,v3表示使用v3版本的api

                5)kube-proxy

                k8s代理,是在集群中的每个节点上运行的网络代理,kube-proxy负责请求转发,一旦发现了某一个Service关联的Pod信息发生了改变(如IP、Port等),由Kube-Proxy就会把变化后的service转换成IPVS或IPtables规则中,完成对后端pod的负载均衡

                6)calico

                Calico是一个纯三层的网络插件,calicobgp模式类似于flannelhost-gw,calico在kubernetes中可提供网络功能和网络策略

                7)cordns

                k8s1.11之前使用的是kubedns,1.11之后才有coredns,coredns是一个DNS服务器,能够为Kubernetes services提供DNS记录

                8)kubelet

                负责与master节点的apiserver进行通信的,接收到客户的请求,进行创建Pod,管理Pod,启动pod等相关操作

                9)docker

                是一个容器引擎,用于运行容器


                2.node节点组件,工作节点组件

                1)kubelet

                负责与master节点的apiserver进行通信的,接收到客户的请求,进行创建Pod,管理Pod,启动pod等相关操作

                2)kube-proxy

                k8s代理,是在群集中的每个节点上运行的网络代理,kube-proxy负责请求转发,一旦发现了某一个Service关联的Pod信息发生了改变(如IP、Port等),由Kube-Proxy就会把变化后的service转换成IPVS或IPtables规则中,完成对后端pod的负载均衡

                3)calico

                Calico是一个纯三层的网络插件,calicobgp模式类似于flannelhost-gw,calico在kubernetes中可提供网络功能和网络策略

                4)docker

                是一个容器引擎,用于运行容器


                3.附加组件

                1)dashboard

                k8s的web ui界面,通过这个界面可以对k8s资源进行操作

                2)Ingress Controller

                七层负载均衡控制器,可以创建nginx或者traefik这种七层负载应用,实现域名和https访问

                3)prometheus+alertmanager+grafana

                监控套件,可监控k8s集群或物理节点

                4)efk

                日志分析平台

                5)metrics

                用于收集资源指标,hpa需要基于metrics实现自动扩缩容

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