Kubernetes微服务实战
上QQ阅读APP看书,第一时间看更新

1.3.2 数据平面

数据平面是集群中将容器化工作负载转为Pod运行的节点的集合。数据平面和控制平面可以共享物理机或虚拟机资源,当你运行单节点集群(例如Minikube)时,就会发生这种情况。然而,在生产就绪的部署中,数据平面通常是独立的节点。Kubernetes会在每个节点上安装一些组件以进行Pod的通信、监控和调度,这些组件包括kubelet、kube proxy和容器运行时(例如Docker守护进程)。

1.kubelet

kubelet是Kubernetes的代理,它负责与API服务器进行通信,并运行和管理在节点上的Pod。以下是kubelet的一些作用:

·从API服务器下载Pod密钥。

·挂载存储卷。

·通过容器运行时接口(Container Runtime Interface,CRI)运行Pod容器。

·报告节点和Pod的状态。

·探测容器的状态。

2.kube proxy

kube proxy负责节点的网络连接,它充当服务的本地前端,并且可以转发TCP和UDP数据包。它通过DNS或环境变量来发现服务的IP地址。

3.容器运行时

Kubernetes最终还是运行容器,即使它们是按Pod进行组织的。Kubernetes支持不同的容器运行时。最初,Kubernetes仅支持Docker,现在Kubernetes通过基于gRPCCRI接口运行容器。图1-2所示为容器运行时。

图1-2 容器运行时

每个实现CRI的容器运行时都可以在由kubelet控制的节点上使用。

4.kubectl

kubectl是使用Kubernetes过程中应该非常熟悉的工具。它是Kubernetes集群的命令行界面(CLI)。在本书中,我们将广泛使用kubectl来管理和操作Kubernetes。以下是通过kubectl可以完成的部分功能:

·集群管理

·部署

·故障排除和调试

·资源管理(Kubernetes对象)

·配置和元数据

只需键入kubectl即可获取命令的完整列表,然后键入kubectl<command>--help可获取有关特定命令的更多详细信息。