1. Kubernetes 入门
基础概念
1. Node
一个节点(Node)就是一个物理机或者虚拟机,在一个节点上我们可以运行一个或多个 Pod。
2. Pod
Pod 是 Kubernetes 调度的最小单位。一个 Pod 是一个或多个应用容器的组合,这意味着一个 Pod 能运行多个容器。
最佳实践是,一个 Pod 只运行一个容器,这样可以实现应用程序的解耦和扩展。
3. Service
Service 可以将 Pod 组合成一个服务,这个服务可以通过 Service 的 IP 和端口访问到。
4. Ingress
Ingress 是对外暴露服务的一种方式,它可以将外部的请求转发到集群内部的 Service 上。
5. ConfigMap
ConfigMap 可以将配置信息以键值对的形式保存起来,然后在 Pod 中使用。
6. Secret
Secret 可以将敏感信息以键值对的形式保存起来,然后在 Pod 中使用。
7. Volume
Volume 可以将 Pod 中的数据持久化到磁盘上。
8. Deployment
Deployment 可以将 Pod 进行编排,它可以实现 Pod 的滚动升级和回滚。
9. StatefulSet
StatefulSet 可以将 Pod 进行编排,它可以实现部署有状态的 Pod。
Kubernetes 架构
Kubernetes 有一个 Master 节点和多个 Node 节点组成。
为了使 Node 能够正常对外提供服务,Node 通常还需要三个组件:kubelet、kube-proxy 和容器运行时(container runtime)。
常见的容器运行时如下:
- Docker Engine
- containerd
- CRI-O
- Mirantis Container Runtime
kubelet 是 Kubernetes 的一个核心组件,它运行在每个 Node 上,负责管理 Pod 和容器。它也会定期汇报 Node 的状态,并从 apiserver 中获取 Pod 的调度更新信息。
k-proxy 是 Kubernetes 的一个核心组件,负责提供负载均衡和代理服务。