学习笔记-Docker、CICD、K8S

1 Docker

学习笔记-Docker、CICD、K8S_第1张图片

 

1.1 Docker就是一个集装箱,将代码程序及环境打包在一起。

1.2 相比于虚拟机,Docker容器是非常轻量,一台主机运行成百上千个容器是家常便饭。

1.3

  • 镜像:保存代码及其环境文件
  • 容器:运行镜像,产生容器,容器里跑我们的程序
  • 仓库:托管镜像文件的网站

1.4 Docker的标准工作流

  • 构建阶段:编写Dockerfile,构建镜像,将镜像push到Dockerhub
  • 部署阶段:从Dockerhub上pull镜像,基于新镜像,docker run 容器,容器启动,运行程序

1.5 熟练掌握docker run 、docker exec、docker build 等基本命令

1.6 Docker的使用经验:

  1. 镜像是分层构建的,善于利用缓存,加快构建速度。
  2. Base镜像,优先使用官方提供的基础镜像,方便、靠谱
  3. 容器即服务,将容器等同于服务
  4. 容器是单进程模式,不推荐使用多进程
  5. 容器无状态,重要的数据或者模型要挂载出来,防止数据丢失

2 CICD自动化

学习笔记-Docker、CICD、K8S_第2张图片

 

2.1 CICD两大核心:

  • 流水线:将测试、部署等过程定义为流水线
  • 自动化:将每一个过程编写为脚本,自动执行

2.2 常见的pipeline:单元测试、构建镜像、接口测试、部署测试环境、压力测试

2.3 了解.gitlab-ci.yml的大致编写思路、了解一些stage脚本的基本逻辑

3 K8S集群

学习笔记-Docker、CICD、K8S_第3张图片

 

3.1 k8s是一个容器管理、服务编排、资源调度、集群管理的工具,谷歌开源,国内已经成为主流

3.2 正常开发的服务都运行在k8s上

3.3 K8S的部署优势:故障迁移、资源调度、资源隔离、快速伸缩容量、自动负载均衡、资源池

3.4 CI/CS可以通过deploy_stage,将镜像更新到K8s集群,触发部署

3.5 开发同学需要做到:知道最终服务会运行在K8S上,会在K8S平台监控服务,排查log

3.6 了解deployment的编写,dashboard上监控服务、排查问题的方法

你可能感兴趣的:(git,ci,docker)