Kubernetes 点滴

kubernetes架构与组件

两类节点:Master和Node

Master组件:集群大脑

APIServer

Scheduler

ControllerManager

etcd(kubernetes集群的主数据库)

Ndoe节点上运行:

kubelet

kube-Proxy

Dockerdadmon

kubelet组件,Master和Node之间的桥梁

kube-proxy组件,运行在每个Node上

Pod的生命周期是通过ReplicationController(RC)来管理的

ReplicationController是Kubernetes系统的核心概念,用于定义Pod副本的数量。

在Master内,ControllerManager进程通过RC的定义来完成Pod的创建、监控、启停等操作。

APIServer:提供了资源对象的唯一操作入口,其他所有组件都必须通过他提供的API来操作资源数据,通过对相关的资源数据“全量查询”+“变化监听”,这些组件可以很“实时”地完成相关的业务功能,比如某个新的Pod一旦被提交到APIServer中,controllerManager就会立即发现并开始调度。

ConrollerManager:集群内部的管理控制中心,其主要目的是实现kubernetes集群的故障检测和恢复的自动化工作,比如根据PC的定义完成Pod的复制或移除,以确保Pod实例数符合RC副本的定义,根据Service与Pod的管理关系,完成服务的Endpoints对象的创建与更新;其他诸如Node的发现、管理和状态监控、死亡容器所占磁盘空间及本地缓存的镜像文件的清理工作也是由ControllerManager完成的。

Scheduler:急群中的调度器,负责Pod在集群节点中的调度分配。

Kubelet:负责本Node节点上的Pod的创建、修改、监控、删除等全生命周期管理,同时kubelet定时“上报”本Node的状态信息到APIServer里。

Proxy:实现了Service的代理及软件模式的负载均衡器。

kuberctlgetnodes

kuberctlcreate-fhello-service.yaml--record

kuberctlgetsvc|grephello-service

kuberctldescribesvc/hello-service

curl[ip:port]/hello

kuberctlcreate-fhello-deployment.yaml--record=true

kuberctlgetdeployments

kuberctlgetpods|grephello

kuberctllogshello-deployment-****

kuberctlapply-fhello-deployment.yaml

kuberctlgetpods|grephello

kuberctlrolloutstatusdeployment/hello-deployment

kuberctlrolloutundodeployment/hello-deployment

kuberctlgetnamespace

kuberctlgetpods

kuberctldescribenode<node_name>

kuberctlscalercredis-slave--replicas=3

kuberctlgetendpoints

相关推荐