文档章节

Kubernetes 设计概要(非完整版)

深蓝苹果
 深蓝苹果
发布于 2014/06/11 11:45
字数 786
阅读 1080
收藏 9

Kubernetes 设计概要

(原文:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/DESIGN.md)


概述

---------------------------------

* Kubernetes 构建于 Docker之上,是基于container集群的调度服务。用户在需要 container 时,会向 Kubernetes 发起请求,Kubernetes 会从worker节点中选取合适的container回应。

* 随着基于container的应用和系统逐渐扩张,已经出现很多便捷的container工具,它们的工作原理大同小异(Kubernetes也不例外)

* 更进一步看 Kubernetes 的架构时,我们更倾向将其作为 worker节点 和 service 的 master 来看


关键概念:Container Pod

---------------------------------

* 不同于 Docker 基于独立的 container,Kubernetes 是基于 pod

* pod 是一组 containers,被调度分配在同一个物理节点之上

* 除上之外,一个 pod 还拥有相同的 IP 、存储 和 端口映射


关键概念:Lables

---------------------------------

* pods 通过 labels 进行组织,每个pod都可以有多个lables(key=>value形式)

* label机制是 services 和 replicationControllers 工作的基础(其操作单元)

* label可以叠加,以集合的形式使用,

如:

有10个节点拥有label{tier=frontend,stack=prod},但想在replicationController 中分为两类

可以其中(假如)9个节点为{tier=frontend,stack=prod,canary=no}

另外1个节点为{tier=frontend,stack=prod,canary=yes}

则可在 replicationController 中分别控制 



Kubernetes 节点

---------------------------------

* Kubernetes 节点上运行 Docker containers, Docker 负责管理下载镜像、运行 container 等细节

* Kubernetes 


Kubelet

* Kubelet 是逻辑中继器,是 Compute Engine image 的一部分

* Kubelet 以 container 为单位,每个 conatiner manifest(manifest示例:https://developers.google.com/compute/docs/containers/container_vms#container_manifest)

  为一个 YAML 文件,在其中描述了 pod 的属性

* Kubelet 包含一簇的 manifest,在其中描述了container/pod的工作机制,并且 Kubelet 要负责保证 containers 依照 manifest 的定义被启动和执行

* manifest 有以下提供方式

- File:通过命令行传入,每20秒检查一次

- HTTP endpoint:作为参数manifest,也是每20秒检查一次

- etcd server:Kubelet 可监察 etcd 上的指定文件,对manifest的更改可以更快的发现并同步

- HTTP server:Kubelet 提供了HTTP接口以提交manifest


Kubernetes Proxy

* 每个worker节点上运行了一个network proxy

* proxy 支持 TCP流转发 或 round-robin 转发


Kubernetes Master

---------------------------------

* etcd

- 稳定可靠地存储所有 master 的状态

* Kubernetes API Server

- pod:每个pod都在API层有表现

- service:service是proxy的配置单元,service会被命名,并指向一个或多个pod

- replicationController:一个复制controller 带有一个模板,并保证时刻都有一定数量的复制器在运行

- API提供的其他功能

-- 将pod调度到worker节点上,目前的调度器实现很简单

-- 维护pod和service配置的一致性

* Kubernetes Controller Manager Server

- repliationController 配置项不是必须的

- repliationController 是基于pod

- 为了更好的层次,repliationController 的逻辑实际由另一个server负责,这个新server会监测etcd对repliationController 的操作,然后用 Kubernetes API 去实施 repliation 


Network Model

---------------------------------

* Kubernetes 扩展了 Docker 的网络模型,为使得每个 pod 在共享的网络中只有一个 IP,并能通过这个IP和其他物理机/container无障碍的通信


© 著作权归作者所有

深蓝苹果
粉丝 33
博文 95
码字总数 32473
作品 0
深圳
程序员
私信 提问
云+社区技术沙龙——容器服务最佳部署与应用实践

活动简介: 从去年至今,容器、Kubernetes话题的热度就持续不减,有人说基于容器 +Kubernetes 的新型 PaaS 将会成为云计算的主流;有人说2017年是Kubernetes 的胜利之年。而包括谷歌、Azure...

极客邦Geekbang_Event
2018/06/14
34
0
云+社区技术沙龙——容器服务最佳部署与应用实践

活动简介: 从去年至今,容器、Kubernetes话题的热度就持续不减,有人说基于容器 +Kubernetes 的新型 PaaS 将会成为云计算的主流;有人说2017年是Kubernetes 的胜利之年。而包括谷歌、Azure...

极客邦Geekbang_Event
2018/06/14
10
0
化敌为友,Docker 宣布拥抱 Kubernetes

在 DockerCon EU 2017 大会上,Docker 官方宣布支持 Kubernetes。过去几年,Kubernetes 得到了包括Google、Huawei、Microsoft、IBM、AWS、Rancher、Redhat、CoreOS 等企业的一致认可。前几日...

达尔文
2017/10/20
3.1K
9
Kubernetes 设计概要

概述 Kubernetes 在Docker上构造集群容器调度服务,使用户可以请求一个Kubernetes集群来运行容器集。系统将自动挑选一个工作节点来运行这些容器。 随着基于容器的应用和系统增长,一些帮助(...

oschina
2014/06/11
3.8K
1
Kubernetes!我要用这样的姿势拥抱你

活动报名链接:https://cloud.tencent.com/developer/salon/activity-1076?channel=OSC 从去年至今,容器、Kubernetes话题的热度就持续不减,有人说基于容器 +Kubernetes 的新型 PaaS 将会成...

腾讯云开发者社区
2018/06/14
213
0

没有更多内容

加载失败,请刷新页面

加载更多

MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
29分钟前
3
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
39分钟前
5
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
47分钟前
5
0
Flask-admin Model View字段介绍

Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = 'admin/model/list.html' 修改显......

dillonxiao
今天
5
0
从AnnotationTransactionAspect开始rushSpring事务

0. Spring 事务 with LTW 0.1. Spring 事务 With LTW的原因: Pure Proxy-base mode有缺陷,其失效原因分析及使用方法及运行机制(LoadTimeWeaverBeanDefinitionParser和 AspectJWeavingEnable......

Aruforce
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部