【云原生】k8s管理工具--Kubectl(二)

news2024/11/15 10:22:02

k8s管理工具--Kubectl(二)

    • 一、项目生命周期
      • 1、项目生命周期
      • 2、创建kubectl run命令
      • 3、发布kubectl expose命令
        • (1) Service的作用
        • (2)Service的类型
        • (3)查看Pod网络状态详细信息和Service暴露端口
        • (4)查看关联后端的节点
        • (5)查看service的描述信息
        • (6)查看日志
    • 二、更新kubectl set
      • 1、获取修改模板
      • 2、查看当前nginx版本
      • 3、将nginx版本更新为1.15
    • 三、回滚kubectl rollout
      • 1、查看历史版本
      • 2、执行回滚到上一个版本
      • 3、执行回滚到指定版本
      • 4、检查回滚状态
    • 四、实现负载均衡
      • 1、首先在node1 node2节点安装ipvsadm
      • 2、在master01节点分别在3个pod内写入网页文件
    • 五、删除kubectl delete
      • 1、删除副本控制器
      • 2、删除service
    • 六、金丝雀发布
      • 1、更新deployment的版本,并配置暂停deployment
      • 2、查看更新
      • 3、确保更新的pod没问题了,继续更新

一、项目生命周期

1、项目生命周期

创建–>发布–>更新–>回滚–>删除

2、创建kubectl run命令

  • 创建并运行一个或多个容器镜像

  • 创建一个deployment或job来管理容器

  • kubectl run --help查看使用帮助

启动nginx实例,暴露容器端口80,设置副本数3

[root@master01 ~]#kubectl create deployment nginx --image=nginx:1.14 --port=80 --replicas=3

在这里插入图片描述
在这里插入图片描述

3、发布kubectl expose命令

将资源暴露为新的Service

为Deployment的nginx创建Service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service,类型为NodePort。

[root@master01 ~]#kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort 

在这里插入图片描述

(1) Service的作用

  • Kubernetes之所以需要Service,一方面是因为Pod的IP不是固定的(Pod可能会重建),另一方面是因为一组Pod实例之间总会有负载均衡的需求。
  • Service通过Label Selector实现的对一组的Pod的访问。
  • 对于容器应用而言,Kubernetes提供了基于VIP(虚拟IP)的网桥的方式访问Service,再由Service重定向到相应的Pod。

(2)Service的类型

  • ClusterIP:提供一个集群内部的虚拟IP以供Pod访问(Service默认类型)
  • NodePort:在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的,通过NodeIP:NodePort的方式
  • LoadBalancer:通过外部的负载均衡器来访问,通常在云平台部署LoadBalancer还需要额外的费用。

(3)查看Pod网络状态详细信息和Service暴露端口

在这里插入图片描述

(4)查看关联后端的节点

在这里插入图片描述

(5)查看service的描述信息

在这里插入图片描述

(6)查看日志

在这里插入图片描述

二、更新kubectl set

1、获取修改模板

在这里插入图片描述

2、查看当前nginx版本

在这里插入图片描述

3、将nginx版本更新为1.15

在这里插入图片描述
在这里插入图片描述

更新规则可通过“kubetl describe deployment nginx”的“RollingUpdateStrategy”查看,默认配置为“25% max unavailable, 25% max surge”,即按照25%的比例进行滚动更新。
在这里插入图片描述

三、回滚kubectl rollout

对资源进行回滚

kubectl rollout --help查看使用帮助

1、查看历史版本

在这里插入图片描述

2、执行回滚到上一个版本

在这里插入图片描述

3、执行回滚到指定版本

在这里插入图片描述

4、检查回滚状态

在这里插入图片描述

四、实现负载均衡

1、首先在node1 node2节点安装ipvsadm

[root@node01 ~]# yum install ipvsadm.x86_64 -y
[root@node02 ~]#yum install ipvsadm.x86_64  -y

2、在master01节点分别在3个pod内写入网页文件

在这里插入图片描述
在这里插入图片描述

五、删除kubectl delete

1、删除副本控制器

在这里插入图片描述

2、删除service

在这里插入图片描述

六、金丝雀发布

Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。

蓝绿发布:是指在生产环境中同时部署两个版本的应用程序,一个是当前正在使用的稳定版本(蓝色),
另一个是新版本(绿色)。新版本在生产环境中进行测试,直到它被确认为稳定可靠后,再将流量逐渐切换到新版本上。这种发布方式可以保证系统的高可用性和稳定性。就是两套设备 进行新旧版本的切换,用户毫无感知 业务稳定。 缺点:要消耗2倍的资源 成本特别高。

滚动发布:是指在生产环境中逐步推出新版本,将新版本逐步扩展到整个系统。这种发布方式可以逐步
发现和解决问题,降低风险,并且可以确保系统一直处于可用状态。安装比例一部分一部分滚动更新,k8s默认的更新新机制,无创建一定比例的新pod,再删除一定旧的pod。

灰度发布:是一种软件发布策略,它是在生产环境中逐步将新版本的应用程序发布给一小部分用户,以便测试新版本的功能和性能,以及发现和解决潜在的问题。这种发布方式可以减少风险,因为只有一小部分用户会受到影响,同时也可以获得反馈和数据来帮助改进应用程序。一旦新版本被确认为稳定可靠,就可以逐步将其推出到整个系统中。先更新一部分pod,然后暂停更新 ,安排一小部分用户的流量去访问这部分行的pod,当测试没问题再扩大测试比例。

1、更新deployment的版本,并配置暂停deployment

在这里插入图片描述

2、查看更新

在这里插入图片描述

3、确保更新的pod没问题了,继续更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

django 数据迁移makemigrations和migrate的备忘录

问题描述 之前成功生成过,重新执行python manage.py migrate后,数据库没有生成对应的数据表;表现为 Apply all migrations: admin, auth, contenttypes, sessions Running migrations:No migrations to apply.执行python manage.oy makemig…

STM32-光敏传感器实验

光敏传感器的主要是光敏二极管,核心是PN结,利用了光电效应,对光强很敏感,有单向导电性,工作时需要加反向电压。光照越强,等效电阻越小。 实验要求通过ADC3通道6(PF8)采集光敏二极管…

geoserver安装与发布服务过程

geoserver是做地图领域开发必会的插件之一,今天我们来分享多种安装方式与发布服务过程: 一、安装下载 1、官网地址:GeoServer 进入下载页面选择下载的版本,我这里选择2.22.3的稳定版本。 来到: 多种安装包可选&#…

科研er如何查询学术期刊分区信息?

文章目录 引言:为什么要查询学术期刊分区信息?1.使用LetPub查询1.1.LetPub简介1.2.查询步骤 2.使用《中科院文献情报中心期刊分区表》进行查询2.1.《中科院文献情报中心期刊分区表》简介2.2.查询步骤 引言:为什么要查询学术期刊分区信息&…

Linux man手册什么都找不到 常见问题总结

1.尝试安装缺少的page sudo yum[或者apt-get] install manpages-de manpages-de-dev manpages-dev glibc-doc manpages-posix-dev manpages-posix 安装成功后解决了没有pages的问题,如果还是查不到,则可能是找不到pages的问题 2.更新Gcc 或 G 后导致路径变化 man手册的所有…

每日一练 | 网络工程师软考真题 Day2

1、某工程制定的开发方案中定义了3个任务,其中任务A首先开始,且需要3周完成,任务周完B必须在任务A启动1周后开始,且需要2周完成,任务C必须在任务A后才能开始,且需要完成2周完成。该工程的进度安排可用下面的…

案例12:Java宠物医院预约管理系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

CCF大数据与计算智能大赛-基于人工智能的漏洞数据分类冠军方案

基于人工智能的漏洞数据分类 前言 为及时跟踪国际信息安全趋势,需对国际公开的漏洞数据内容进行及时统计和梳理,例如CVE漏洞平台。CVE平台的漏洞信息包含有CVE编号、漏洞评分、漏洞描述等内容,其中漏洞描述含有对漏洞的利用条件、受影响的范…

Windows下快速启动Kafka以及三种发送消息的方式

目录 一、下载Kafka 二、启动kafka 2.1 启动kafka前得先启动zk 2.2 启动kafka 三、操作Kafka 3.1 创建 Kafka 主题(Topic) 3.2 将信息写入主题(Topic) 3.3 读取信息 四、Java实践-三种发送消息的方式 4.1 异步发送-无回…

登录appuploader

登录appuploader 常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录,弹出登录框 在登录框内输入apple开发者账号 如果没有apple开发者账号,只是普通的apple账号,请勾选上未支付688 然后软件会提示输入验证码&#…

Go语言中sync.Mutex和sync.WaitGroup的用法

目录 【goroutine的调度器】 【Go语言的sync包】 【sync.Mutex】 sync.Mutex 底层原理 sync.Mutex 其它用法 【sync.RWMutex】 sync.RWMutex 实现原理 【sync.WaitGroup】 Go 并发编程中存在的难题:并发编程不像是传统的串行编程,程序的运行存在…

chatgpt批量生成网站文章-chatgpt批量生成自媒体的文章

怎么用chatgpt批量生成文章符合SEO优化的文章 ChatGPT是一款功能强大、智能化的自然语言处理模型,可以用于生成符合SEO优化的文章。以下是一些建议: 确定主题和关键词:在开始生成文章之前,需要先确定文章的主题和关键词。这有助于…

张益唐直播报告学术报告,零点猜想问题终于被解决(文末可获取论文原文)

原创 | 文BFT机器人 8日上午9点,张益唐教授带着一支黑笔、一块白板现身b站直播,全网超10万人在线观看,从直播消息放出开始,大家就早早端好了小板凳等着教授精彩开讲! 直播40分钟一堂课的时长,知识点一个接…

《人月神话》译文修订明细(1)-读者可以对照修改

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 《人月神话》译文修订如下,读者可以对照自己手上的书修改。 相关阅读 这回真要动刀子-征集《人月神话》中译本的翻译修正>> 第一章 原译文 它们最后都…

金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件

🚀 金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件,并支持桌面电脑和移动设备。 金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件,并支持桌面…

MySQL双写机制

MySQL双写机制的目的是什么?是如何实现的? 一、双写的目的 为了解决 partial page write 问题。 InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操…

PCB——功放pcb设计

地线干扰 电子产品的地线设计是极其重要的,无论低频电路还是高频电路都必须要个遵照设计规则。高频、低频电路地线设计要求不同,高频电路地线设计主要考虑分布参数影响,一般为环地,低频电路主要考虑大小信号地电位叠加问题&#x…

拿下多个定点/比亚迪要上!这项技术要「降维打击」单目感知

2008年,斯巴鲁在全球首次推出了搭载有立体视觉摄像头的主动安全解决方案,并具有紧急制动功能的“EyeSight”。2010年,斯巴鲁推出升级版的“EyeSight”,成为世界上首个可以在全车速范围内避免碰撞的量产技术系统。 2014年&#xff…

自助式数据分析工具:jvs-sdw数据智仓-数据服务配置

配置化数据服务 数据服务是将JVS-SDW内部加工分析生成的数据集通过API的方式 开放给其他系统使用。 界面介绍 进入数据服务界面,左侧是展示系统内部已经配置完成的数据服务目录,右侧是展现的对应数据服务的详细配置情况。 目录新增,如下图所…

详解c++STL—容器deque

目录 1、deque容器的基本概念 1.1、功能 1.2、deque与vector区别 1.3、deque内部工作原理 2、deque构造函数 2.1、功能描述 2.2、函数原型 2.3、示例 3、deque赋值操作 3.1、功能描述 3.2、函数原型 3.3、示例 4、deque大小操作 4.1、功能描述 4.2、函数原型 4…