云原生应用1:容器基础入门

港控/mmm° 2024-04-17 14:36 123阅读 0赞

本篇博客能让你了解到什么是云原生技术,以前是通过主机虚拟化来进行隔离的,以及容器虚拟化和容器编排技术发展史

1.什么是云原生?

云原生既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,持续交付等),是一系列 Cloud 技术、企业管理方法的集合。云原生应用架构包含三个特征:容器化、微服务和 DevOps。

说到云原生,得了解下CNCF,即云原生计算基金会,2015年由谷歌牵头成立,基金会成员目前已有一百多企业与机构,包括亚马逊、微软。思科等巨头,是一个致力于开源技术推广的组织

把微服务打包到容器中,通过kubernetes等容器编排技术集中式的调度容器来动态的管理系统

2.容器到容器编排的历史
  • 1.主机虚拟化技术:容器发展之前,大多使用的 主机虚拟化技术,比如在一台高配服务器上使用VMware软件,为每一个封闭实例,提供一个从底层硬件到高层的基础环境,也就意味着每一个对应的虚拟机实例就拥有自己可视的,且是隔离于其它实例的基础硬件,包括CPU,内存等,所以它在硬件完成资源划分以后,提供给我们每一个实例一个基础环境,使得我们每一个实例都得安装操作系统,从而就拥有自己的内核空间和用户空间,由于做了两级内核,会有性能损耗,但是隔离性是非常好的。但过于重量级
  • 2.容器级虚拟化技术:将内核分为多个空间NameSpace,然后每个空间能够提供一个完整意义上的程序运行环境,容纳了文件系统、进程、网络设备、用户和用户组以及一些其他组件。我们把这些技术称之为容器,(名字空间:UTS、IPC、Mount、PID、Network、User)
  • 3.docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源,docker 自2013年以来非常火热。docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以实现虚拟化,但容器内难以监控,随着docker的火热,想把docker商业化引起了社区人员的不满,google这时坐不住了,说这是容器技术是他们内部用了10多年的技术,后面开源了容器编排工具 kubernetes,联合 IBM、微软等企业成立了CNCF云原生基金会,并把kubernetes贡献给了CNCF基金会,让社区用户不用担心 kubernetes 像docker一样被商业化,从此kubernetes一统容器编排领域,有了这个积累后,google想制定容器标准,联合所有CNCF内的厂商给 docker 施压,想让docker加入 CNCF,把docker继续开源,并让docker主导容器标准的制定,从而有了 docker-ce、docker-ee 2个版本
  • 4.容器技术让DevOps开发运维一体化得到了落地,但又产生了新的问题,系统越来越多,服务越来越复杂,因容器难以监控管理,当某些服务出现故障时难以修复,因此需要容器编排工具
  • 5.容器技术需要内核支持,linux 内核 3.8 版本以上的系统完全支持容器技术,查看版本当前操作系统内核信息 uname -a
    在这里插入图片描述
  • 5.使用容器编排工具的好处有很多,如:容器的高可用和负载均衡、自动扩缩容、底层硬件故障,能够把容器迁移到其他节点上,用户无感知、容器资源分配、容器的注册与自动发现、容器和宿主机的健康检查、容器配置和存储管理
3.比较下云原生应用于传统应用









































云原生应用 传统应用


可预测。 云原生应用符合旨在通过可预测行为最大限度提高弹性的框架或“合同”。


不可预测。 通常构建时间更长,大批量发布,只能逐渐扩展,并且会发生更多的单点故障


操作系统抽象化。


依赖操作系统。


资源调度有弹性。


资源冗余较多,缺乏扩展能力


团队借助DevOps更容易达成协作。


部门墙导致团队彼此孤立。


敏捷开发。


瀑布式开发。


微服务各自独立,高内聚,低耦合。


单体服务耦合严重。


自动化运维能力。


手动运维。


快速恢复。


恢复缓慢。

docker也可以离线安装
离线包下载地址tg:https://download.docker.com/linux/static/stable/x86_64/
离线包下载地址rpm:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

不对之处请多多谅解,适合业务的架构才是好的架构

云原生应用需要容器化、微服务和 DevOps,而我有微服务小案例,想把服务容器化,再通过kubernetes进行编排,因此在学习云原生,把学习云原生中的内容记录并写成了博客,谢谢大家支持

下一篇:docker安装与使用基础

参考博客:一文深入理解Kubernetes

发表评论

表情:
评论列表 (有 0 条评论,123人围观)

还没有评论,来说两句吧...

相关阅读

    相关 原生1容器基础入门

    篇博客能让你了解到什么是云原生技术,以前是通过主机虚拟化来进行隔离的,以及容器虚拟化和容器编排技术发展史 1.什么是云原生? 云原生既包含技术(微服务,敏捷基础设...

    相关 1. 原生与容器基础

    > 本文由 CNCF + Alibaba 云原生技术公开课 整理而来 云原生 云原生的定义: 实际上,云原生是一条最佳路径或者最佳实践。云原生为用户指定了一条低