Docker和k8s的基础认知

201 阅读2分钟

Docker基础学习

🐳 什么是Docker?

Docker是一种容器化技术,它可以帮助开发者构建、部署和运行应用程序。 image.png

🐳 Docker和传统虚拟化方式不同之处?

  • 传统虚拟技术是虚拟一套硬件系后,在上面运行一个完整操作系统;
  • Docker直接对宿主的进程进行隔离,运行自己的应用;

image.png

🐳 Docker的三个基本概念:镜像、容器、仓库

  • 镜像:提供了容器运行时所需的依赖项,是创建Docker容器的模板;(类)
  • 容器:是镜像的运行实例,是Docker应用程序的基本执行单元;(实例) image.png
  • 仓库:镜像的存储和分发中心,提供了镜像的管理和共享功能。

🐳 使用Dockerfile定制镜像

Dockerfile是一个脚本文件,描述了如何构建镜像:

  • FROM命令指定基础镜像,以一个镜像为基础,在其上进行定制;
  • RUN执行命令,比如shell命令;

image.png

使用Dockerfile来定制Nginx镜像:

image.png

🐳 Docker如何与与外界通信?

  • 外部访问容器:通过端口映射,比如将本地主机的32768端口被映射到了容器的80端口;
  • 容器互联:将容器加入自定义的Docker网络来连接多个容器;

Ref:Docker容器间通信方法

🐳 生产中Docker的使用

构建容器服务发布时:

  1. git-clone:下载发布分支代码到本地;
  2. maven-build:执行maven构建脚本,将应用达成jar/war包; image.png
  3. sdk-check:一些依赖,配置检查;
  4. docker-build:执行dockerfile脚本,在基础镜像上进行定制镜像,并上传到仓库; image.png
  5. 基于镜像部署容器; image.png

Kubernetes基础学习

⛵ 什么是Kubernetes?

image.png Kubernetes架构:

  • Master(主节点):用来控制和管理整个集群;
    • 对外提供api服务,提供管理能力;
    • 在生产环境中达到高可用,要配置Master集群;
  • Node(工作节点):
    • Node是k8s集群中的一个工作节点,通常是一个虚拟机或物理机;
    • 定期向Master节点汇报自身节点的资源使用情况;
    • 每个Node上运行着多个Pod,并且包含了运行Pod所需的组件,如Kubelet、Kube-Proxy和容器运行时(如 Docker或containerd);
    • Node相当于Pod的宿主机,提供计算资源(CPU、内存等)和网络连接。 image.png

Node的核心组件kubelet: image.png

Refer:K8s - Kubernetes重要概念介绍(Cluster、Master、Node、Pod、Controller、Service、Namespace)K8s 长什么样子,一文道清它的整体架构

⛵ Kubernetes的最小工作基本单元Pod

image.png Pod在Kubernetes集群中被创建的基本流程如下所示: image.png

⛵ Pod的状态、健康检查

image.png image.png

⛵ 问问AI:Node和Pod的关系?

image.png image.png

万字长文细说部署微服务到阿里云k8s集群

⛵ 生产中Kubernetes的使用

  1. 服务创建时选择具体的k8s集群: image.png
  2. k8s下节点的数量: image.png
  3. 服务容器组页面: image.png