ZWEI

Time flies.

1. Scheduler简介

Scheduler负责Pod调度。在整个系统中起”承上启下”作用,承上:负责接收Controller Manager创建的新的Pod,为其选择一个合适的Node;启下:Node上的kubelet接管Pod的生命周期。

Scheduler:

1)通过调度算法为待调度Pod列表的每个Pod从Node列表中选择一个最适合的Node,并将信息写入etcd中

2)kubelet通过API Server监听到kubernetes Scheduler产生的Pod绑定信息,然后获取对应的Pod清单,下载Image,并启动容器。

阅读全文 »

1 卸载老版本Docker

1
2
3
4
5
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine

阅读全文 »

1. Kubernetes Controller Manager简介

Controller Manager作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。

阅读全文 »

1. cAdvisor简介

​ cAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务的端口,默认为4194。可以通过浏览器<Node_IP:port>访问。项目主页:http://github.com/google/cadvisor。

阅读全文 »

1. Dockerfile的说明

dockerfile指令忽略大小写,建议大写,#作为注释,每行只支持一条指令,指令可以带多个参数。

dockerfile指令分为构建指令和设置指令。

  1. 构建指令:用于构建image,其指定的操作不会在运行image的容器中执行。
  2. 设置指令:用于设置image的属性,其指定的操作会在运行image的容器中执行。
阅读全文 »

1. Docker的总架构图

docker是一个C/S模式的架构,后端是一个松耦合架构,模块各司其职。

  1. 用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。
  2. Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求;
  3. Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。
  4. Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动graphdriver将下载镜像以Graph的形式存储;
  5. 当需要为Docker创建网络环境时,通过网络管理驱动networkdriver创建并配置Docker容器网络环境;
  6. 当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver来完成。
  7. libcontainer是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。
阅读全文 »

1. API Server简介

k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。

kubernetes API Server的功能:

  1. 提供了集群管理的REST API接口(包括认证授权、数据校验以及集群状态变更);
  2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd);
  3. 是资源配额控制的入口;
  4. 拥有完备的集群安全机制.
阅读全文 »

开放分布式系统追踪

分布式运维系统的挑战

开放和工程团队因为系统组件水平扩展、开放团队小型化、敏捷开放、CD(持续集成)、解耦等各种需求,正在使用现代的微服务架构替换老旧的单机系统。 也就是说,当一个生产系统面对真正的高并发,或者解耦成大量微服务时,以前很容易实现的重点任务变得困难了。过程中需要面临一系列问题:用户体验优化、后台真实错误原因分析,分布式系统内各组件的调用情况等。

阅读全文 »

Pod限额(LimitRange)

ResourceQuota对象是限制某个namespace下所有Pod(容器)的资源限额

LimitRange对象是限制某个namespace单个Pod(容器)的资源限额

LimitRange对象用来定义某个命名空间下某种资源对象的使用限额,其中资源对象包括:PodContainerPersistentVolumeClaim

阅读全文 »

Knative 是什么

Knative 基于Kubernetes的平台,用来构建、部署和管理现代serverless工作负载。
该框架试图将开发云原生应用在三个领域的最佳实践结合起来,这三个领域指的是构建容器(和函数)、为工作负载提供服务(和动态扩展)以及事件。
Knative是由谷歌与Pivotal、IBM、Red Hat 和SAP紧密协作开发的。

阅读全文 »
0%