云卷云舒:kubernetes简介

这篇具有很好参考价值的文章主要介绍了云卷云舒:kubernetes简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        Kubernetes是由google公司在2014年发布的一款开源的容器编排引擎,用于容器化应用程序的自动化部署、扩展与管理。它能够编排多种容器任务,涵盖虚拟机集群管理、负载均衡以及网络流量分配等等。2017年,aws、微软云、阿里云等等著名的云计算公司都开始宣布原生支持kubernetes 。还有的平台可以做到把自己的k8s对外提供服务,让用户可以直接在上面部署应用程序,提供容器级服务的环境。这些大型云厂商的支持, 使得k8s在业内已经受到了广泛的认可和支持,容器编排市场占有率超过80%。

1.kubernetes特性

(1)自动装箱:基于资源依赖及其他约束能够自动完成容器的部署而且不影响其可用性。

(2)自我修复:一旦某一个容器崩溃,由于容器轻量级的特点,kubernetes能够在1秒中左右迅速启动新的容器。

(3)自动水平扩展:只要物理平台的资源支撑是足够得到,kubernetes就可以无限制的增加容器。

(4)服务发现和负载均衡:当我们需要在k8s上运行很多应用程序的时候,一个服务可以通过自动发现的形式找到它所依赖的服务,而且每一种服务如果起了多个容器,他能实现自动负载均衡。

(5)自动发布回滚:执行日常的运维任务。

(6)秘钥和配置管理:k8s通过配置中心的方式来保存所有应用的配置信息,当容器启动时,会去配置中心加载对应的配置信息。

(7)存储编排:根据容器自身的需求自动创建能够满足自身需要存储卷。

2.kubernetes架构

云卷云舒:kubernetes简介,云原生,kubernetes,容器,云原生

        kubernetes是从传统运维角度来说的集群,组合多台主机的资源整合成一个大的资源池并统一对外提供计算存储等能力。每一个主机上都安装了k8s的相关应用程序,并通过这个应用程序协同工作,把多个主机当一个主机来使用。但是在k8s集群中,主机是分角色的,k8s是一个有中心节点架构的集群系统(master/nodes模型)。

        k8s一般有3个master节点以实现HA,N个node节点提供计算存储能力来运行容器。master负责接受客户端的请求,而后master负责分析各个node现有的可用资源状态,将请求调度到一个可运行容器的最佳的node节点。最后,node节点首先在本地检查是否有镜像,最后在以Pod(node节点的最小调度单元)的形式将容器启动起来。

3.kubernetes核心组件

(1)master节点核心组件

Controller:负责检测pod的健康。

API Server:API Server专门负责接收、解析、处理请求。

Scheduler(调度器):它负责观测每一个node上总共可用的cpu计算和存储资源,并根据用户请求创建的容器所需要的资源量在众多node中挑选出一个符合条件的node来创建容器。kubernetes设计了一个两级调度的的方式来完成调度,第一步先进行预选;对每一个node进行评估,选出所有符合的node。第二步再在选出来的node上根据调度算法中的优选算法来选出一个最佳的node。

Controller Manager:它负责监控每一个控制器的健康状态,如果控制器不健康,由Controller Manager会重新生成一个控制器接管。Controller Manager如果宕机,会由从master上的Controller Manager接管。

(2)etcd

它是一个key:value的数据库,类似redis。负责存储集群中API Server中保存的各个状态信息(持久化到共享存储),以防止集群中的主master节点宕机,其他master节点可以读取到之前的集群信息。etcd同样是restfull风格的集群,通过http或https通信。在一个k8s集群中,etcd是高可用的。防止一个etcd宕机之后不能进行集群leader选举。

(3)node节点核心组件

Kubelet:负责与master通信,接受master调度过来的任务并执行,可能包括;创建Pod,管理Pod的健康状态、创建存储卷、启动容器等。

Kube-Proxy:节点中的每一个Pod发生变化以后,结果是保存在API Server中。而后API Server会生成一个通知事件,Kube-Proxy负责接收API Server的通知事件,一旦发现了某一个Service背后的Pod信息发生了改变(IP、Port等),由Kube-Proxy负责在每一个节点上将变化后的service转换成IPVS或IPtables规则中。而每创建一个Service,Service的实现也要靠Kube-Proxy在每一个节点上创建成IPVS或IPtables规则。文章来源地址https://www.toymoban.com/news/detail-792270.html

到了这里,关于云卷云舒:kubernetes简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生、容器化、Kubernetes、微服务

    作者:禅与计算机程序设计艺术 云原生(Cloud Native)是一个开放且社区驱动的项目,它定义了一组架构原则、最佳实践和工具集,这些原则、实践和工具围绕业务需求和工程实践而设计,可用于开发人员在构建和运行分布式系统时更加顺畅地交付可靠的软件。云原生可以帮助

    2024年02月07日
    浏览(45)
  • 【云原生】kubernetes中容器的资源限制

    目录 1 metrics-server 2 指定内存请求和限制 3 指定 CPU 请求和限制 资源限制 在k8s中对于容器资源限制主要分为以下两类: 内存资源限制: 内存 请求 (request)和内存 限制 (limit)分配给一个容器。 我们保障容器拥有它请求数量的内存,但不允许使用超过限制数量的内存。 官网参

    2024年02月14日
    浏览(47)
  • 云原生Kubernetes:CRI 容器运行时接口

    目录 一、理论 1.​CRI 2.容器运行时层级 3.容器运行时比较 二、总结 (1)概念       Kubernetes Node (kubelet) 的主要功能就是启动和停止容器的组件,我们 称之为容器运行时( Container Runtime) ,其中最知名的就是 Docker 。为了 更具扩展性, Kubernetes 1.5 版本开始就加入了容器运行

    2024年02月09日
    浏览(43)
  • 容器和云原生(三):kubernetes搭建与使用

            目录 单机K8S docker containerd image依赖 kubeadm初始化 验证 crictl工具 K8S核心组件 上文安装单机docker是很简单docker,但是生产环境需要多个主机,主机上启动多个docker容器,相同容器会绑定形成1个服务service,微服务场景中多个service会互相调用,那么就需要保证多个servi

    2024年02月11日
    浏览(33)
  • 【云原生|Kubernetes】08-Pod中的Init容器

    Init 容器是一种特殊容器,在 Pod内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。 你可以在 Pod 的spec中与用来描述应用容器的 containers 数组平行的位置指定 Init 容器。 Init 容器的状态在 status.initContainerStatuses 字段中以容器状态数组

    2024年02月09日
    浏览(54)
  • 【云原生-深入理解Kubernetes-1】容器的本质是进程

    大家好,我是秋意零。 😈 CSDN作者主页 😎 博客主页 👿 简介 👻 普通本科生在读 在校期间参与众多计算机相关比赛,如:🌟 “省赛”、“国赛” ,斩获多项奖项荣誉证书 🔥 各个平台, 秋意零/秋意临 账号创作者 🔥 云社区 创建者 点赞、收藏+关注下次不迷路! 欢迎加

    2024年02月02日
    浏览(58)
  • 云原生小疑问 ⁉️ - Kubernetes 下重启容器会丢失数据吗?

    在 docker 环境下,容器重启后还是原来的容器,数据并没有丢失。那是不是 k8s 环境下,重启也不会丢失呢? 在kubernetes/RainBond环境下, 最小化的管理单元是 Pod 。 对 Pod 的重启,本质上是先删除,然后启动新的容器 。所以原本容器中的数据会丢失。 java程序中一般如下数据需

    2024年04月25日
    浏览(33)
  • 【云原生|Kubernetes】12-容器生命周期的回调(PreStart和PreStop)

    我们知道,K8S可以在应用容器启动之前先执行一些预定义的操作,比如事先生成一些数据,以便于应用容器在启动的时候使用。这种方式可以通过init container技术实现。 那么事实上,在实际生产中,还有一种需求,就是我们需要在应用容器启动后执行一些初始化操作,比如设

    2024年02月12日
    浏览(48)
  • 【云原生】kubernetes在Pod中init容器的作用和使用

    目录 Pod 中 init 容器 1 init 容器特点 2 使用 init 容器 Pod 中 init 容器 Init 容器是一种特殊容器,在Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。 1 init 容器特点 init 容器与普通的容器非常像,除了如下几点: 它们总是运行到完

    2024年02月14日
    浏览(42)
  • 【云原生-深入理解 Kubernetes 系列 3】深入理解容器进程的文件系统

    【云原生-深入理解Kubernetes-1】容器的本质是进程 【云原生-深入理解Kubernetes-2】容器 Linux Cgroups 限制 大家好,我是秋意零。 😈 CSDN作者主页 😎 博客主页 👿 简介 👻 普通本科生在读 在校期间参与众多计算机相关比赛,如:🌟 “省赛”、“国赛” ,斩获多项奖项荣誉证书

    2024年02月06日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包