返回 导航

Docker / K8s

hangge.com

K8s - Kubernetes使用详解1(运行Deployment样例1:使用命令创建资源)

作者:hangge | 2019-07-26 08:10
    Kubernetes 通常不会直接创建 Pod,而是通过 Controller 来管理 Pod 的。为了满足不同的业务场景,Kubernetes 提供了多种 Controller,包括 DeploymentReplicaSetDaemonSetStatefuleSetJob 等。
   下面我先介绍下其中最常用的 DeploymentKubernetes 支持两种创建资源的方式:命令和配置文件。本文先使用前者。

一、运行 Deployment(使用命令方式)

1,开始运行

执行下面命令将部署包含两个副本的 Deployment,名字叫 nginx-deployment,容器的 image nginx:1.7.9
kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2

2,查看运行状态

(1)执行如下命令可以以查看 nginx-deployment 的状态,这里显示两个副本正常运行。
kubectl get deployment

(2)执行如下命令可以查看 nginx-deployment 的详细信息。
kubectl describe deployment nginx-deployment
由于 Deployment 是通过 ReplicaSet 来管理 Pod,可以看到这里创建了一名为 nginx-deployment-578fb949d8ReplicaSet

(3)执行如下命令可以显示当前所有的 ReplicaSet,其中 nginx-deployment-578fb949d8 的两个副本已经就绪:
kubectl get replicaset

(4)执行如下命令可以查看 nginx-deployment-578fb949d8 的详细信息。
kubectl describe replicaset nginx-deployment-578fb949d8
可以看到此 ReplicaSet 是由 nginx-deployment 创建,并且其创建了两个副本 Pod

(5)执行如下命令显示当前所有的 Pod,可以看到目前两个副本 Pod 都处于 Running 状态:
kubectl get pod

(6)执行如下命令可以查看 nginx-deployment-578fb949d8-nbn8b 这个 Pod 的详细信息。
kubectl describe pod nginx-deployment-578fb949d8-nbn8b
其中 Controlled By 指明此 Pod 是由 nginx-deployment-578fb949d8 这个 ReplicaSet 创建。而 Events 中 记录了 Pod 的启动过程。如果操作失败(比如 image 不存在),也能在这里查看到原因。

3,执行过程总结

上面样例我们部署了包含两个副本的 Deployment,整个执行流程如下:
  • 用户通过 kubectl 创建 Deployment
  • Deployment 创建 ReplicaSet
  • ReplicaSet 创建两个 Pod
从上图也可以看出,对象的命名方式是:子对象的名字 = 父对象名字 + 随机字符串或数字。

附:伸缩与滚动更新

如果需要对应用副本进行伸缩(Scale)或者使用镜像的更新,可以参考我之前写的这篇文章:
评论

全部评论(0)

回到顶部