最近实现微服务的几个热门框架是 Dubbo, Spring Cloud 以及 Kubernetes等。而 Kubernetes 因为它对容器应用的自动化部署、扩展以及管理地全面支持,成为微服务框架最为热门的选择。下面是我总结的几个 Kubernetes 的核心组件,了解这些核心组件可以为我们更快、更全面地掌握 Kubernetes 框架打下坚实的基础。
这些组件是:
- Node
- Pod
- Volumes
- Service
- Ingress
- ConfigMap
- Secrets
- Deployment
- StatefulSet
上面这张图简略展示出使用 Kubernetes 来部署一个简单应用的情形。我们可以通过这张图来理解本文中提到的 9 个核心组件的概念。下文中我们会用 k8s 来简称 Kubernetes。
Node 可以理解为虚机。
Pod 是运行在虚机中的容器,这些容器可以是 Docker, containerd, 或者CRI-O等。Pod 可以运行在不同的 Node 中,Pod 通过 Deployment 来部署,Pod 没有固定的 IP。Pod 可能会根据需要增加或者减少。
Service 是 Pod 对外提供服务的窗口,它有固定的 IP,k8s 通过 service 来跟不同的应用通信,Service 由一组 Pod 组成。
Ingress,一般来说外部客户端不可以直接访问 k8s 内部的 service