k8s资源管理操作——陈述式管理方式

目录

陈述式资源管理方式

1、常用的kubernetes管理命令

1)查看版本信息

2)查看资源对象简写

3)查看集群信息

4)配置kubectl自动补全

5)node节点查看日志

2、资源管理命令

1)创建资源

2)查看资源

3)删除资源

4)进入Pod中的容器

5)查看Pod容器的日志

6)扩容或缩容

7)将资源暴露为新的Service,向外提供服务

8)更新资源

9)回滚资源

3、service 的 type 类型

4、Service与Pod如何关联的?

5、service的端点

6、集群内Pod资源滚动更新的方式

        1)蓝绿发布

        2)红黑发布

        3)灰度发布(金丝雀发布)

        4)滚动发布


陈述式资源管理方式

1、常用的kubernetes管理命令

1)查看版本信息

kubectl version

2)查看资源对象简写

kubectl api-resources

3)查看集群信息

kubectl cluster-info

4)配置kubectl自动补全

source <(kubectl completion bash)

5)node节点查看日志

journalctl -u kubelet -f

2、资源管理命令

1)创建资源

格式:
    kubectl create [-n <命名空间>] <资源类型> <资源名称> [选项]
    或
    kubectl run <资源名称> --image=镜像 --replicas=副本数 --port=容器端口

选项:    
    --image=镜像 
    --replicas=副本数 
    --port=容器端口
例子:
//创建一个命名空间
    kubectl create ns heitui     #ns是资源类型名、heitui是资源名称,自定义
//在heitui命名空间创建一个Pod资源
    kubectl create -n heitui deployment nginx-ht --image=nginx
#deployment是Pod的资源控制器名称,nginx-ht是自定义创建的Pod名称,--image=nginx指定使用的镜像

2)查看资源

格式:
    kubectl get [-n <命名空间>] <资源类型|all> [资源名称] [-o wide|yaml|json] [-w]

//查看 master 节点状态
kubectl get componentstatuses
kubectl get cs

//查看命名空间
kubectl get namespace
kubectl get ns
//命令空间的作用:用于允许不同 命名空间 的 相同类型 的资源 重名的

//查看default命名空间的所有资源
kubectl get all [-n default]

格式:
    kubectl get [-n <命名空间>] <资源类型|all> [资源名称] [-o wide|yaml|json] [-w]

//查看命名空间kube-public 中的pod 信息
kubectl get pods -n heitui

//查看某个资源的详细信息
kubectl describe deployment nginx-ht -n heitui
或
kubectl describe pod nginx-ht-74cbf7dd5c -n heitui

3)删除资源

格式:
    kubectl delete [-n <命名空间>] <资源类型> <资源名称>|--all [--force --grace-period=0]
    
    --force --grace-period=0      立即终止Pod运行并强制删除资源

//删除heitui命名空间的Pod资源
    kubectl delete -n heitui deployment nginx-ht
    kubectl -n heitui pods    #查看heitui命名空间的pod
//删除heitui命名空间
    kubectl delete ns heitui
    kubectl get ns    #查看所有命名空间

4)进入Pod中的容器

格式:
    kubectl exec -it [-n <命名空间>] <Pod资源名称> [-c 容器名称] sh|bash

//进入到Pod容器中
    kubectl exec -it -n heitui nginx-ht-5dcc469667-dkxh8 bash

5)查看Pod容器的日志

格式:
    kubectl logs [-n <命名空间>] <Pod资源名称> [-c 容器名称] [-f] [-p]
    -f:实时查看日志
    -p:查看Pod容器重启前的日志
//查看Pod容器的日志
    kubectl logs -n heitui nginx-ht-5dcc469667-dkxh8

6)扩容或缩容

格式:
    kubectl scale [-n <命名空间>] <deployment|statefulset> <资源名称> --replicas=副本数

//扩容
    kubectl scale -n heitui deployment nginx-ht --replicas=3
//缩容
    kubectl scale -n heitui deployment nginx-ht --replicas=1

7)将资源暴露为新的Service,向外提供服务

格式:
    kubectl expose [-n <命名空间>] deployment <资源名称> --name <自定义svc资源名称> --type <svc资源类型> --port <clusterIP的端口> --targetPort <容器的端口>


svc资源类型有 ClusterIP|NodePort|LoadBalancer|ExternalName

例子:
    kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort

8)更新资源

格式:
    //更改模板信息
    kubectl set image deployment <deployment资源名称> <容器名>=<镜像名>
    //更改选择器标签
    kubectl set selector service <svc资源名称> '标签key=value'

例子:
    //将nginx 版本更新为 1.15 版本
    kubectl set image deployment/nginx nginx=nginx:1.15
   
    //处于动态监听 pod 状态,由于使用的是滚动更新方式,所以会先生成一个新的pod,然后删除一个旧的pod,往后依次类推
    kubectl get pods -w

9)回滚资源

格式:
    kubectl rollout history deployment <deployment资源名称>    #查看历史版本

    kubectl rollout undo deployment <deployment资源名称> [--to-revision=N]
#不加--to-revision=N,默认回滚到前一个版本,反之指定版本回滚

    kubectl rollout status deployment <deployment资源名称>    #查看回滚的状态

Kubernetes 之所以需要 Service,一方面是因为 Pod 的 IP 不是固定的(Pod可能会重建),另一方面则是因为一组 Pod 实例之间总会有负载均衡的需求

3、service 的 type 类型

1)ClusterIP

        提供一个集群内部的虚拟IP以供Pod访问(Service默认类型)

2)NodePort

        在每个node上打开一个端口以供外部访问,且每个node端口都是一样的,集群外部的程序通过NodeIP:Nodeport的方式访问集群内的Service,每个端口只能是一种服务,端口范围只能是30000~32767。

3)LoadBalancer

        使用云负载设备和service做映射,外部用户通过云负载设备即可将请求转发到node节点,再通过NodeIP:NodePort访问service并转发给其他关联的Pod

4)ExternalName

        相当于给一个外部地址做别名,集群内的Pod可以通过这个service访问相关的外部服务

4、Service与Pod如何关联的?

Service 通过 标签选择器(Label Selector) 绑定Pod的标签来关联Pod的端点。

对于容器应用而言,Kubernetes 提供了基于 VIP(虚拟IP) 的网桥的方式 去 访问 Service,再由 Service 重定向到相应的 Pod。

5、service的端点

        1)port

service的clusterIP使用的端口

        2)nodePort

在NodePort类型的service定义的端口,在每个node节点上开启的端口,即nodeIP使用的端口,默认范围30000~32767

        3)targetPort

service将发送给port或nodePort的请求转发给Pod的容器端口,需与containerPort一致

        4)containerPort

创建Pod时所指定的容器端口

最后K8s集群内部的客户端可以通过访问  http://clusterIP:port ----------->podIP:containerPort(Pod容器提供的服务)

K8s集群外部的客户端可以通过访问  http://nodeIP:nodePort------->podIP:containerPort(Pod容器提供的服务)

6、集群内Pod资源滚动更新的方式

        Pod资源滚动更新的方式有:蓝绿发布、红黑发布、灰度发布(金丝雀发布)、滚动发布

        1)蓝绿发布

定义:以最小的停机时间做服务升级的策略

        需要维护的两个版本的环境分别为“蓝环境”和“绿环境”,简单说就是,“绿环境”就是目前正在使用的,能够正常使用的环境,而“蓝环境”就是需要更新到的版本使用的环境。

        发布流程:

首先将一半的服务流量从负载均衡列表中移除,并且更新服务版本,验证新版本没有问题后,将生产环境指向蓝环境,然后对于老版本的绿环境进行版本升级,最后将所有流量加回负载均衡。

如下图升级过程:

两套环境交替升级,旧版本会保留一定时间后在做升级,便于回滚

优点:

  • 升级过程无需停机,用户感知小
  • 升级/回滚速度快。

缺点:

  • 资源成本高

        2)红黑发布

定义:与蓝绿发布类似,红黑发布也是通过两套环境完成软件版本的升级,将当前环境称为红环境,新版本环境为黑环境。

发布流程:

首先需要申请新资源用于部署黑环境,在黑环境部署新版本的服务,黑环境部署完成后,一次性将生产流量指向黑环境,最后释放红环境的资源。

发布流程图如下:

        3)灰度发布(金丝雀发布)

定义:灰度发布属于增量发布,新老版本同时为用户提供服务,主要目的是保证系统的可用性

发布流程:

在现有的环境中对一定比例的服务进行升级,升级到新版本后,结合旧版本的其他服务一同提供服务,在新版本的的服务不出现错误时,再升级一定比例服务,以此类推,知道所有服务都升级完成。

发布流程图如下:

特点:

  • 用户体验影响小,灰度发布过程出现问题影响范围较小
  • 新版本功能逐步发布,可以逐步评估新版服务性能、稳定性和健康状态
  • 发布自动化程度不够,发布期间可能引发服务中断

        4)滚动发布

滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部升级成新版本。

滚动发布有几个参数

3 desired                 #设置副本数期望值
25% max surge             #设置更新时允许创建的最大副本数/比例,向上取整
25% max unavailable       #设置更新时允许销毁的最大副本数/比例,向下取整

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java怎么对复杂的数据类型排序和比大小

目录 一.对复杂的数据类型比大小 Comparable接口 compareTo方法 二.对复杂数据类型排序 三.总结 一.对复杂的数据类型比大小 假如我们现在有个学生类&#xff0c;并且我们实例化出了俩个学生对象&#xff0c;他们各自有各自的名字和年龄属性&#xff0c;我们如何对他们进…

搜维尔科技:丰田汽车采用 Xsens 运动跟踪技术来监控员工的身体健康并维持安全

Movella Holdings Inc.通过其传感器、软件和分析的全栈产品实现运动数字化&#xff0c;提供可提高汽车制造工人安全的数据。丰田汽车欧洲公司正在其上半身和下半身人体工学分析工具中利用 Movella 的 MVN Analytics™ 数据来排除生产线流程和车辆设计的故障。 丰田汽车欧洲公司…

计算机视觉基础(7)——相机基础

前言 从这一节开始&#xff0c;我们来学习几何视觉。中层视觉包括相机模型、单目几何视觉、对极几何视觉和多目立体视觉等。在学习几何视觉最开始&#xff0c;我们先来学习一下相机模型&#xff0c;了解相机的基本原理&#xff0c;了解相机如何记录影像。 一、数字相机 1.1 基…

【milkv】2、mpu6050驱动添加及测试

前言 本章介绍mpu6050的驱动添加以及测试。 其中驱动没有采用sdk提供的驱动&#xff0c;一方面需要配置irq&#xff0c;另一方面可以学习下如何通过ko方式添加驱动。 一、参考文章 驱动及测试文件编译流程&#xff1a; https://community.milkv.io/t/risc-v-milk-v-lsm6ds…

YOLOV5中parser参数配置

源码下载链接&#xff1a;ultralytics/yolov5: YOLOv5 &#x1f680; in PyTorch > ONNX > CoreML > TFLite (github.com) 需要配置的参数&#xff1a;--data parser.add_argument(--data, ...)&#xff1a;添加一个用于数据配置文件的路径的参数。 可以直接修改&am…

VBA技术资料MF82:替换文件夹中文件名中的字符

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

『数据结构与算法』散列表(哈希表)

1. 什么是散列表 散列表&#xff08;Hash Table&#xff09;也叫哈希表&#xff0c;是根据给定关键字&#xff08;Key&#xff09;来计算出该关键字在表中存储地址的数据结构。也就是说&#xff0c;散列表建立了关键字与存储地址之间的一种直接映射关系&#xff0c;将关键字映…

[文件读取]shopxo 文件读取(CNVD-2021-15822)

1.1漏洞描述 漏洞编号CNVD-2021-15822漏洞类型文件读取漏洞等级⭐⭐漏洞环境VULFOCUS攻击方式 描述: ShopXO是一套开源的企业级开源电子商务系统。 ShopXO存在任意文件读取漏洞&#xff0c;攻击者可利用该漏洞获取敏感信息。 1.2漏洞等级 高危 1.3影响版本 ShopXO 1.4漏洞复现…

【C++】泛型编程 ① ( 函数模板 | 函数模板概念 | 函数模板意义 | 函数模板定义语法 | 函数模板调用语法 | 显式类型调用 | 自动类型推导 )

文章目录 一、函数模板简介1、函数模板概念2、函数模板意义 二、函数模板语法1、函数模板定义语法2、函数模板调用语法 三、函数模板代码示例1、代码示例2、执行结果 四、函数模板代码示例 - 声明多个泛型的情况1、代码示例2、执行结果 一、函数模板简介 1、函数模板概念 在 C …

63基于matlab的生物地理的优化器(BBO)被用作多层感知器(MLP)的训练器。

基于matlab的生物地理的优化器&#xff08;BBO&#xff09;被用作多层感知器&#xff08;MLP&#xff09;的训练器。粒子群优化&#xff08;PSO&#xff09;、蚁群优化&#xff08;ACO&#xff09;、遗传算法&#xff08;GA&#xff09;、进化策略&#xff08;ES&#xff09;和…

企业电子招投标采购系统源码之电子招投标的组成

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

MySQL集群高可用架构之MHA

目录 一、概念&#xff1a; 1、MHA的工作流程&#xff1a; 2、MHA工作原理&#xff1a; 二、MHA实验&#xff1a; 一、概念&#xff1a; MHA&#xff1a;masterhight availabulity&#xff1a;基于主库的高可用环境下&#xff0c;实现主从复制以及故障切换 主从的架构&…

1688往微信小程序自营商城铺货商品采集API接口

一、背景介绍 随着移动互联网的快速发展&#xff0c;微信小程序作为一种新型的电商形态&#xff0c;正逐渐成为广大商家拓展销售渠道、提升品牌影响力的重要平台。然而&#xff0c;对于许多传统企业而言&#xff0c;如何将商品信息快速、准确地铺货到微信小程序自营商城是一个…

如何修复msvcr120.dll丢失问题,常用的5个解决方法分享

电脑在启动某个软件时&#xff0c;出现了一个错误提示&#xff0c;显示“msvcr120.dll丢失&#xff0c;无法启动软件”。这个错误通常意味着计算机上缺少了一个重要的动态链接库文件&#xff0c;即msvcr120.dll。 msvcr120.dll是什么 msvcr120.dll是Microsoft Visual C Redist…

文章发表 | 求臻医学发布精准肿瘤学临床试验预筛选平台

近日&#xff0c;求臻医学信息与人工智能团队研发的精准肿瘤学临床试验预筛选平台OncoCTMiner&#xff0c;在线发表于国际期刊Database: The Journal of Biological Databases and Curation (IF5.8)。OncoCTMiner集成自然语言处理&#xff08;NLP&#xff09;和大型语言模型&am…

Enfocus PitStop Pro 2022

Enfocus PitStop Pro是一款专为PDF编辑和优化而设计的软件&#xff0c;旨在帮助用户高效、准确地处理PDF文件。其功能包括但不限于&#xff1a; 全面的PDF编辑功能&#xff1a;包括添加、删除或重新排列页面&#xff0c;合并和分割PDF文件&#xff0c;以及调整页面大小和方向等…

Linux 函数库

函数库&#xff1a; 我们的C程序中&#xff0c;并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢? 最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去…

人工智能基础_机器学习032_多项式回归升维_原理理解---人工智能工作笔记0072

现在开始我们来看多项式回归,首先理解多维 原来我们学习的使用线性回归,其实就是一条直线对吧,那个是一维的,我们之前学的全部都是一维的对吧,是一维的,然后是多远的,因为有多个x1,x2,x3,x4... 但是比如我们有一个数据集,是上面这种,的如果用一条直线很难拟合,那么 这个时候,…

美国受教育程度最高的五大城市

许多研究表明&#xff0c;高等教育水平对一个城市的经济发展可起到决定性的作用。美国最繁荣、经济最活跃的地区无一例外都是拥有本科和研究生学位居民的集中地。本篇知识人网小编就为大家介绍美国受教育程度最高的五大城市。 本文根据主页菌在“Stoooges三士渡”刊载的文章整理…

通过cpolar实现外网ssh远程连接linux

现在我有个想法&#xff0c;就是希望通过外网能够远程连接到我的开发板。这里我们就需要使用到一种技术&#xff0c;内网穿透。 内网穿透是一种将内部网络中的设备通过外网进行访问的技术。在linux系统中&#xff0c;实现内网穿透有多种方式&#xff0c;其中最常见的方法是使用…