总聚焦于应用系统开发和建立在应用系统上的业务模型开发,很容易忽略基础资源重要性(包括裸金属服务器配置和优化、最优组网实践和网络拓扑优化、应用部署的持续集成和持续开发、云上资源分配和云原生),努力走出舒适区尝试新知识才能打开新思路,目前亟待增加裸金属服务器配置相关知识和云原生相关内容,那就从容器化和云原生下手,本节把基于k8s的容器化知识挂载到自己的知识树上,然后在测试环境进行开发测试;

目录

一、理解容器化

什么是容器

什么是Docker

什么是pod

什么是微服务

什么是devops

二、理解云原生

三、本地测试-DockerDesktop

四、后续学习路径


一、理解容器化

什么是容器

容器是云原生概念的重要组成部分,一种计算单元,容器比虚拟化技术更轻量化、更小开销的方式运行,作为应用的包装形式,容器赋予应用独立和便携的能力。随着Docker、Kubernetes技术的成熟,容器也成为了时下最火的开发理念。并非所有的应用都适合选择容器,开发者可以根据自己应用的特点和需求选择最适合的计算单元。如果应用是高性能、互信的,且处于同一个管理区域,那么用线程或者进程就可以满足;但如果你的应用是多租户的,并且和其他应用运行在同一个空间,那么你就需要考虑如何将这些应用安全地隔离开,使得数据不会被泄露或性能受到影响,容器也许就是一个不错的选择。

容器是「高度隔离的进程」:在一般进程的隔离基础上增加了新的隔离机制,这些隔离机制是使用Linux的内核提供的,它包括一些命名空间(Name Spaces)和CGroup。命名空间可以分为网络、存储和计算三大类。其中,最为重要的是网络命名空间。它保证了容器的网络是独立于其他容器网络的。每个容器自己看到的文件系统和其他容器的是不共享的,每个容器只能看到自己的进程ID,而进程编号也是连续的。容器最大的特征没有自己独立的操作系统,而是共享其宿主机上的一个操作系统;而虚拟机则运行在「一台独立的服务器上」,容器相比于虚拟机的成本小但隔离性欠缺。

容器是「应用的闭包」:应用不是单一的可执行文件,稍微复杂的应用包括:代码、可执行文件、配置依赖、外部依赖(动态链接库)等。所以在应用发行包装的时候,需要考虑目标操作系统的版本、系统架构以及它所依赖的模块等因素。否则应用安装时会改动系统的不同部分,容器作为应用的包装,它最大的特点就是实现了应用的独立和便携,容器本身包含了应用所有的依赖,这使得它可以再任意的基础设施上运行,不会因为系统版本、架构的问题,而导致各种意外。

什么是Docker

Docker是容器管理平台,容器是应用运行单元,Docker用来创建、管理和销毁这些单元的,在创建和管理这些计算单元的时候,需要用到计算单元的包装(也就是它的软件发行包),这些包装以容器镜像的方式存放在它的运行环境中,所有的容器计算单元都是通过这些镜像来创建的。

镜像本身会有版本的发布、升级等需求,这就涉及到Docker的另一个重要组成部分DockerHub了。DockerHub有点像苹果的App Store,它是一个非常大的「容器市场」,所有常用的软件都可以在DockerHub上找到。

最后一个Docker的重要模块,就是用户界面和管理工具,它们用来向容器的运行环境发布命令或查看状态。只需要用一个Docker的命令加上一些参数,就可以实现创建、删除、查看容器的运行情况等操作,只需要安装好Docker就可以尝试运行这个Hello World的容器了,容器的典型应用可以分为两类:微服务和DevOps。

什么是pod

Pod是组合的多容器运行单元,也是Kubernetes的基础单元,可以看作是容器的扩展或者增强型的容器。Pod里面包括一个主容器和数个辅助容器,它们共同完成一个特定的功能。把多个进程(容器也是一种隔离的进程)打包在一个Name Space里的时候,就构成了一个Pod。Pod里面不同进程的应用包装仍然是独立的(每个容器都会有自己的镜像)。

Pod的意义在于既保持主容器和辅助容器的的密切关系,又保持主容器的独立性。由于主容器和辅助容器的生命周期相同,可以同时被创建和销毁,因此把它们放在一个Pod中,可以使他们的交互更加高效,另一方面主容器需要完成一些主要工作,而另一些工作可能是有共性的,就可以单独打包由辅助容器来运行。 非常推荐大家去一个叫Katacoda的网站,它上面有大量免费的在线实验,包括Docker及Docker Image等动手操作项目

什么是微服务

微服务是指系统的不同单元或功能运行不同的容器,每一个服务的容器数量可以根据自己的负载进行调整。比如,一个大系统包含用户登录、货品展示、货品交互等功能,但这个系统的各个部分并不是同时线性增加的,有些部分可能忙一些,有些部分的容量可能还有富余。

什么是devops

DevOps是指开发者、测试、生产过程流水线化。因为容器的「自包含」特性,当它作为标准的流通物品,可以使开发环境、测试环境和生产环境的应用包装完全一致,这样就减少了应用由于依赖关系配置错误等导致的意外,从而使得开发、测试、生产的整个流水线变得更高效。

二、理解云原生

云原生(CloudNative)以容器化、微服务、可持续交付性,快速构建/运行弹性扩展应用,应用构建简便快捷,部署轻松自如,应用按需伸缩,云原生是一套技术体系/方法论。Cloud表示应用程序位于云中,而非传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。

云原生概括为4个要点:DevOps+持续交付+微服务+容器,云原生架构的应用系统应该采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

云原生构建应用简便快捷,部署应用轻松自如、运行应用按需伸缩。优点不一而足,缺点微乎其微;秒杀传统Web框架,吊打祖传IT模式,实在是保命装逼、评优晋级不可多得的终极绝密武器。

三、本地测试-DockerDesktop

本地使用docker-desktop安装mysql;

官方下载地址:docker-desktop的链接地址

安装过程中报错,WSL 2地址:wsl2

设置国内镜像地址,并重启;

{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],"insecure-registries": [],"debug": false,"experimental": false,"features": {"buildkit": true}
}

本地安装mysql是如此地复杂,但是在使用docker-desktop就非常的简单:

# 拉取镜像
docker pull mysql:5.7.29# 镜像运行之后就是容器container了,run就启动了该容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.29# 进入mysql这个容器内,在docker-desktop可以进入
docker exec -it mysql bash# 进入镜像后就可以访问mysql
mysql -u root -p //回车输入密码

把window的telnet功能打开;telnet 127.0.0.1 3306端口可用,说明已完成安装,跟本地安装mysql相比快捷而省时间,秀的一批;

四、后续学习路径

1.学习dockerfile;

2.云原生内容;

容器和云原生(一):初识容器化和云原生相关推荐

  1. 阿里云叔同:以容器为代表的云原生技术,已经成为释放云价值的最短路径

    作者 | 丁宇(叔同) 阿里云智能容器平台负责人 云计算.大数据.人工智能等新技术正迅速的改变着我们所处的时代,其巨大的影响力已经从量变到质变,数字化转型成为企业发展的必然选择. 据IDC报告,全球前 ...

  2. 阿里云叔同:以容器为代表的云原生技术,已成为释放云价值的最短路径

    作者 | 丁宇(叔同) 阿里云智能容器平台负责人 .刘丹 2019 年阿里巴巴 双11 核心系统 100% 以云原生的方式上云,完美支撑了 54.4w 峰值流量以及 2684 亿的成交量.随着阿里巴巴 ...

  3. 以容器为代表的云原生技术,正成为释放云价值最短路径

    作者 | 丁宇(叔同) 阿里云智能容器平台负责人 云计算.大数据.人工智能等新技术正迅速的改变着我们所处的时代,其巨大的影响力已经从量变到质变,数字化转型成为企业发展的必然选择. 据IDC报告,全球前 ...

  4. 【云原生之企业级容器技术 Docker实战一】Docker 介绍

    目录 一.Docker 介绍 1.1 容器历史 1.2 Docker 是什么 1.3 Docker 和虚拟机,物理主机 1.4 Docker 的组成 1.5 Namespace 1.6 Control ...

  5. 秒云与趋动科技联合发布容器云平台与GPU资源池化整体解决方案

    近日,秒云联合趋动科技,共同发布基于容器云平台与GPU资源池化整体解决方案,并完成秒云容器云平台与趋动科技OrionX AI算力资源池化解决方案的兼容认证测试,测试结果表明双方产品完全兼容,各项功能运 ...

  6. 《云原生入门级开发者认证》学习笔记之云原生基础设施之容器技术

    写在前面 嗯,报了考试,整理课堂笔记记忆 学习的原因: 虽然考了CKA,了解了一些K8s相关的知识 但是对云原生整个体系一直都很模糊 希望对云原生有一个基本的认识 通过学习实现云原生相关入门 博文主要 ...

  7. Go 开源说第十一期:KubeSphere-面向云原生应用的容器混合云

    点击蓝字 关注我们 本文由"GO开源说"第十一期 <KubeSphere-面向云原生应用的容器混合云>直播内容修改整理而成,视频内容较长,本文内容有所删减和重构. Ku ...

  8. 杉岩:云原生时代,容器持久化存储方案选对了吗?

    75%的企业部署容器应用,云原生正加速业务创新 互联网的发展.云计算的出现,对传统IT带来冲击和挑战.面对数据爆炸式增长.业务种类增加.应用复杂性提高.软件迭代速度加快等一系列挑战,容器技术带来了突破 ...

  9. 【华为云原生入门级认证】第 2 章 云原生基础设施之容器技术

    云原生 第2章 云原生基础设施之容器技术 2.1 容器发展背景 企业 IT 业务云化路径 - 传统业务云化 方式一:物理机部署,统一管理 特征: 业务无法云化部署,物理资源搬迁或纳管到云平台资源池. ...

最新文章

  1. 微软小冰发布知乎主题曲,人工智能首次开始接近人类歌手水平
  2. linux下文件权限管理
  3. mysql查询父子关系树_swt 生成树[读取Mysql数据库中的父子关系表]
  4. Spring MVC : 概念模型 HandlerMethod(转载)
  5. 用python输入名字并打印_python的输出与输入
  6. 14、CSS渲染:CSS是如何绘制颜色的?
  7. 【微信公众号】2、申请微信公众平台接口测试帐号
  8. 陈旿 计算机网络,西北工业大学陈旿教授应邀来校作网络信息安全讲座
  9. [转]仙剑4破解方法详解(免激活刻盘法)--仙剑爱好者看看[图]
  10. 八、RISC-V SoC外设——GPIO接口 代码讲解
  11. 删除文件时提示需要administrator 权限
  12. 计算机网络知识点之五
  13. python xlutils模块安装_python接口测试,第三方包xlrd和xlutils,怎么安装
  14. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.4 角色模型...
  15. c语言编程题企业奖金,【C语言】企业奖金发放问题
  16. 教育培训行业营销推广方案
  17. python新浪微博数据分析_Python 爬取新浪微博数据分析90后单身原因
  18. android:elevation属性,控制View底部渐变阴影
  19. 【计算机网络】-【考研复试面试】-整合
  20. Unity 陀螺仪姿态识别、 控制物体旋转移动

热门文章

  1. 用友系统客户端登录不上服务器,图文详解用友客户端连不上服务器解决方法.pdf...
  2. 世界各国劳动力总数数据集1990-2019年
  3. java定义苹果类Apple_定义一个水果接口Fruit,里面定义一个表示吃水果的eat方法。定义一个苹果类Apple和一个橘子...
  4. hp计算机如何重装win7,为你解答惠普电脑怎么重装win7系统
  5. OpenAI ChatGPT 接入微信,与AI互动
  6. 安卓应用市场广告(CPD),aso cpd
  7. [集合竞价-AI量化]天天做超短,集合竞价的盘口语言你真的读懂了麽?
  8. 【089】深度学习读书笔记:P29证明迹Tr(AB)=Tr(BA)
  9. java byte转文件大小_java上传文件大小转换(字节转kb/mb/gb)
  10. WHQL认证环境部署攻略四  结果查看测试报告