《Kubernetes 集成外部服务实践》- 第三期 Docker 技术沙龙主题剖析系列 [第一篇] - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
Tenxcloud10
V2EX    云计算

《Kubernetes 集成部服务实践》- 第三期 Docker 技术沙龙主题剖析系列 [第一篇]

  •  
  •   Tenxcloud10 2016-03-16 15:50:21 +08:00 2152 次点击
    这是一个创建于 3546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    分享嘉宾:柴宗三,亚信大数据云平台部高级研发工程师。目前负责亚信 DataFoundry 大数据 PaaS 云平台。本文源自于 3 月 12 号《第三期 Kubernetes 沙龙》四个 Topic 之一,是《第三期 kubernetes 沙龙主题剖析系列第一篇》。本文对如何将后端服务( backend service )接入kubernetes进行了比较详尽的介绍。

    Part I. Kubernetes 简介

    Kubernetes 不同组件的交互是异步的,不同组件负责不同的功能模块。 Kubernetes 集群目前为单 master 结构,一般情况下 master 节点上运行 APIServer 、 kube-controller-manager 、 kube-scheduler 、 etcd , node 节点上运行 kubelet 、 kube-proxy 、 flannel 。 Etcd 和 flannel 用于网络管理,不是 kubernetes 本身的组件,这里不做介绍。虽然 k8s 是单 master 结构,但是 master 的宕机并不会导致导致集群应用 service unavailable ,只是暂时无法从管理层面对容器应用进行操作。

    APIServer ( master 组件)的功能是作为集群的 Master ,提供集群管理的 API ,接收客户端的 REST 请求,读写 etcd 中的数据。
    kube-controller-manager ( master 组件)监听 Replication Controller 的变化,并创建对应的 Pod ,使其达到期望的运行状态。
    kube-scheduler ( master 组件)根据节点的资源和限制条件将 pod 分配给特定 slave 节点的 kubelet 。
    Kubelet ( node 组件)作为 daemon 运行在每个 slave 节点上,用来维持节点上的容器,保持与 APIServer 、 etcd 的数据同步。 Kubelet 默认集成 cadvisor 组件,用于搜集主机和容器的监控数据。
    kube-proxy ( node 组件)用于接收打给 service 的流量,根据 podSelector 分发给特定的 backend pods 。如果配置了 service 的 external endpoint ,则会将请求分发给外部服务。

    Part II. 将外部服务接入 kubernetes

    backend service ,即后台服务,具有持久化、插件化、服务化的特点。对于 PaaS 平台,其 backend service 还要满足四个需求:需求多样、服务共享、按需分配、开箱即用。为了满足 PaaS 平台的这些需求,必须对 backend service 做一些规范规范。对此,亚信的 PaaS 平台采用了 CloudFoundry 的规范(如下)。每个 backend service 都会暴露自己的 REST API 供其它服务调用。通过 REST API 的方式,极大方便了 Resource Register 、 Controller Handler 、 Api Router 、 CLI 的实现。

    alt 文本

    Backend service(后台服务)与 kubernetes 通过两种方式集成。第一种,每个 backend service 作为 Pod 中的一个 container 运行在 kubernetes 中,不同的后端服务可以使用 Pod 级别的编排相互串联起来。 Backend service 的 REST API 通过 service 映射到外部,对外提供服务。为了保持服务的持久性,不能采用本地存储,建议将分布式文件系统的块挂载到后端服务对应的 Pod 上。第二种方式, backend service 作为一个独立的服务,与 kubernetes 集群分开。在 kubernetes 集群中创建 service ,将后台服务的访问方式设置到 service 的 external endpoint 中。

    Part III. 访问 REST API

    无论后端服务在 kubernetes 集群中作为 Container 运行,或者处于 kubernetes 集群之外,都通过 kubernetes 的 service 做请求分发。 Kubernetes 的 Service 本身非常灵活,可以选择暴露到外网,或者只是在内网访问。同时 Service 具备 load balance 功能,如果后端服务独立于 kubernetes 集群,那么可以充当简化版的 haproxy 使用。

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2513 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 10:39 PVG 18:39 LAX 02:39 JFK 05:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86