当前位置:网站首页 > 容器化与Kubernetes > 正文

kubernetes的作用(kubernetes缺点)



   参考博客:https://www.kubernetes.org.cn/k8s

  1、kubernetes介绍

      1. Kubernetes是容器集群管理系统,是一个开源的平台

      2. 可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

      3. 目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或私有云中运行的负担。

作用:

 举例:

  2、kubernetes作用

    1)自我修复

        1. 在节点故障时重新启动失败的容器,替换和重新部署,保证预期我们设置的副本的数量;

        2. 杀死健康检测失败的容器,并且在没有准备好之前是不会处理客户端请求的(不对外提供服务),保证线上服务不中断

    2)弹性伸缩(比如618活动,保证我们服务的快速缩容和扩容)

        1. 使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用的程序实例(容器的副本数)

        2. 保证应用业务高峰并发时的高可用性;

        3. 在业务低峰时期回收资源,以减小成本运行服务

    3)自动部署和回滚

        1. k8s 采用滚动更新的策略更新应用,一次更新一个Pod,而不是同时删除所有的pod

        2. 如果更新过程中出现问题,将回滚更改,确保升级不影响业务

    4)服务发现和负载均衡

        1. k8s为多个容器提供一个统一访问入口(内部IP地址和一个DNS名称),并且负载均衡关联的所有容器,使得用户无需考虑容器IP的问题

    5)机密数据(密码,证书)和配置管理

        1. k8s提供存储能力(可以把密码加密放在容器存储中)

        2. 管理机密数据和应用程序的配置,而不需要把敏感的数据暴露在镜像里,提高敏感数据的安全性

        3. 并且可以把一些常用的配置存储在k8s中,方便应用程序的使用

    6)存储编排

        1. 挂载外部的存储系统,无论是来自本地存储,公有云,还是网络存储(NFS《GlustFS,Ceph)

        2. 都作为集群资源的一部分使用,极大的提高存储使用灵活性

    7)批处理

        1. 提供一次性任务,定时任务,满足批量数据处理和分析的场景

  3、核心组件:Pod

      1. 在Kubenetes中,所有的容器均在Pod中运行,一个Pod可以承载一个或者多个相关的容器

      2. 同一个Pod中的容器会部署在同一个物理机器上并且能够共享资源

      3. 一个Pod也可以包含0个或者多个磁盘卷组(volumes),这些卷组将会以目录的形式提供给一个容器,或者被所有Pod中的容器共享

      4. 对于用户创建的每个Pod,系统会自动选择那个健康并且有足够容量的机器,然后创建类似容器的容器

      5. 当容器创建失败的时候,容器会被node agent自动的重启,这个node agent叫kubelet

官网地址:https://www.kubernetes.org.cn/kubernetes设计架构

  1、Kubernetes中master核心组件

    1)etcd

是Kubernetes的存储状态的数据库(所有master的持续状态都存在etcd的一个实例中);

        2. 它是一个集群分布式数据库,它可以提供分布式数据的一致性。

    2)apiserver

        1. Kubernetes的核心组件是API Server,它是Kubernetes系统和Etcd直接对话的唯一组件

        2. 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

    3)controller manager

        1. controller manager 是通过API Server 进行协调的组件,绑定到单独的服务器Master上;

负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

    4)scheduler

        1. scheduler是通过API Server 进行协调的组件,绑定到单独的服务器Master上;

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

  2、Kubernetes中Node核心组件

    1)kubelet(Node Agent)

        1. kubelet负责管理pods和它们上面的容器,images镜像、volumes、etc。

        2. Agent负责监视绑定到其节点的一组Pod,并确保这些Pod正常运行,并且能实时返回这些Pod的运行状态。

    2)Container runtime

Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);

    3)kube-proxy

kube-proxy网络代理和负载均衡,负责为Service提供cluster内部的服务发现和负载均衡;

kubernetes优缺点 kubernetes功能_Pod

kubernetes优缺点 kubernetes功能_kubernetes优缺点_02

其他组件

    注: Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。

  3、k8s工作原理

kubectl向k8s Master发出指令。

      2. kubernetes Master主要是提供API Server、Scheduler、Controller组件,接收kubectl的命令

      3. kubernetes Master主从Node节点获取Node的资源信息,并发出调度任务。

kubelet、kube-proxy,每个node节点都安装docker,是实际的执行者。

      5. kubernetes不负责网络,所以一般是用flannel或者weave。

      6. etcd负责服务发现和node信息存储。

kubernetes优缺点 kubernetes功能_API_03

  4、分层架构

核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境

应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)

      3. 管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)

接口层:kubectl命令行工具、客户端SDK以及集群联邦

生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴

      6. Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等

      7. Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等

  1.用户提交创建Pod的请求,可以通过API Server的REST API ,也可用Kubectl命令行工具,支持Json和Yaml两种格式;

  2.API Server 处理用户请求,存储Pod数据到Etcd;

  3.Schedule通过和 API Server的watch机制,查看到新的pod,尝试为Pod绑定Node;

过滤主机:调度器用一组规则过滤掉不符合要求的主机(比如Pod指定了所需要的资源,那么就要过滤掉资源不够的主机);

主机打分:对第一步筛选出的符合要求的主机进行打分,在主机打分阶段,调度器会考虑一些整体优化策略

   比如:把一个Replication Controller的副本分布到不同的主机上,使用最低负载的主机等;

选择主机:选择打分最高的主机,进行binding操作,结果存储到Etcd中;

  7.kubelet根据调度结果执行Pod创建操作:

    1)绑定成功后,会启动container, docker run,

    2)scheduler会调用API Server的API在etcd中创建一个bound pod对象,描述在一个工作节点上绑定运行的所有pod信息。

    3)运行在每个工作节点上的kubelet也会定期与etcd同步bound pod信息

    4)一旦发现应该在该工作节点上运行的bound pod对象没有更新,则调用Docker API创建并启动pod内的容器。

kubernetes优缺点 kubernetes功能_Pod_04

到此这篇kubernetes的作用(kubernetes缺点)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 启动docker容器命令失败(docker启动容器后服务没起来)2025-10-15 11:45:09
  • 公司阶级分化(公司的阶级制度)2025-10-15 11:45:09
  • list变为字符串(list字符串转化为list 对象)2025-10-15 11:45:09
  • KVM虚拟化技术(kvm虚拟化技术原理)2025-10-15 11:45:09
  • docker启动全部容器(docker启动容器默认cpu核数)2025-10-15 11:45:09
  • kubeadm怎么读(kubernetes英语怎么读)2025-10-15 11:45:09
  • kubernetes中kubelet主要功能(kubernetes特点)2025-10-15 11:45:09
  • docker在线升级(docker升级容器)2025-10-15 11:45:09
  • awvs汉化版(awvs免费版)2025-10-15 11:45:09
  • 进程控制块的作用及其初始化工作进程(进程控制块的作用及其初始化工作进程是什么)2025-10-15 11:45:09
  • 全屏图片