K8s - Kubernetes使用详解1(运行Deployment样例1:使用命令创建资源)
Kubernetes 通常不会直接创建 Pod,而是通过 Controller 来管理 Pod 的。为了满足不同的业务场景,Kubernetes 提供了多种 Controller,包括 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等。
(2)执行如下命令可以查看 nginx-deployment 的详细信息。
(3)执行如下命令可以显示当前所有的 ReplicaSet,其中 nginx-deployment-578fb949d8 的两个副本已经就绪:
(5)执行如下命令显示当前所有的 Pod,可以看到目前两个副本 Pod 都处于 Running 状态:
(6)执行如下命令可以查看 nginx-deployment-578fb949d8-nbn8b 这个 Pod 的详细信息。
下面我先介绍下其中最常用的 Deployment。Kubernetes 支持两种创建资源的方式:命令和配置文件。本文先使用前者。
一、运行 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-578fb949d8 的 ReplicaSet。
(3)执行如下命令可以显示当前所有的 ReplicaSet,其中 nginx-deployment-578fb949d8 的两个副本已经就绪:
kubectl get replicaset
(4)执行如下命令可以查看 nginx-deployment-578fb949d8 的详细信息。
kubectl describe replicaset nginx-deployment-578fb949d8
可以看到此 ReplicaSet 是由 nginx-deployment 创建,并且其创建了两个副本 Pod。
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。
从上图也可以看出,对象的命名方式是:子对象的名字 = 父对象名字 + 随机字符串或数字。