【k8s连载系列】k8s介绍( 二 )

  • 如何监视应用程序的运行状况?
  • 如何批量重新启动容器里的程序?
  • 有需求就有改变 , 于是乎 , 市场上就出现了一批容器编排工具,典型的是 Swarm、Mesos 和 K8S 。最后,K8S“击败”Swarm 和 Mesos,几乎成了当前容器编排的事实标准 。
    Kubernetes(简称 K8s,其中8代指中间的8个字符),是一个全新的基于容器技术的分布式架构方案 。K8S 最初是由 Google 开发的,后来捐赠给了 CNCF(云原生计算基金会,隶属 Linux 基金会) 。K8S是 Google 十几年来大规模应用容器技术的经验积累和升华的重要成果 , 确切的说是 Google 一个久负盛名的内部使用的大规模集群管理系统——Borg的开源版本,其目的是实现资源管理的自动化以及跨数据中心的资源利用率最大化 。
    Kubernetes具有完备的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建的智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制 , 以及多力度的资源配额管理能力 。
    同时,Kubernetes 提供了完善的管理工具,这些工具涵盖了包括开发、部署测试、运维监控在内的各个环节,不仅是一个全新的基于容器技术的分布式架构解决方案,还是一个一站式的完备分布式系统开发和支撑平台 。
    K8S 是个杂技高手,最擅长的就是“搬箱子” , 盘各种容器玩 。
    【k8s连载系列】k8s介绍

    文章插图
    K8S 的大致架构,就像上面 。Master 节点,用来放“脑子” , “腿脚”搭在工作节点上“搬砖”,工作节点就是实际业务容器的存放地 。
    单个容器或多个关系密切的容器,被编成一组,称为 pod 。K8S 就是以 pod 为单位进行编排操作 。
    同时,K8S 还要和其它相关软件配合,来完成联网、存储、安全等功能 。
    Kubernetes 由 Master 节点、 Node 节点以及外部的 ETCD 集群组成 , 集群的状态、资源对象、网络等信息存储在 ETCD 中,Mater 节点管控整个集群,包括通信、调度等 , Node 节点为工作真正执行的节点,并向主节点报告 。
    3、容器和k8s的关系
    【k8s连载系列】k8s介绍

    文章插图
    K8S 和 Docker 们不是替代关系,而是配合关系 。K8S 仍然会使用 Docker 之类的容器引擎(Docker、Containerd、RKT、CRI-O 等),来对容器进行生命周期管理 。
    二、K8S的特性1.高可用,不宕机,自动灾难恢复
    2.灰度更新 , 不影响业务正常运转
    3.一键回滚到历史版本
    4.方便的伸缩管理(包括应用伸缩 , 机器增减),提供负载均衡
    5.有一个完善的生态体系
    6.轻量级
    7.开源
    8.弹性伸缩
    9.负载均衡
    三、k8s有哪些功能
    • 服务发现和负载平衡
      Kubernetes 可以使用 DNS 名称或使用自己的 IP 地址公开容器 。如果容器的流量很高 , Kubernetes 能够负载均衡和分配网络流量,从而使部署稳定 。
    • 存储编排
      Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等 。
    • 自动推出和回滚
      您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态 。例如,您可以自动化 使用Kubernetes 创建新容器、删除现有容器并将其所有资源用于新容器 。
    • 自动装箱 你为 Kubernetes 提供了一个节点集群,它可以用来运行容器化的任务 。你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM) 。Kubernetes 可以将容器安装到您的节点上,以充分利用您的资源 。
    • 自我修复 Kubernetes 会重新启动失败的容器、替换容器、杀死不响应用户定义的健康检查的容器 , 并且在它们准备好服务之前不会将它们通告给客户端 。
    • 秘密和配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 SSH 密钥 。您可以部署和更新机密和应用程序配置,而无需重新构建容器映像,也无需在堆栈配置中公开机密 。
    • 水平扩展
    • 滚动更新
    【【k8s连载系列】k8s介绍】

    推荐阅读