1. 背景
- 一开始使用物理机部署项目, 但物理机成本较高
- 为了节约成本和资源隔离, 开发了虚拟机技术, 但是其启动慢占用空间大, 非常浪费资源
- 为了解决上述问题, 容器化技术应运而生. 启动快占用小. Docker 是应用最为广泛的容器技术
- 随着微服务技术的广泛应用,部署项目容器的数量越来越多,由此衍生了管理容器的重大问题。Google 在 2014 年开源了容器编排引擎 Kubernetes,用于管理容器化应用 程序的部署、规划、和扩展,使我们应用的部署和运维更加方便。
基础概念
Kubernetes 来自于希腊语,含义是舵手或领航员,简称 k8s。是一种基于GO开发的开源的容器编排管理工具. 类似的容器编排工具有:Docker swarm、Apache Mesos 等
Pod
在 Kubernetes 集群中,Pod 是 k8s 管理的最小单位,它是一个或多个容器的组合。 在 Pod 中,所有容器都被统一安排和调度。 Pod 中的容器有两个特点。
- 共享网络:Pod 中的所有容器共享同一个网络命名空间,包括 IP 地址和网络端口。
- 共享存储:Pod 中的所有容器能够访问共享存储卷,允许这些容器共享数据。
- 在常见的微服务中, 往往会部署多个微服务. 而为了保证高可用, 往往需要部署一个以上具有相同功能的微服务. 但是如果让这两个接口能够同时生效的话往往需要nginx该改微服务进行反向代理, 而Pod的出现则解决了该问题, 同一个pod来存放一个以上相同业务功能的容器, 并且共享同一网络和存储