kubernete

这个世界最伟大的就是思想,人这一特种对这世界的改造都取决于他们独有的思想,他们用思想来创造或改造这个世界。而思想的优越之处在于把事物抽象化,技术的实现就是对现实世界的抽象。人真是太聪明了

kubernete

容器化技术在最近一两年可谓是风生水起,自从docker出世以来就爱到程序界的追棒,而去年google家亲生的kubernete也是更受亲耐,下面通过官网的手来学习记录。

Production-Grade Container Orchestration

Automated container deployment, scaling, and management

这是官网的标语.生产级别的容器编排,自动化进行容器部署、平衡、管理

通俗的说kubernete就是一个容器管理系统,我们的app就运行在这些容器上,官网上说google在kubernete一周运行了上亿的容器。管理这么多的容器,要是传统的模式这么多台服务器该怎么管理呀,真是太解放了。

kubernete集群

kubernete集群是把多台机器抽象成一个独立的单元,并保证集群的高可用性。这样一来我们发布我们的应用的时候不需要指定到某一机器,只要把我们的应用容器化就可以部署在集群中,并不需要关心部署在某台机器上。
kubernete会以高效的方式在集群中发布和调度这些容器

一个集群概念包含两种类型的资源:

  • Master 用来协调各个Node节点
  • Node 运行我们的应用

kubernete cluster

Master 通过API负责与Node间的交互
Node Node可以是一台物理机或是一台虚拟机,每个集群节点上面有一个Kurbletagent负责与Master的通信,节点上需要有负责处理容器操作的工具如:Dockerrkt

1
2
kubectl cluster-info
kubectl get nodes

Node

如果一个节点挂了,这个节点上的Pods会在其它可用的节点上创建

概念

Pod: 可以理解成docker里面的一个运行的容器
ReplicatSet: 管理Pod的一个一个服务,保证Pod的个数
Service: Pod对外的一个抽象概念,一用来为Pod分组,二用来集群外部访问内部Pod提供访问

总的来说,kubernete是一个管理容器的一个平台。通过Master和各Node的节点kubelet通信,并在各节点上发布自己的应用,一个应用理解成deployment,然后它对应一个ReplicatSet,然后生成对应个数的Pod,ReplicatSet管理着Pod的个数,发布后可支持扩展和更新

1
2
3
4
5
6
7
kubectl describe pods
kubectl get pod
kubectl get node
kubectl create
kubectl delte
kubectl expose
kubectl help