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