Kubernetes笔记
当用户用kubectl创建容器时,是kubectl向apiserver发送一个创建pod的请求,
apiserver会将数据放入etcd存储。scheduler收到未绑定pod资源,通过自身调度算法选择一个合适的node进行绑定,然后响应给apiserver。
kubelet收到分配到自己节点上pod,调用docker api创建容器,然后将容器状态响应给apiserver
controller-manager是负责控制deployment的,而上面例子是直接创建pod,所以不涉及这个组件
一、Kubernetes简介
Kubernetes是一个全新的基于容器技术的分布式架构领先方案,是一个完备的分布式系统支撑平台。
1.1 Service
Kubernetes中Service是分布式集群架构的核心,一个Service拥有如下特征:
(1)拥有唯一指定的名称,如mysql-server
(2)拥有一个虚拟IP(Cluster ip、Service ip、VIP)和端口号。
(3)能够提供某种远程服务能力
(4)被映射到提供这种服务能力的一组容器应用上。
1.2容器与pod
容器具备强大的隔离功能,所以Service提供服务的进程有必要放入容器中进行隔离。为此k8s设计了pod,每个提供服务的容器都包装到相应的pod中,使其成为运行在pod中的容器。
Pod是如何与Service进行通信的呢,pod中的label标签可以让Service定向选择,Service建立时可以通过label Selector (标签选择器) 作用于相应的label的pod。
1.3 Pod