kubectl的deployment和service

news2024/11/15 7:08:09

目录

概念

kubectl的基础命令

*每天常用的查看集群的基本信息

deployment的部署方式

deployment 的特点

基于deployment创建pod

手动缩容

service的类型以及工作原理

创建service

service的类型

修改service的类型为nodeport

**nodeport实验:对外暴露端口

滚动更新以及回滚

对版本进行滚动更新

回滚

销毁


概念

kubectl 是陈述式资源管理方式(命令行)   管理就是增删改查

资源对象包含pod、控制器、service,我们创建资源对象时会用声明式,用yaml文件写的

陈述式命令的开头是 kubectl 

k8s项目的生命周期:发布——修改——更新——回滚——销毁

kubectl的基础命令

kubectl version  查看集群的版本

kubectl api-resources  查看资源对象的版本和简写

kubectl cluster-info  查看集群的信息

journalctl -u kubelet -f 和 tail -f /var/log/messages  查看集群的日志

*每天常用的查看集群的基本信息

kubectl get cs  查看集群组件的健康状态

kubectl get node  查看节点的状态

kubectl get pod  查看默认命名空间里面当前运行的pod   默认命名空间是default

了解即可:

name:pod的名称

ready:1/1 表示正常状态

status :running  表示运行   

只有1/1和running才表示pod属于正常状态

restarts 表示pod的重启次数。因为自愈功能,pod在非正常状态下,会自动进行重启,状态正常之后就不会再进行重启。    

AGE:当前pod的运行时间

kubectl create ns xy102 创建命名空间

kubectl delete ns xy102  删除命名空间

kubectl get all  查看当前命名空间的所有资源

kubectl get pod -o wide  查看pod的详细信息 (pod被部署在哪个节点上)

deployment的部署方式

资源对象的部署方式叫做deployment。它是无状态部署方式:pod的名称是随机生成的。

deployment 的特点

1.创建时可以指定副本数(pod的数量)、

2.滚动更新:先更新一个,更新好了之后再更新余下的pod

3.自我修复:默认的策略就是重启容器,删除pod相当于重启pod

4.支持回滚:如果更新有问题,可以恢复到上一个版本

5.支持pod数量的扩容和缩容(手动)

基于deployment创建pod

首先要kubectl create ns xy102 创建命名空间

kubectl create deployment test1 --image=nginx:1.22 --replicas=3 -n xy102  基于deployment创建的pod

kubectl delete pod test1-86776958-5br7q -n xy102  重启pod,不能删除

基于 deployment创建的pod, delete pod 相当于重启,不能删除pod

kubectl run nginx1 --image=nginx:1.22 -n xy102   run直接创建pod  删除这个就是真的删除

kubectl describe pod -n xy102 test1-86776958-5br7q  查看这个pod的详细情况

创建pod流程:调度策略(把pod部署到哪个节点上)——拉取镜像——创建容器——运行容器

kubectl describe deployments.apps -n xy102 test1 查看创建的资源对象的信息

kubectl logs -f test1-86776958-5br7q -n xy102 查看pod的日志

kubectl exec -it -n xy102 test1-86776958-5br7q bash   进入pod内的容器

手动缩容

方式一:命令行: kubectl scale deployment nginx1 -n xy102 --replicas=1

方式二:在yaml文件:kubectl edit deployment nginx1 -n xy102  

进入之后修改replicas即可

注:pod的ip地址随着pod的生命周期有可能会发生变化,内部访问我们通过pod的ip可以直接访问,外部访问不会受到影响。

service的类型以及工作原理

service如何与pod进行关联,这种关联不受pod的ip地址的变化影响

创建service

kubectl expose deployment nginx1 --port=80 --target-port=80 --name=nginx - n xy102

注:前一个port是集群的service的端口,是和容器内的80做的映射

kubectl get svc  查看service

service的类型

1.ClusterIP 默认类型,提供集群内部的一个虚拟ip地址。是用来让其他的pod来访问的,pod可以通过这个service的ip地址直接访问到内部的容器。只能内部访问,外部不能访问。是内部组件通信使用。(对内)

2. NodePort:在每个节点(集群的所有节点)都会开放一个端口,外部就可以通过本机的ip+端口(nodeport端口)访问pod内的容器服务。每个节点nodeport的端口都是一致的,端口是有范围的:30000-32767  (对外)

修改service的类型为nodeport

kubectl edit svc -n xy102 nginx1

此时80是service端口   31151是所有节点上开放的端口(所有的节点主机本机ip都能访问)

访问的流程:在宿主机上开放的端口31151——service的80端口——pod里面容器的80端口

**nodeport实验:对外暴露端口

流程图:

deployment的标签是app=nginx1

由于service匹配的标签是app=nginx1,只要资源对象的标签包含app=nginx1,所以都可以通过service进行转发

kubectl edit pod nginx2 -n xy102 进入yaml文件

把labels指向app=nginx1

实验结果:

此时访问本机的31151端口 就能访问到所有的pod

总结:nodeport:service根据标签来匹配对应的pod,只要标签匹配,都能转发打到指定的pod内的容器。

3.LoadBalancer:云平台的运营商(阿里云、腾讯云)提供loadbalancer的地址     地址需要付费

提供之后也是通过访问负载均衡的地址,来实现pod的流量转发

4.ExternalName:把service的名称映射到DNS的域名上。就是让pod去访问集群外部的资源,而且设置为此类型service将不能提供四层负载均衡服务。

滚动更新以及回滚

对版本进行滚动更新

kubectl set image deployment/nginx1 nginx=nginx:1.18 -n xy102

此时 kubectl get pod -o wide -n xy102 即可查看是否正则更新

kubectl rollout history deployment/nginx1 -n xy102  查看还原点

数字大小决定了距离上次更新操作的远近,数字越大,就是最近的一次操作

kubectl set image deployment/nginx1 nginx=nginx:1.20 --record -n xy102       record添加更新记录

回滚

kubectl rollout undo  deployment/nginx1 --to-revision=5 -n xy102 回滚

销毁

所以基于deployment创建的资源对象的pod如果要删除,首先要先删除deployment,然后再删除service,最后再删除命名空间。

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

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

相关文章

产品网络低价乱价,有哪些控价方法?

电商平台的兴起让产品销售渠道更加多元化,但同时也带来了价格混乱的问题。产品网络低价现象频发,不仅扰乱了市场秩序,损害了品牌形象, 还严重影响了正规渠道经销商的利益。针对这一问题,产品控价成为了企业和品牌方亟待…

【动态规划】子数组系列二(数组中连续的一段)

子数组系列一(数组中连续的一段) 1.等差数列划分2.最长湍流子数组3.单词拆分4.环绕字符串中唯一的子字符串 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起…

【多场景应用】基于杰发科技AC7840x的Mini LED背光驱动设计

应用场景: 在汽车应用中,Mini LED背光驱动设计主要用于仪表盘、中控屏和车载娱乐系统等显示屏。这项技术可以显著提升显示效果,提供更高的亮度、更深的黑色和更广的色域,使得图像更加生动逼真,尤其在强光和宽温度范围…

【类模板】类模板的基本范式

一、类模板的概念 类模板与一般的模板一样,都是通过给定的模板参数,生成具体的类,也就是实例化一个特定的类。这个概念和函数模板差不多。 例如,在 C C C中的 s t d : : v e c t o r std::vector std::vector容器就是一个经典的…

AWS账号关闭后的影响:您需要知道的一切

亚马逊网络服务(AWS)作为全球领先的云计算平台,为众多企业和个人提供了便捷、高效的云服务。然而,当用户决定关闭其AWS账号时,可能会对其现有的服务和资源产生重大影响。我们九河云将通过本文将深入探讨AWS账号关闭后的…

树莓派3B驱动ST7735(Python)

一 环境准备 之前做了PICO驱动ST7735,这次再进一步,用树莓派3B来驱动。还是先上图。 最开始还是根据GPT的指引来做的。SPI的细节就不多说了,之前在PICO的时候说过了。 总线学习3--SPI-CSDN博客 二 实现细节 连接方式如下: VCC …

猛兽财经:AMD股票值得长期投资吗?

来源:猛兽财经 作者:猛兽财经 过去三年对AMD来说可谓压力山大,由于个人电脑(PC)市场的疲软,AMD的股价一直承受着巨大的压力(AMD的股价在过去三年中仅上涨了44%,远远低于费城半导体指数56%的涨幅&#xff…

快速申请公网、内网IP地址SSL证书

在当今社会,网络安全越来越重要。SSL证书不仅能够提供加密的数据传输,还能增强用户信任度,提升搜索引擎排名等。但是只有IP地址可以用来申请SSL证书吗?答案当然是可以的,而且申请也非常容易。下面是快速申请流程&#…

SpringBoot3核心特性-数据访问

目录 传送门前言整合SSM场景一、创建SSM整合项目二、配置数据源三、配置MyBatis四、CRUD编写五、自动配置原理六、快速定位生效的配置七、扩展:整合其他数据源1、Druid 数据源2、附录:示例数据库 传送门 SpringMVC的源码解析(精品&#xff0…

如何通过工业交换机增加网络带宽?

在现代工业环境中,网络的稳定性和带宽的充足性显得尤为重要。随着设备的增加和数据流量的增长,单一的网络带宽往往难以满足企业对于高效数据传输的需求。因此,如何通过工业交换机来增加网络带宽,成为了技术人员关注的重点。 首先&…

新手使用住宅代理有哪些常见误区?

作为新手,在使用住宅代理时往往会陷入一些常见误区,这些误区不仅可能影响到使用效果,甚至可能会带来安全风险。今天将与大家探讨新手在使用住宅代理时可能会遇到的几个关键误区,并提供相应的解决方案。误区一:盲目追求…

「合诚」× 企企通SRM项目启动,高分子新材料和健康产业高新技术企业将奔赴数智采购新征程

为拉通产业链上下游,优化提升整体效率,帮助企业变革采购管理方式,推动化工新材料行业高质量发展,近日,合诚技术股份有限公司(以下简称“合诚”)携手企企通成功举办了SRM项目启动会,双…

微电网能量管理系统在企业光伏电站的应用

发展背景: 在全球不可再生能源稀缺的背景下各个国家都在大力发展可再生能源,因此光伏行业应需而生且迅速发展了起来。能源转型中的光伏储能是指将光伏发电与储能技术相结合,以解决太阳能发电的间歇性和不稳定性问题,实现更稳定、…

怎么使用PPT倒计时插件?这款在线PPT工具,堪称办公必备!

在进行ppt演示时,为了更好地把控演示时间,有些人会在演示的同时设置一个倒计时,但Office的ppt本身没有提供倒计时功能,想要实现这一目的,就得在现有的基础上安装倒计时插件。 ppt倒计时插件 目前可用的免费ppt倒计时…

如何判断全面预算和EPM软件架构是否符合技术规范?

以全面预算管理软件为代表的企业绩效管理EPM软件,已经日益成为企业数字化智慧化管理的核心软件系统。国际企业采用了30多年的EPM系统,也逐渐被国内企业所熟识。全面预算管理软件的作用不仅仅是预算编报,还是整个企业实现高效经营分析和快速决…

基于PCL实现RGB-D图像转换为点云

原理: RGB 和 depth图已经对齐了,也就是 depth 图中某个位置的深度值在 RGB图中同样的位置处就是它对应的颜色。假设相机内参矩阵为: 则RGB-D图像转换为点云代码如下: for (int m = 0; m < depth.rows; m++)for (int n = 0

英飞凌HSM内核开发-CSM模块配置

CsmGeneral CsmJob CsmKey CsmQueue CsmPrimitive

最新保姆级教程

如何使用 WildCard 服务注册 Claude3 随着 Claude3 的震撼发布&#xff0c;最强 AI 模型的桂冠已不再由 GPT-4 独揽。Claude3 推出了三个备受瞩目的模型&#xff1a;Claude 3 Haiku、Claude 3 Sonnet 以及 Claude 3 Opus&#xff0c;每个模型都展现了卓越的性能与特色。其中&a…

Python+Selenium 通过添加cookies或token解决网页上验证码登录问题

cookie或token可以保存登录信息&#xff0c;当我们拿到cookie后&#xff0c;可以通过向浏览器发送cookie中记录的数据&#xff0c;直接变成登录状态&#xff0c;不需要再登录。 下面举个栗子 1、先把正常的登录方式码一下&#xff1a; browser webdriver.Chrome(executable_…

颈动脉斑块的MR图像分割

颈动脉斑块的MR图像分割是一个复杂的图像处理过程&#xff0c;它结合了医学影像学和计算机视觉技术。以下是一个基于一般流程的描述&#xff0c;包括可能的步骤和示例代码&#xff08;使用Python和OpenCV库&#xff09;&#xff0c;但请注意&#xff0c;实际应用中可能需要针对…