您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 浅谈容器集群管理-从mesos到kubernetes
TenXCloud时速云-杨乐(Jack)Agenda容器集群管理概述Kubernetes和MesosKubernetes架构理解服务编排私有集群容器集群管理概述容器集群管理概述Docker部署单机容器的打包,迁移大量容器,跨机通信生产环境需求:-多机集群-资源调度-可扩展性-负载均衡-虚拟网络-微服务化MachineAMachineBMachineCNetwork&Discovery(containertocontainer)资源调度负载均衡易扩展性容器集群管理概述Mesos+Docker-Apache下的开源分布式资源管理框架-加州大学伯克利分校的AMPLab开发-在Twitter得到广泛使用-Master-slaveKubernetes-灵感源于Google内部集群Borg管理系统-2014-6开源-Golang开发-Master-slave模式-吸收了BorgOmega的优点和教训-增加namespace,label等管理功能容器集群管理概述Mesos(+docker)+Marathon资源调度-消除硬件差异,DRF,多种framework,scheduler,executorMarathonFramwork基于mesos来控制长时间运行的服务。生命周期-App-task健康检查-HealthChecks实例伸缩-Instances服务发现-Mesos-dns负载均衡-Haproxy容器集群管理概述Kubernetes容器集群管理器,专门为解决容器集群问题资源调度-Kube-scheduler(调度算法可plugin)生命周期-ReplicationController健康检查-pod-livenessProbe实例伸缩-ReplicationController-replicas服务发现-Service/SkyDns负载均衡-Kube-proxy/portalnet(支持UDP)Kubernetes和MesosKubernetes和Mesos愿景相同打造分布式集群,易扩展,资源调度,实例生命周期管理等Mesos适用于多种框架和应用,分布式系统内核,构建一个巨大的静态的计算集群,资源池,Hadoop、Kafka、Spark等众多framework作为数据处理插件Kubernetes专门针对容器集群,轻量化、模块化、便携以及可扩展,并快速的启动、移植,服务编排,资源调度,虚拟网络解决方案等组合方式Kubernetes-mesosKubernetes做为mesosframeworkKubernetes和MesosKubernetes-MesosKubernetes和MesosKubernetes-MesosNetworkKubernetes架构理解Kubernetes架构理解Kubernetes组件:etcd(key/value数据库,数据一致性,投票算法,leader-flower)kube-apiserver(RESTAPIrunninginmaster)kube-scheduler(资源调度,为Pod分配主机资源)kube-controller-manager(主机注册,rc伸缩等)kubelet(节点管理,资源信息采集,对接docker)kube-proxy(实现SDN网络,服务发现,服务代理)flanneld(可选,多种网络模块,路由,隧道等)Kubernetes架构理解KubernetesKubernetes架构理解Kubernetes基本元素:Pod(最小部署单元,容器集合,共享网络)ReplicationController(pod生命周期控制器,scale资源伸缩)Service(抽象服务出口,通过proxy对多个容器负载均衡,内部服务发现)Labels(标签,用于分类,查询筛选,规则有用户指定)PodSharedNet1-ncontainerscontainersService(Loadbalancer)ReplicationControllerPodSharedNet1-ncontainerscontainersScalenumberofpodKubernetes架构理解Pod1.1-n个containers,容器的集合2.共享Net,Ipport等3.以localhost方式对多个软件(Container)进行细致组合mysqlPodwebsitenginx33068080localhostMappingOutasServiceEndpointKubernetes架构理解ReplicationController1.控制Pod实例副本个数2.容器生命周期3.重启/重建失败容器用labels来定位pod,设定replica来改变pod个数Kubernetes架构理解Service1.抽象服务出口2.集群内服务发现类似Dockerlink,跨机且集群内有效,由namespace隔离3.容器服务的负载均衡kube-proxy(iptables)实现,可指定出口或多出口支持外部loadbalancer接入(GCE等cloudprovider或自定义)Kubernetes架构理解AccesstoServicePod层次,共享IP:PORTService层次,环境变量Kubernetes架构理解Labels元素上绑定的键值对(key/value),对pod,rc,service进行筛选分类.用户按需求自行定义,灵活,多维度例:project=dashboard=allservices/podname=mysql=Mysqlservice/podPHP-serviceLabel:name=php,project=dashboardMysql-serviceLabel:name=mysql,project=dashboardMysql-podLabel:name=mysql,project=dashboardPHP-serviceLabel:name=php,project=dashboardKubernetes架构理解kubernetes网络模型:集群中所有container可以直接和其他任意container通信,不通过NAT。任意node主机可以和任意container通信,不通过NAT。任意container自己本身拥有的ip,和外界container看到它的ip一致。IP-per-pod模式:一个pod内的containers可以共享一个ip和一套portsTip:内网给每个pod分配IP内网分配的ip可能因pod的替换而变动,Service环境变量或者dns方式。Kubernetes架构理解Kubernetes内网部署DMZHost/RouterK8sNodeKube-Proxy/HaproxyNATK8sNodeK8sNodeFlanneloverlaynetwork/docker0/PortalNet(SDN)K8sMasterWebConsoleServer网络出口服务出口服务编排服务编排服务编排以服务构建应用各服务独立部署,独立扩展服务多语言开发服务间轻量级交互Kubernetes细颗粒进程可统一放入Pod服务发现,集群内”Link”松耦合、高内聚服务编排MysqlwebserverEventLogger(influxdb,crontab定期清理过时事件日志)mysqlwebUI+NginxinluxdbcrontabPod(EventLogger)servicePodservicePodservice私有集群私有集群托管用户私有主机,多主机形成私有集群方便用户管理和整合自己的实体机、虚拟机、云主机等物理资源开发者不需要考虑机器和资源的问题,更专注于自己的应用、编排集成提供一致的服务面板,持续集成,镜像服务,容器监控等,形成混合云私有集群架构模型图私有集群TenxCloud平台上创建私有集群1.创建集群节点-集群的master端2.添加自有主机(slave)到集群管理中THEENDTHANKYOU
本文标题:浅谈容器集群管理-从mesos到kubernetes
链接地址:https://www.777doc.com/doc-3684051 .html