Using kubectl to Create a Deployment

版权声明:转载请注明出处 https://blog.csdn.net/Lee_Suoer/article/details/85197217

如果你有一个正在运行的kubernates集群,那么你可以在它上面部署你的容器应用。你要创建一个deployment配置,它是来告诉kubernates如何创建并且更新你的应用。一旦你创建了一个deployment,kubernates master就会调度应用实例到集群中的一个独立的节点上。

一旦应用实例被创建了,那么kubernates deployment controller 就会持续的监控这些实例。如果node上的实例关闭或者删除了,那么deployment controller就会替换掉它。这为处理机器故障或者维护提供了一个自我修复的机制

在以前,通常会使用安装脚本来开启应用,但是在应用发生故障的时候不会重新恢复。为了能够创建应用实例并且保持他们能跨节点运行,kubernates deployment 提供了一种完全不同的应用管理方式。

f

Viewing Pods and Nodes

当创建一个deployment的时候,kubernates 会创建一个pod来主办你的应用实例。pod是kubernates抽象出来的,它代表一组一个或者多个的应用容器和这些容器的共享资源,包括:

共享存储卷、网络(独立的集群ip)、如何去运行每个容器的信息(例如容器镜像版本,指定使用哪个端口)

Pod为特定于应用程序的“逻辑主机”建模,可以包含相对紧密耦合的不同应用程序容器。例如一个pod可能会同时包含一个app的容器和另一个不同的容器。pod里的容器享有ip地址和端口,联合定位和调度,在同一个node的共享context中运行。

在kubernates平台里pods是原子的一个单元。当创建一个deployment的时候,这个deployment会创建带有容器的pods,每一个pod都会关联到被调度的node上,并且直到pod停止或者被删除。如果node故障了那么这个上的pods就会被集群上其他的可用的node来调度

pod是运行在node上的。node是kubernates里工作的机器,可能是虚拟的或者物理的机器。每一个node都被master管理。一个node可以有多个pods,kubernates master可以自动通过跨集群中的node来调度pods,也可以控制每个node可用的资源。

每个kubernates node运行至少包括:

kubelet:负责处理master和node之前的通信,管理运行在机器上的pods

运行时的container: 负责从远程拉取镜像,解压容器,运行应用程序。

猜你喜欢

转载自blog.csdn.net/Lee_Suoer/article/details/85197217
今日推荐