上篇都是通过命令来创建deployment,本篇主要讲述通过yaml文件来创建。在实际应用中都是通过yaml文件来部署服务。
1、在c:/minikube目录编写myhello-deployment.yaml如下:
apiVersion: apps/v1 #版本
kind: Deployment #创建资源的类型
metadata: #资源的元数据
name: my-hello #资源的名称,是元数据必填项
spec: #期望状态
replicas: 3 #创建的副本数量(pod数量),不填默认为1
selector: #选择器
matchLabels:
app: my-hello
template: #定义pod的模板
metadata: #pod的元数据
labels: #labels标签,必填一个
app: my-hello
spec: #pod的期望状态
containers: #容器
- name: my-hello #容器名称
image: my-hello:v1 #镜像

2、先用docker生成my-hello:v1的镜像文件,同上篇。执行kubectl apply -f myhello-deployment.yaml命令创建deployment、rs和pod。
在这里插入图片描述
3、执行kubectl logs POD-NAME查看输出日志。
在这里插入图片描述
4、重新编译v2版本的镜像,这个过程同上篇,执行kubectl set image deploy/my-hello my-hello=my-hello:v2命令更新版本为v2。
在这里插入图片描述
5、查看输出日志已升级。
在这里插入图片描述
6、回滚到上一版本v1
在这里插入图片描述
在这里插入图片描述
7、查看输出日志已回退到v1。
在这里插入图片描述
8、执行kubectl delete -f myhello-deployment.yaml命令删除deployment。
在这里插入图片描述
这个例子很好的演示了deplayment管理版本与发布的机制。简单说,Deployment 只负责管理不同版本的 ReplicaSet,由 ReplicaSet 来管理具体的 Pod 副本数,每个 ReplicaSet 对应 Deployment template 的一个版本。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐