前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【K8s】下的kubectl的Deployment部署Nginx

【K8s】下的kubectl的Deployment部署Nginx

作者头像
Xiongan-桃子
发布2023-06-10 17:19:54
6441
发布2023-06-10 17:19:54
举报
文章被收录于专栏:桃子小白

部署Nginx服务

简介:使用Deployment实现其滚动更新管理。

创建 Deployment

在 master 节点创建/labfile/deployfile 目录,用于保存配置文件。后续创建deployment 的 yaml 文件保存在此处。

代码语言:javascript
复制
[root@master ~]# mkdir labfile
[root@master ~]# cd labfile/
[root@master labfile]# mkdir deplofile
[root@master labfile]# cd deplofile/
[root@master deplofile]# vim nginx-dy.yaml
//以下内容为deployment文件
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-dy
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

部署该 nginx-dy

代码语言:javascript
复制
[root@master deplofile]# kubectl apply -f nginx-dy.yaml 
deployment.apps/nginx-dy created

查看详细信息、创建结果和replicaset

已经创建好:

弹性伸缩 Deployment

编辑之前创建的nginx-dy.yaml,将副本数量修改5

应用变更后的yaml文件

代码语言:javascript
复制
[root@master deplofile]# kubectl apply -f nginx-dy.yaml 
deployment.apps/nginx-dy configured
[root@master deplofile]# kubectl get pod

滚动升级 deployment

复制ng原版为两个新版本

代码语言:javascript
复制
[root@master deplofile]# cp nginx-dy.yaml nginx-dy-v2.yaml 
[root@master deplofile]# cp nginx-dy.yaml nginx-dy-v3.yaml

进行滚动更新

代码语言:javascript
复制
[root@master deplofile]# kubectl apply -f nginx-dy-v2.yaml --record

查看更新状态,上为更新前版本

查看replicaset,看到一个新的,里面有5个pod,原有的pod不存在了

查看deployment更新事件

更新到v3版本

代码语言:javascript
复制
[root@master deplofile]# kubectl apply -f nginx-dy-v3.yaml --record

查看deployment的更新记录

代码语言:javascript
复制
[root@master deplofile]# kubectl rollout history deployment nginx-dy

查看历史版本 2 的详细信息

代码语言:javascript
复制
[root@master deplofile]# kubectl rollout history deployment nginx-dy --revision=2

回滚到历史版本2

代码语言:javascript
复制
[root@master deplofile]# kubectl rollout undo deployment nginx-dy --to-revision=2

可以看到已经回滚到了版本2

删除deployment

代码语言:javascript
复制
[root@master deplofile]# kubectl delete deployment nginx-dy

实训

查看deployment信息

ymal文件搭建httpd

通过 yaml 文件创建一个 deployment,有如下要求:

  1. 使用 httpd:2.4
  2. 4副本
代码语言:javascript
复制
[root@master deplofile]# vim httpd-v1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-dy
  labels:
    app: httpd
spec:
  replicas: 4
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: httpd:2.4
        ports:
        - containerPort: 8080

开始创建

将上面创建的deployment删除一个pod,变成副本3

编辑yaml文件

更新

升级该 deployment 的镜像版本至 latest。

复制v1版本yaml为v2版本,并修改镜像版本号

进行更新升级,看到版本已经升级到了latest

寻找该 deployment 中各个 pod 运行节点,deployment 创建的时间戳(Creation Timestamp)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 05 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 部署Nginx服务
    • 创建 Deployment
      • 部署该 nginx-dy
    • 弹性伸缩 Deployment
      • 滚动升级 deployment
        • 进行滚动更新
        • 回滚到历史版本2
        • 删除deployment
      • 实训
        • 查看deployment信息
        • ymal文件搭建httpd
        • 将上面创建的deployment删除一个pod,变成副本3
        • 升级该 deployment 的镜像版本至 latest。
        • 寻找该 deployment 中各个 pod 运行节点,deployment 创建的时间戳(Creation Timestamp)。
    相关产品与服务
    弹性伸缩
    弹性伸缩(Auto Scaling,AS)为您提供高效管理计算资源的策略。您可设定时间周期性地执行管理策略或创建实时监控策略,来管理 CVM 实例数量,并完成对实例的环境部署,保证业务平稳顺利运行。在需求高峰时,弹性伸缩自动增加 CVM 实例数量,以保证性能不受影响;当需求较低时,则会减少 CVM 实例数量以降低成本。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档