图片
图片
图片
图片
图片
图片
图片
图片
- Docker 客户端(Docker Client):这是用户与 Docker 进行交互的接口。用户通过命令行界面(CLI)或者图形用户界面(GUI)向 Docker 守护进程发送指令,例如创建、启动、停止容器等操作。
例如,用户可以在终端中输入 docker run ubuntu:latest 命令来启动一个基于 ubuntu:latest 镜像的容器。
- Docker 守护进程(Docker Daemon):这是 Docker 架构的核心组件,负责接收并处理来自客户端的请求,管理 Docker 对象,如镜像、容器、网络和数据卷等。
它负责从 Docker Hub 拉取镜像,创建和运行容器,并监控容器的状态。
- Docker 镜像(Docker Image):镜像是一个只读的模板,包含了创建 Docker 容器所需的文件系统和配置信息。
比如,一个 ubuntu 镜像包含了 Ubuntu 操作系统的基本文件和配置。
- Docker 容器(Docker Container):容器是基于镜像创建的可运行实例,它具有独立的文件系统、网络和进程空间。
可以将多个容器基于同一个镜像创建,每个容器都是相互隔离且独立运行的。
- Docker 仓库(Docker Registry):用于存储和分发 Docker 镜像的地方,分为公共仓库(如 Docker Hub)和私有仓库。
许多开发者会将自己创建的镜像推送到 Docker Hub 上供他人使用。
图片
图片
图片
K8s容器技术揭密
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
- Pod 内部通信:
在同一个 Pod 中的容器共享同一个网络命名空间,它们可以通过 localhost 互相通信。
例如,一个 Pod 中有两个容器,一个是 Web 服务器,一个是后端处理程序,它们可以通过 localhost 进行快速和高效的通信。
- Pod 之间通信:
Kubernetes 为每个 Pod 分配一个唯一的 IP 地址,不同 Pod 之间可以通过这些 IP 地址进行通信。
假设一个应用由前端 Pod 和后端数据库 Pod 组成,它们能够通过 Pod 的 IP 地址直接交互数据。
- Service 通信:
Service 为一组具有相同功能的 Pod 提供了一个稳定的访问入口和负载均衡。
比如,有多个相同的 Web 服务 Pod,Service 会将请求均匀地分发到这些 Pod 上。
- Ingress 通信:
Ingress 用于将外部的 HTTP(S) 流量路由到集群内的 Service。
当外部用户访问应用时,Ingress 会根据配置的规则将请求转发到对应的 Service。
- NodePort 通信:
通过在节点(Node)上暴露一个特定的端口,从而允许外部访问到集群内的 Service。
- ClusterIP 通信:
这是一种仅在集群内部可访问的 Service 类型。
图片
图片
图片