【原文链接】Kubernets简介

文章目录

  • 一、Kubernetes是什么?
  • 二、应用部署方式的变革
    • 2.1 传统部署时代
    • 2.2 虚拟化部署时代
    • 2.3 容器部署时代
  • 三、为什么要使用k8s?

一、Kubernetes是什么?

Kubernetes因为首字母k和尾字母s之间有8个字母,因此简称k8s,简单点来说k8s就是用来方便的管理容器的,而容器又是用来部署服务的,因此k8s进而可以很方便的用来管理部署服务。从发展趋势角度,k8s拥有一个非常庞大并且发展非常迅速的生态。目前在众多企业中应用越来越广泛。

二、应用部署方式的变革

2.1 传统部署时代

在早起的时候,应用一般直接部署在物理服务器上,如下图所示,这种方式缺点很明显,比如当在一个服务器部署多个应用时可能存在各种冲突,而每个服务器只部署一个服务时,又会出现资源利用率不高的问题,而且维护起来也非常地不方便。

2.2 虚拟化部署时代

随着虚拟化技术的发展,在物理服务器上首先虚拟出多个虚拟机,每个虚拟机就像物理的服务器一样,这样一来,就可以在每个虚拟机中部署一个应用,即在一个服务器上虚拟出多个虚拟机,每个虚拟机部署应用,从而做到了在一个服务器上部署多个服务,而且每个服务能做到相互独立的效果,如下图所示,但是使用虚拟机的方式也是存在缺点的,即此时对管理虚拟机相对来说比较复杂的,而且因为虚拟机的资源占用还是挺大的,因此一台服务器大概也就只能虚拟出一二十台虚拟机的规模。相对于物理服务器而言,资源利用率仍然不是很高。

2.3 容器部署时代

随着容器技术的发展,相比虚拟机而言,容器就更加的轻量级,从表面上看容器和虚拟机几乎完全一样,拥有独立的文件系统、cpu资源、内存、进程等,而实际上每个容器并不是拥有独立的操作系统,而是通过容器技术实现对操作系统的共享来做到相互之间的隔离的,如下图所示,因此容器启动起来非常迅速,秒级启动,而且一台物理服务器启动虚拟机可能只能启动一二十台,而启动容器则可以启动一二百个容器,从而能大大提高资源的利用率。那么到这里,当所有的应用都采用容器部署的时候,问题也随之而来了,当有几十个甚至上百个容器时,容器的管理就显得捉襟见肘了,而这个问题将是k8s重点解决的问题

三、为什么要使用k8s?

根据前面的介绍可以看出,简单来说,k8s就是为了解决容器部署时代存在密密麻麻的容器时容器难于管理的一系列问题的。具体来说,k8s拥有以下几方面的功能。

  • 服务发现和负载均衡
    k8s 可以通过配置域名自动发现服务,此外当存在大量请求时,可以通过部署多个容器的方式而此时k8s就具有负载均衡的作用,根据每个容器的负载动态灵活的分配请求。

  • 存储编排

k8s允许自定义存储,比如可以使用本地磁盘,也可以配置使用远端的或者共有元存储等。

  • 自动部署和回滚

k8s可以实现自动部署,此外当应用出现问题时还可以很容易的实现回滚,比如返回到上一个版本或者上上个版本等。

  • 自动完成装箱计算
    k8s 可以部署在多个服务器上,当部署应用时,k8s可以根据应用的资源限制条件自动挑选满足条件的节点进行部署,从而可以做到以最佳的方式利用服务器资源

  • 自我修复
    当部署的容器出错后,k8s会自动重新创建容器,具有自我修复的能力

  • 秘钥和配置管理
    k8s允许存储和管理敏感信息,比如用户名密码、ssh公钥等

通过以上对k8s的介绍,可以看出,简单点来说k8s就是用例管理容器的,因为当前应用多数都是通过容器部署的,因此,k8s可以做到在实践中对应用部署的各种功能,比如自我修复、回滚、负载均衡等等,不过这里也需要注意是,虽然说k8s是非常好用而且是非常强大的,但是这里也不要把k8s理解为DevOps或者CICD平台,总得来说,把k8s理解为管理容器的平台时比较准确的,而当前各种CICD平台或者DevOps平台一般都会使用k8s来管理容器的,即k8s可以理解为搭建CICD或DevOps凭条不可或缺的一个重要工具。

Kubernets简介相关推荐

  1. docker简介以及优缺点

    1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制, ...

  2. kubernetes简介

    kubernetes简介 kubernetes简介 Kubernetes的整体架构 其他附加项 分层架构 Label Kubernetes所提供的微服务网格架构 Flannel k8s负载均衡 kub ...

  3. Kubernets安装使用

    Kubernets 基础 一. 简介 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kub ...

  4. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  5. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  6. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  7. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  8. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  9. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

最新文章

  1. gulp-sass_如果您是初学者,如何使用命令行设置Gulp-sass
  2. matlab 删除路径_MATLAB自动管理文件
  3. 电子商务系统的设计与实现(九):后端管理系统功能细化
  4. 第三次学JAVA再学不好就吃翔(part63)--String和int的相互转换
  5. 面试官问:来实现一个Promise
  6. LINQPad工具-linq、sql、IL优化和转换
  7. Linux Ubuntu 查看cpu信息
  8. 在modelarts上部署mask-rcnn模型
  9. 配置使用VCSA自带的备份恢复工具
  10. 前端培训什么机构好?有什么好的学习方法能少走弯路?
  11. SilverLight客户端搭建完善聊天室 测试网址swkzy.vicp.net
  12. c++ 编译添加dll_使用MinGW编译OpenCV4源码与配置使用演示
  13. 性能调试工具——oprofile
  14. rubygems 安装mysql时出错_Ruby gem install mysql 错误解决
  15. RAIM: A Reverse Auction-based Incentive Mechanism for Mobile Data Offloading through Opportunistic
  16. c语言erp系统开发,erp系统怎么开发工具
  17. Python爬虫个人记录(二) 获取fishc 课件下载链接
  18. 计算机电路基础答案刘怀望,计算机电路基础
  19. 跳楼机[DP+spfa]
  20. 使用PowerCli来创建自定义ESXi ISO镜像

热门文章

  1. OpenJudge_P7833 幂的末尾
  2. java创建Shape类,求子类circle,圆形rectangle矩形,rhombus菱形的周长和面积
  3. 若依的${params.dataScope}
  4. iOS-获取手机健康步数,去除人为添加的数据
  5. 爱学术,让论文写作不再难!
  6. 《7天精通直播带货》运营型主播成长型,提升直播能力与技巧
  7. Apache的域名配置
  8. 美国大学倒闭危机!1/4高校或将破产,清华本科留学率下降
  9. 关于python操作cad的2021-06-18
  10. RECON-NG介绍及使用