首页 > 代码库 > Kubernetes基本概念

Kubernetes基本概念


Basic knowledge

第一:docker是一款开源的容器,其实这个技术并不新鲜。早期在linux中就有LXC这样的轻量级的虚拟化系统。Docker其实只是换了一种语言来实现而已。Kubernetes意思是航海的舵手,它是docker的一款具有强大功能的编排+监控+灾备+负载管理系统

 

第二:kubernetes是基于google十五年的容器使用经验的总结和最佳实践,是google内部使用的borg系统的开源版本。改善了docker中很多的不足,可以说是与docker互补的一项技术。

 

第三:kubernetes和docker一样是用go语言写的,这就说明它们契合度非常高

 

第四:go语言也是google开源的,大公司就是拽。

 

第五:docker现在是一家公司,以前叫做DotCloud,社区项目叫moby,免费版本叫做

docker CE,企业版本的叫docker EE。

 

更多信息可以戳我

 

element

Replications Controller 复制控制器,它的目的只有一个,那就是保活。Replication Controller确保任何时候Kubernetes集群中有指定数量的pod副本(replicas)在运行

 

Pod 可以看作是容器的再次封装,同一个Pod共享一个namespace。其内部通过localhost进行互相通信

 

Label 标签是一个很先进的概念,就是通过给容器打上不同的标签进行区分,后期也可以通过标签进行识别,从而进行更多的操作

 

Service是定义一系列Pod以及访问这些Pod的策略的一层抽象。Service是通过通过Label找到Pod组。

 

Node

节点可以是物理或者虚拟机器,作为Kubernetes worker,通常称为Minion。每个节点都运行如下Kubernetes关键组件:

Kubelet:是主节点代理。

Kube-proxy:Service使用其将链接路由到Pod,如上文所述。

Docker或Rocket:Kubernetes使用的容器技术来创建容器。

 

Kubernetes Master

集群拥有一个Kubernetes Master。Kubernetes Master提供集群的独特视角,并且拥有一系列组件,比如KubernetesAPI Server。API Server提供可以用来和集群交互的REST端点。master节点包括用来创建和复制Pod的Replication Controller。

 

Architec

kubernetes大概分为5个组件

kube-apiserver:是一个水平设计的控制平台,对外暴露api

etcd:是一个先进的KV存储,提供后端的存储功能,类似的还有zookeeper

kube-scheduler:用于根据外部访问来调度

kube-controller-manager:管理kubelet,运行在管理节点上,用于处理集群日常任务的后台线程

原文翻译

1、节点控制:负责节点下线时的通知和应答

2、复制控制:负责维持在复制控制器中所定义的pods正确数量

3、端点控制:填充端点对象(加入服务,加入pods)

4、服务账户和令牌控制:

kubelet:node的管理插件,用来采集node上的相关信息

kube-proxy:用于node上的网络访问

结构如下图:其中的cAdcisor是用于Pod内部的监控。


技术分享

本文出自 “NB小菜鸟” 博客,请务必保留此出处http://309692348.blog.51cto.com/728319/1929966

Kubernetes基本概念