k8s-----10、Controller-Deployment

Controller-Deployment

  • 1、什么是controller
  • 2、 pod和controller关系
  • 3、Deployment控制器应用场景
    • 3.1 部署时yaml文件书写
    • 3.2 实际部署应用
    • 3.3 升级回滚
      • 3.3.1 升级
      • 3.3.2 回滚
    • 3.4 弹性伸缩

1、什么是controller

  • 在集群上管理和运行容器的对象

2、 pod和controller关系

  • pod是通过Controller实现应用的运维,比如伸缩、滚动升级等
  • pod和Controller之间通过label建立关系。通过下图进行深刻理解

在这里插入图片描述

3、Deployment控制器应用场景

  • 一般部署无状态应用
  • 管理Pod和ReplicaSet
  • 部署,滚动升级等功能
  • 应用场景:web服务、微服务

3.1 部署时yaml文件书写

[root@master example]# kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml  ##生成一个示例yaml文件
[root@master example]# cat web.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:         ##控制器标签app: webname: web
spec:replicas: 1selector:   # 与pod匹配的labelsmatchLabels:app: webstrategy: {}template:   # 模板部分是涉及到的podmetadata:creationTimestamp: nulllabels:app: webspec:containers:- image: nginxname: nginxresources: {}
status: {}

在这里插入图片描述

3.2 实际部署应用

[root@master example]# kubectl apply -f web.yaml    ##现在别的机器还访问不到
[root@master example]# kubectl expose --help    ## 对外发布,即暴漏端口
[root@master example]# kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=webexpose -o yaml > webexpose.yaml   # 前面是自身端口,后面是向外暴露的端口
[root@master example]# ll webexpose.yaml 
[root@master example]# cat webexpose.yaml 
apiVersion: v1
kind: Service
metadata:creationTimestamp: "2022-05-05T12:57:40Z"labels:app: webmanagedFields:- apiVersion: v1fieldsType: FieldsV1fieldsV1:f:metadata:f:labels:.: {}f:app: {}f:spec:f:externalTrafficPolicy: {}f:ports:.: {}k:{"port":80,"protocol":"TCP"}:.: {}f:port: {}f:protocol: {}f:targetPort: {}f:selector:.: {}f:app: {}f:sessionAffinity: {}f:type: {}manager: kubectl-exposeoperation: Updatetime: "2022-05-05T12:57:40Z"name: webexposenamespace: defaultresourceVersion: "184540"uid: b79e14cb-2b1b-44c1-b626-f4903786fb8a
spec:clusterIP: 10.103.24.195clusterIPs:- 10.103.24.195externalTrafficPolicy: Clusterports:- nodePort: 30605port: 80protocol: TCPtargetPort: 80selector:app: websessionAffinity: Nonetype: NodePort
status:loadBalancer: {}
[root@master example]# kubectl get pods,svc   #svc是services的缩写
NAME                      READY   STATUS    RESTARTS   AGE
pod/mypod                 1/1     Running   0          10h
pod/nginx                 1/1     Running   1          27h
pod/web-96d5df5c8-kkmsz   1/1     Running   0          10mNAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        57d
service/webexpose    NodePort    10.103.24.195   <none>        80:30605/TCP   21s

在这里插入图片描述

3.3 升级回滚

3.3.1 升级

# 1、最初的nginx:1.14版本
[root@master example]# vim web.yaml 
[root@master example]# cat web.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: webname: web
spec:replicas: 2selector:matchLabels:app: webstrategy: {}template:metadata:creationTimestamp: nulllabels:app: webspec:containers:- image: nginx:1.14name: nginxresources: {}
status: {}
[root@master example]# kubectl apply -f web.yaml 
deployment.apps/web created
[root@master example]# kubectl get pod
NAME                   READY   STATUS              RESTARTS   AGE
web-5bb6fd4c98-bskvw   1/1     Running             0          3s
web-5bb6fd4c98-qtv8q   0/1     ContainerCreating   0          3s
[root@master example]# kubectl get pod
NAME                   READY   STATUS    RESTARTS   AGE
web-5bb6fd4c98-bskvw   1/1     Running   0          30s
web-5bb6fd4c98-qtv8q   1/1     Running   0          30s# 2、升级
# 升级过程中会下载新的镜像,下载成功后删除掉原来的pod,建立新的pod
[root@master example]#  kubectl set image deployment web nginx=nginx:1.15  # 升级
[root@master example]# kubectl rollout  status deployment web   #查看升级状态
deployment "web" successfully rolled out

3.3.2 回滚

[root@master example]#  kubectl rollout history deployment web   # 查看历史版本
deployment.apps/web 
REVISION  CHANGE-CAUSE
1         <none>
2         <none>[root@master example]#  kubectl rollout undo deployment web  # 回滚到上一个版本
deployment.apps/web rolled back
[root@master example]# kubectl rollout  status deployment web   #  查看回滚状态
deployment "web" successfully rolled out
[root@master example]# kubectl get pod
NAME                   READY   STATUS    RESTARTS   AGE
web-5bb6fd4c98-hm2jt   1/1     Running   0          17s
web-5bb6fd4c98-nmjcg   1/1     Running   0          16s
[root@master example]# kubectl rollout undo --help ^C   # 查看回滚帮助
[root@master example]# kubectl rollout undo deployment web --to-revision=2  # 回滚到指定版本
deployment.apps/web rolled back
[root@master example]# kubectl rollout  status deployment web 
deployment "web" successfully rolled out

3.4 弹性伸缩

  • 为了提供更多的服务
[root@master example]# kubectl scale deployment web --replicas=5
deployment.apps/web scaled
[root@master example]# kubectl get pod
NAME                  READY   STATUS    RESTARTS   AGE
web-f686c9cdf-72fhz   1/1     Running   0          4s
web-f686c9cdf-7kxgm   1/1     Running   0          4s
web-f686c9cdf-89zwq   1/1     Running   0          3m6s
web-f686c9cdf-gm6r6   1/1     Running   0          3m5s
web-f686c9cdf-q45v2   1/1     Running   0          4s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP代码审计工具

PHP代码审计工具 1 环境准备 Seay源代码审计系统.exe 和准备靶场的源码php 2 Seay下载地址 https://github.com/f1tz/cnseay安装Seay源代码审计系统.exe报错时&#xff0c;安装.net framework 3.5 # windows插件.net framework 3.5 下砸地址 https://www.microsoft.com/en…

Linux 后台开发必知的 I/O 优化知识总结

IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后&#xff0c;瓶颈往往落在数据库&#xff1b;而数据库经过多种优化以后&#xff0c;瓶颈最终会落到IO。而IO性能的发展&#xff0c;明显落后于CPU的发展。Memchached也好&#xff0c;NoSql也好&#xff0c;这些…

Python脚本:让工作自动化起来

Python是一种流行的编程语言&#xff0c;以其简洁和易读性而闻名。它提供了大量的库和模块&#xff0c;使其成为自动化各种任务的绝佳选择。 本文将探讨Python脚本及其代码&#xff0c;可以帮助您自动化各种任务并提高工作效率。无论您是开发人员、数据分析师还是只是想简化工…

进程(0)——计算机的中的软硬件【Linux】

进程&#xff08;0&#xff09;——计算机的中的软硬件【Linux】 一.硬件&#xff1a;1.1 冯诺依曼结构&#xff1a;1.2 存储金字塔1.2.1输入设备和存储器&#xff1a;1.2.2输出设备和存储器&#xff1a; 二.软件&#xff1a;2.1 操作系统2.1.1 如何理解管理&#xff1a; 博主自…

Python深度学习实战-基于tensorflow.keras六步法搭建神经网络(附源码和实现效果)

实现功能 第一步&#xff1a;import tensorflow as tf&#xff1a;导入模块 第二步&#xff1a;制定输入网络的训练集和测试集 第三步&#xff1a;tf.keras.models.Sequential()&#xff1a;搭建网络结构 第四步&#xff1a;model.compile()&#xff1a;配置训练方法 第五…

Java程序设计2023-第四次上机练习

8-1三子棋 编写程序&#xff0c;实现简单的三子棋游戏。在三子棋中&#xff0c;双方在33的棋盘中轮流下棋&#xff0c;一方用*示&#xff0c;另一方用O表示。如果一方的3个棋子占据了同一行&#xff0c;同一列或者对角线&#xff0c;则该方获胜。如果棋盘已被棋子占满&#xf…

垃圾邮件(短信)分类算法实现 机器学习 深度学习 计算机竞赛

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 垃圾邮件(短信)分类算…

【论文复现】基于多模态深度学习方法的单细胞多组学数据聚类(【生物信息学】实验二:多组学数据融合:scMDC)

目录 一、实验介绍 1. 论文&#xff1a;基于多模态深度学习方法的单细胞多组学数据聚类 Abstract 2. Github链接 二、实验环境 0. 作者要求 1. 环境复现 实验一 实验二&#xff08;本实验&#xff09; 2. 库版本介绍 实验一 实验二 3. IDE 三、实验内容 1. 用法…

Linux基础命令1——Linux的命令格式与命令分类

目录 Linux命令格式 Linux命令分类 如何判断命令的类型——Type命令 内置命令 外部命令 alias命令 命令的执行效率与过程 Linux命令格式 命令格式 完整的命令格式分为三部分&#xff1a;命令、参数、对象 其中命令与参数、参数与参数、参数与对象之间最少要有一个空格做…

Bootstrap的旋转器组件

旋转效果可以用来指示状态&#xff0c;比如页面的加载状态。 可以用类spinner-border实现普通旋转的旋转器效果。 用类spinner-grow实现渐渐变大的旋转器效果。 01-最基本的示例代码 <!DOCTYPE html> <html> <head><meta charset"UTF-8">…

cocos creator 小游戏允许他人访问本地项目

需求背景&#xff1a; 发版成微信小游戏前&#xff0c;需要策划介入体验。不上传微信体验版本 实现&#xff1a; 1.发布平台选择web桌面端 2.构建完成后点击运行从浏览器上获取本地的运行地址 3.winR ——》 cmd 控制台 输入 ipconfig 找到IPv4地址&#xff0c;替换本地部分 …

Qt音乐播放器

简介 使用QMediaPlayer和QMediaPlaylist制作的音乐播放器 编译环境 Qt5.6 MGW32 windows10 功能特性 GUI 功能 加载mp3文件&#xff0c;得到歌曲信息&#xff1b;打开文件夹加载或拖拽音乐文件加载滑动条关联播放进度、音量显示/隐藏歌曲列表&#xff0c;编辑歌曲列表&am…

性能与效果平衡:选择适合项目的直播实时美颜SDK

当下&#xff0c;越来越多的主播和内容创作者依赖于实时美颜技术&#xff0c;以确保他们在镜头前始终保持最佳状态。为了实现这一目标&#xff0c;许多开发者和团队开始探索主播直播美颜SDK&#xff0c;但在选择适合项目的SDK时&#xff0c;性能与效果的平衡变得尤为重要。 本…

【计算机网络】UDP/TCP协议

文章目录 :peach:1 UDP协议:peach:1.1 :apple:UDP协议端格式:apple:1.2 :apple:UDP的特点:apple:1.3 :apple:UDP的缓冲区:apple:1.4 :apple:UDP使用注意事项:apple:1.5 :apple:基于UDP的应用层协议:apple: 2 :peach:TCP协议:peach:2.1 :apple:TCP协议端格式:apple:2.2 :apple:确…

32二叉树——DFS深度优先遍历

目录 深度优先算法&#xff08;Depth-First Search&#xff0c;DFS&#xff09; LeetCode之路——102. 二叉树的层序遍历 分析 深度优先算法&#xff08;Depth-First Search&#xff0c;DFS&#xff09; DFS是一种用于遍历或搜索树状数据结构的算法&#xff0c;其中它首先探…

WSL2的安装与配置(创建Anaconda虚拟环境、更新软件包、安装PyTorch、VSCode)

1. WSL2 安装 以管理员身份打开 PowerShell&#xff08;“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”&#xff09;&#xff0c;然后输入以下命令&#xff1a; dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /a…

如何创建高效的 Python Docker 镜像详解

Docker是打包和部署容器中应用程序的行业标准软件。Docker镜像是构建和运行应用程序的基础&#xff0c;为了充分发挥Docker的潜力&#xff0c;您需要优化镜像以提高资源效率、安全性和性能。这将确保您的应用程序在Docker生态系统内无缝运行。 通过一个实际示例来学习如何实现…

云服务器搭建Hadoop分布式

文章目录 1.服务器配置2.Java环境3. 安装Hadoop4. 集群配置5. 编写集群的启动脚本 1.服务器配置 服务器主机名配置115.157.197.82s110核115.157.197.84s210核115.157.197.109s310核115.157.197.31s410核115.157.197.60gracal10核 所有的软件安装在/opt/module下&#xff0c;软…

3BHE003855R0001 UNS2882A 用于嵌入式/工业用途的人工智能盒

3BHE003855R0001 UNS2882A 用于嵌入式/工业用途的人工智能盒. 无风扇iBOX 1200系列包括型号iBOX-1265 UE/iBOX-1245 UE/iBOX-1215 UE&#xff0c;由第12代英特尔酷睿i7/i5/i3处理器(Alder Lake-P)提供动力&#xff0c;通过英特尔Iris Xe显卡和两个DDR4 3200MHz SO-DIMM提供高达…

麒麟信安受邀协办2023广电五舟行业交流大会,共建信创产业新生态

10月20日&#xff0c;广州广电五舟科技股份有限公司&#xff08;简称“广电五舟”&#xff09;主办的行业交流大会召开&#xff0c;大会围绕智能算力新趋势、共建新生态价值体系、算力发展与生态建设的关系、元宇宙应用展望与生态融合等话题展开深入探讨。麒麟信安作为沈阳站和…