云原生之路01之云原生与容器技术

云原生之路01之Docker和K8S

第一章 云原生开学“第一课”

云原生技术的发展

  • 核心构建单元:服务器—虚拟机—Bulidpacks—容器
  • 不可变基础设置
  • 隔离单元:更轻的体量,更快的启动速度
  • 供应商:从闭源单一供应商到开源跨供应商

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。

云原生核心理念

  • 解耦软件开发,提高灵活性和可维护性
  • 多云支持,避免产商锁定
  • 避免侵入式定制
  • 提高工作效率和资源利用率

云原生发展趋势

  • 软硬一体化: 与传统基础设施的网络,存储,计算能力对接,发挥软硬一体化优势
  • 服务网格: 以基础设施的方式提供无侵入的连接控制安全,可监测性,灰度发布等质量能力
  • 有状态应用: 无状态+Job类应用趋于成熟,有状态应用逐步成为云原生整长点,因Operator的出现,为有状态应用提供一套标准规范
  • 跨区域、跨平台、跨云:云原生北向API趋于稳定,关注多云统一管理和业务流量统一调度。

云原生的代表技术

  • 容器
  • 微服务
  • 服务网格: 剥离业务代码和分布式框架,基础设施、非入侵式
  • 声明式API(K8S): 面向开发者提供全新分布式原语

云原生技术体系及CNCF核心项目

  • 开源社区式云原生技术的推动者,同时是相关技术标准的制定者
  • CNCF 已成为云计算领域新的“标准”制定者

image.png

image.png

第二章 容器技术基础介绍

  • Linux 通过Cgroups的资源管理能力和Namespace的隔离能力组合在一起
  • Cgroup子系统:blkio、cpu、cpuacct、cpuset、devices、freezer、memory、net_cls
  • Namespace:UTS、IPC、PID、Network、Mount、User
  • Docker:一个开发、交付和运行应用程序的开放平台,将应用程序和基础架构分开,快速交付
  • Docker VS VM:启动快(秒级)、资源少、更轻量、高可用和可恢复性、快速创建删除、快速交付和部署
  • Docker常用命令:build、images、load、ps、pull、push、restart、rm、rmi、tag、run
  • Docker三大核心组件:镜像(静态、只读)、容器(动态、可读写)和仓库(集装箱)
  • Dockerfile构建镜像

Dockerfile构建镜像:

  • Dockerfile:
from debian
run apt-get install emacs
run apt-get install apache2
cmd ["/bin/bash"]
  • 构建
#(1)构建镜像
docker build -t forecast:v1 .
#(2)推送镜像到swr保存用于下次实验
docker tag forecast:v2 仓库地址/jarvis/forecast:v2
docker push 仓库地址/jarvis/forecast:v2

Docker构建存在问题

  • 线性构建,顺序执行
  • 普通用户无法执行
  • 无法清理敏感数据

新兴的镜像构建工具

  • BuildKit、img、Kaniko、Buildah

问题:针对上面Docker构建存在的问题,那几个新兴工具(BuildKit、img、Kaniko、Buildah)有没有解决这些问题

实验:
image.png
这些连接可不可以放出来,幻灯片里面是图片不方便
image.png

(完)