当前位置: 首页 > news >正文

k8s及常用对象简介

文章目录

  • 一、k8s是什么
    • 应用程序早期部署形式
    • 容器的引入
    • k8s的作用
  • 二、k8s中的常用对象
    • 1、Node
      • 获取node信息
    • 2、Namespace
      • namespace的使用
    • 3、Pod
      • 生命周期
      • pod的使用
    • 4、DaemonSet
      • DaemonSet的使用
    • 5、Deployment
      • 创建deploy
    • 6、ReplicaSet
    • 7、StatefulSet
      • 创建StatefulSet
  • 8、更新操作——kubectl patch

一、k8s是什么

应用程序早期部署形式

早期,各个应用程序在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。 例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况, 结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展, 并且维护许多物理服务器的成本很高。
作为解决方案,引入了虚拟化。虚拟化技术允许你在单个物理服务器的 CPU 上运行多个虚拟机(VM)。 虚拟化允许应用程序在 VM 之间隔离,并提供一定程度的安全,因为一个应用程序的信息 不能被另一应用程序随意访问。虚拟化技术能够更好地利用物理服务器上的资源,并且因为可轻松地添加或更新应用程序而可以实现更好的可伸缩性,降低硬件成本等等。

容器的引入

容器类似于 VM,但是它们具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。 因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。 由于它们与基础架构分离,因此可以跨云和 OS 发行版本进行移植。

k8s的作用

Kubernetes 提供了一个可弹性运行分布式系统的框架,用于管理运行应用程序的容器。它可以提供服务发现和负载均衡、存储编排、自动部署和回滚、自我修复等。

二、k8s中的常用对象

1、Node

Node是k8s集群中相对于Master而言的工作主机。Node可以是一台物理主机,也可以是一台虚拟机。在每个Node上运行用于启动和管理Pid的服务Kubelet,并能够被Master管理。

获取node信息

kubectl get nodes
kubectl describe node nodeName

2、Namespace

namespace(命名空间)相当于一个虚拟集群,为资源提供了一个范围,资源的名称需要在namespace内是唯一的。namespace不能相互嵌套,每个 Kubernetes 资源只能在一个namespace中。

namespace的使用

查看namespace

kubectl get ns

获取详细信息:

kubectl describe namespaces <name>

创建namespace:

kubectl create namespace namespace-name

删除namespace

kubectl delete namespaces namespace-name

3、Pod

Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。
Pod 是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器, 这些容器是相对紧密的耦合在一起的。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于 在同一逻辑主机上运行的云应用。

生命周期

Pod 在其生命周期中只会被调度一次。 一旦 Pod 被调度到某个节点,Pod 会一直在该节点运行,直到 Pod 停止或者被终止。
Pod 自身不具有自愈能力。如果 Pod 被调度到某节点而该节点之后失效,Pod 会被删除;类似地,Pod 无法在因节点资源耗尽或者节点维护而被驱逐期间继续存活。Kubernetes使用控制器来管理这些相对而言可随时丢弃的 Pod 实例。

pod的使用

创建pod

kubectl apply -f my-pod.yaml

查看pod基本信息

kubectl get podName -n namespace1
kubectl get pods -A | grep xxx

查看pod更多信息

kubectl get podName -n test1-ns -o wide

查看pod的yaml

kubectl get podName -n test1-ns -o yaml

查看pod运行详情信息

kubectl describe podName -n namespace1

删除pod

kubectl delete podName -n test1-ns

查看pod日志
-f :监听pod日志
–tail:输出最近的20条日志

kubectl logs -f podName --tail=20 -n namespace1

进入pod

kubectl exec -it podName -n namespace1 – /bin/bash

4、DaemonSet

DaemonSet确保全部(或者某些)节点上运行一个Pod 的副本。 当有节点加入集群时, 也会为他们新增一个 Pod。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。
DaemonSet常用于在每个节点上运行集群守护进程、在每个节点上运行日志收集守护进程和在每个节点上运行监控守护进程等。

DaemonSet的使用

资源模板testds.yaml信息如下:

apiVersion: apps/v1
kind: DaemonSet
metadata:name: testdsnamespace: test1-ns
spec:selector:matchLabels:app: testdstemplate:metadata:labels:app: testdsspec:# 污点容忍配置 添加此配置后,ds可以运行到 master 节点# taint节点打上污点 再给pod加toleration 使其可以被调度到被taint的节点上#tolerations:#- key: node-role.kubernetes.io/master#  operator: Exists#  effect: NoScheduleaffinity:nodeAffinity:# 节点亲和性选择策略(强制) requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: nvidia.kubernetes.io/gpuoperator: Invalues:- TeslaT4- TeslaP4  #域名配置hostAliases:- ip: 10.20.66.111hostnames:- testnode01      containers:- name: testds# 镜像地址image: xxxxxx/testds:V1.0.0-20240627imagePullPolicy: IfNotPresent# 所需资源resources:requests:cpu: 300mmemory: 300Milimits:cpu: 3000mmemory: 6000Mi# 端口映射ports:- name: test-portcontainerPort: 9111hostPort: 31111protocol: TCP- name: test-port2containerPort: 1555hostPort: 30555protocol: UDP# 环境变量env:- name: MY_POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name# 磁盘映射 volumeMounts:- name: testds-log# 容器内地址mountPath: /home/log/testds/volumes:- name: testds-log# 宿主机地址hostPath:path: /home/log/testds/# 不存在type或type为空:不检查; 为Directory:目录必须存在; DirectoryOrCreate:目录不存在则新建。type: DirectoryOrCreate

创建/更新命令:

kubectl apply -f testds.yaml

查看详细信息

kubectl describe ds-name -n namespace-name

修改DeamonSet (可以看到某些describe看不到的信息)

kubectl edit DaemonSet ds-name -n namespace-name

5、Deployment

Deployment 通过管理 ReplicaSet 来确保任何时间都有指定数量的 Pod 副本在运行。Deployment运行无状态应用程序,如果需要进行升级,则需要替换副本集。

创建deploy

新建一个deploy模板 deploy-nginx.yaml,内容如下:
其实deployment的yaml和daemonset的差别,除了kind不同,就只多了.spec.replicas

apiVersion: apps/v1
kind: Deployment
metadata:labels:# 自定义标签app: nginx-deploy-test# 资源名称name: nginx-test-1namespace: test1
spec:# pod 副本数量replicas: 3# 模板选择器selector:matchLabels:# 选择下方声明的 templateapp: nginx-testtemplate:metadata:labels:app: nginx-testspec:containers:- image: nginxname: nginx

创建/更新命令:

kubectl apply -f deploy-nginx.yaml

以上示例中:
1、创建名为nginx-test-1(由 .metadata.name 字段标明)的 deployment
2、该deployment创建三个(由 replicas 字段标明)Pod副本
3、selector 字段定义 Deployment 如何查找要管理的 Pods。 在这里,选择在 Pod 模板中定义的标签(app: nginx-test)。
4、spec.selector.matchLabels 字段是 {key,value} 键值对映射。 在 matchLabels 映射中的每个 {key,value} 映射等效于 matchExpressions 中的一个元素, 即其 key 字段是 “key”,operator 为 “In”,values 数组仅包含 “value”。 在 matchLabels 和 matchExpressions 中给出的所有条件都必须满足才能匹配

注意:
如果没有现成的模板,可以使用 --dry-run 快速生成一个deploy资源模板

kubectl create deploy nginx-test --image=nginx --dry-run=client --replicas=3 -oyaml -n test1

6、ReplicaSet

ReplicaSet可以看作是Deployment控制器的底层组件,专注于维护Pod的副本数量,确保集群中的Pod实例始终符合用户定义的期望状态。

7、StatefulSet

StatefulSet 其实我并没有用过,但还是简单介绍下。
StatefulSet用来管理有状态应用的工作负载Api对象。StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符,因此适用于数据库和分布式系统等有状态应用的部署。和 Deployment 类似, StatefulSet 管理基于相同容器规约的一组 Pod。但和 Deployment 不同的是, StatefulSet 为它们的每个 Pod 维护了一个有粘性的 ID。这些 Pod 是基于相同的规约来创建的, 但是不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。

创建StatefulSet

创建资源模板信息 web.yaml 其中包括 一个 headless-service(无头服务)和 一个 StatefulSet
svc 的 name 必须与 sts 的 spec.serviceName 相等,否则无法通过路由规则找到容器服务
这里为了方便就挂载了一个空目录,如果有自己的 storageClass 也可以使用

apiVersion: v1
kind: Service
metadata:# must be equal sts .spec.serviceNamename: nginx-snlabels:app: nginx
spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: web
spec:# must be equal headless-svc metadata.nameserviceName: "nginx-sn"replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestimagePullPolicy: IfNotPresentports:- containerPort: 80name: webvolumeMounts:- name: nginx-volumemountPath: /usr/share/nginx/htmlvolumes:- name: nginx-volume# 为了演示方便,挂载个空目录emptyDir: {}

创建/更新命令依旧使用kubectl apply -f web.yaml
说明:
直接删除sts对应的pods时,sts会重新调度生成一个新的pod(pod ip会变,但是编号不变)。比如删除的是po/web-0,sts会重新调度生成一个web-0。
sts 也可以修改对应的副本数,新生成的pod 编号会依次递增。
假设现在有三个pod 分别为:web-0、web-1、web-2,如果删除web-1,sts会重新调度生成一个新的web-1,之前的pod保持不变

8、更新操作——kubectl patch

要更新一个已创建的比如deployment 可以用kubectl patch
比如指定它的nodeSelector
kubectl patch deployment test-server --patch '{"spec": {"template": {"spec": {"nodeSelector": {"kubernetes.io/hostname": "worker1"}}}}}' -n test-ns
这样看可能看着眼晕,我们给它展开,它其实是这么个格式:

kubectl patch deployment <deployment-name> -n <namespace> --patch '
{"spec": {"template": {"spec": {"nodeSelector": {"kubernetes.io/hostname": "worker1"}}}}
}
'

又或者加域名配置:

kubectl patch deployment <deployment-name> -n <namespace> --type='json' -p='[{"op": "add","path": "/spec/template/spec/hostAliases","value": [{"ip": "127.0.0.1","hostnames": ["example.com"]},{"ip": "10.20.30.40","hostnames": ["foo.bar", "baz.qux"]}]}
]'

相关文章:

k8s及常用对象简介

文章目录 一、k8s是什么应用程序早期部署形式容器的引入k8s的作用 二、k8s中的常用对象1、Node获取node信息 2、Namespacenamespace的使用 3、Pod生命周期pod的使用 4、DaemonSetDaemonSet的使用 5、Deployment创建deploy 6、ReplicaSet7、StatefulSet创建StatefulSet 8、更新操…...

HTTPS数字证书验证论述

1 概述 网络请求方式通常分为两种&#xff0c;分别是HTTP请求和HTTPS请求&#xff0c;其中HTTP的传输属于明文传输&#xff0c;在传输的过程中容易被人截取并且偷窥其中的内容&#xff0c;而HTTPS是一种在HTTP的基础上加了SSL/TLS层&#xff08;安全套接层&#xff09;的安全的…...

【高考志愿】地质资源与地质工程

目录 一、专业概述 1.1 专业定义 1.2 主要课程 1.3 专业培养目标 二、就业前景和考研方向 三、工作特点和挑战 四、如何培养核心竞争力 五、 地质资源与地质工程专业排名 六、结语 关于高考志愿选择地质资源与地质工程专业&#xff0c;以下是一些详细的介绍和参考信息…...

全网最佳硕士研究生复试简历模板

硕士研究生复试简历模板 ✨ 简介 提供了一个适用于国内硕士研究生复试的个人简历模板。该模板通过统一的“样式”形成规范的Word格式&#xff0c;是目前研究生复试的最佳简历模板之一。模板使用“华文中宋”字体&#xff0c;如您的电脑中未安装此字体&#xff0c;请提前安装。…...

Rocky Linux 9 系统OpenSSH CVE-2024-6387 漏洞修复

Rocky Linux 9系统 OpenSSH CVE-2024-6387 漏洞修复 1、漏洞修复2、修复思路3、修复方案3.1、方案一3.2、方案二 4、总结5、参考 1、漏洞修复 CVE-2024-6387&#xff1a;regreSSHion&#xff1a;OpenSSH 服务器中的远程代码执行&#xff08;RCE&#xff09;&#xff0c;至少在…...

Sping源码(九)—— Bean的初始化(非懒加载)—mergeBeanDefinitionPostProcessor

序言 前几篇文章详细介绍了Spring中实例化Bean的各种方式&#xff0c;其中包括采用FactoryBean的方式创建对象、使用反射创建对象、自定义BeanFactoryPostProcessor以及构造器方式创建对象。 创建对象 这里再来简单回顾一下对象的创建&#xff0c;不知道大家有没有这样一个疑…...

labview技巧——AMC框架安装

AMC工具包的核心概念是队列&#xff0c;队列是一种先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的数据结构&#xff0c;适用于处理并发和异步任务。在LabVIEW中&#xff0c;队列可以用于在不同VI之间传递数据&#xff0c;确保消息的有序处理&#xff0…...

解锁分布式云多集群统一监控的云上最佳实践

作者&#xff1a;在峰 引言 在当今数字化转型加速的时代&#xff0c;随着混合云、多云多集群环境等技术被众多企业广泛应用&#xff0c;分布式云架构已成为众多企业和组织推动业务创新、实现弹性扩展的首选&#xff0c;分布式云容器平台 ACK One&#xff08;Distributed Clou…...

学会拥抱Python六剑客,提高编程效率

在Python语言中&#xff0c;有六个强大的工具&#xff0c;它们被称为"Python六剑客"。而Python六剑客指的是Python中常用的六种功能强大且灵活的工具&#xff0c;它们分别是“切片&#xff08;Slicing&#xff09;&#xff0c;推导列表&#xff08;List Comprehensio…...

mysql 根据当前时间筛选某个时间范围内的数据

1.根据天数筛选 SELECT * FROM coupons WHERE NOW() BETWEEN start_time AND end_time; 在这个查询中&#xff0c;NOW()函数返回当前的日期和时间。BETWEEN操作符用于检查NOW()返回的当前时间是否在start_time和end_time之间&#xff08;包括这两个时间&#xff09;。 注意&a…...

Linux 常用指令详解

Linux 是一个强大而灵活的操作系统&#xff0c;掌握常用的 Linux 指令是使用和管理 Linux 系统的基础。本文将介绍一些常用的 Linux 指令&#xff0c;并附上 Vim 和 g 的常用指令说明&#xff0c;帮助你更好地进行开发和操作。 1. 基本文件操作指令 1.1 显示目录内容 ls常用…...

【简单讲解下npm常用命令】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

Header Location重定向机制解析与应用

Header Location重定向机制解析与应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨HTTP中的Header Location重定向机制&#xff0c;以及在…...

硅纪元AI应用推荐 | 国产创作引擎即梦AI助力创作者探索创作新境界

“硅纪元AI应用推荐”栏目&#xff0c;为您精选最新、最实用的人工智能应用&#xff0c;无论您是AI发烧友还是新手&#xff0c;都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能&#xff0c;开启智慧新时代&#xff01; 在人工智能快速发展的今天&#xff0c;各…...

使用TableGeneration生成已标注的表格数据用于表格识别

利用 TableGeneration 生成多样化表格数据 TableGeneration 简介环境准备chrome浏览器(Linux下推荐)火狐浏览器(Mac下推荐) 生成表格生成表格 参数说明结论 在数据生成和处理领域&#xff0c;表格数据的生成是一个常见需求&#xff0c;尤其是在机器学习和数据分析领域。今天&am…...

赛目科技三度递表:净利率及资产回报率不断下滑,经营成本越来越高

《港湾商业观察》施子夫 5月29日&#xff0c;北京赛目科技股份有限公司&#xff08;以下简称&#xff0c;赛目科技&#xff09;第三次递表港交所&#xff0c;公司拟主板上市&#xff0c;独家保荐机构为光银国际。 公开信息显示&#xff0c;赛目科技此前曾于2022年12月&#x…...

【QT】概述|对象树模型|两种控件模式|信号和槽|lambda

目录 什么是QT 特点 QT程序 main函数 QT按钮 纯代码模式 图形化模式 对象树模型 信号和槽 连接与断开 自动连接 断开连接 信号的发射 lambda表达式 基本语法 捕获列表 Lambda表达式用于信号与槽的连接 例如 什么是QT Qt是一个跨平台的C图形用户界面应用…...

Java中的安全编码实践与防御技巧

Java中的安全编码实践与防御技巧 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨Java中的安全编码实践与防御技巧&#xff0c;这对于开发人员来说…...

linux 常用的命令、文件路径、其他工具或软件包

命令 sudo apt dist-upgrade 解决显示 暂不升级、未被升级dd if/dev/zero of./rootfs.img bs1G count6 制作一个 6G 的空白镜像。bs 是块字节数&#xff0c;count 是 bs 的个数。dd if./rootfs.img of/dev/sdc2 bs512 烧录 rootfs.img 镜像到 /dev/sdc2。bs 是 512 个字节&…...

00 如何根据规律在变化中求发展?

你好&#xff0c;我是周大壮。目前&#xff0c;我已在搜索推荐等算法技术领域从事研发近 10 年&#xff0c;做过诸多流量分发领域的算法技术工作。 如今任 58 同城的算法架构师、技术委员会人工智能分会委员、58 本地服务事业群算法策略部负责人&#xff0c;我主要负责 58 集团…...

UUID和自增ID做主键到底哪个好?

UUID&#xff08;通用唯一识别码&#xff09; 优点&#xff1a; 全局唯一性&#xff1a;由不同算法生成&#xff0c;确保全球范围内的唯一性&#xff0c;避免主键冲突。不可预测性&#xff1a;随机生成&#xff0c;难以被猜测&#xff0c;适合保密性应用。分布式应用&#xff1…...

FW SystemUI Keyguard解析(二)

文章目录 CTS之Keyguard Menu事件处理 CTS之Keyguard Menu事件处理 事件触发点: NotificationShadeWindowViewController.dispatchKeyEvent 设置setInteractionEventHandler回调之后通过NotificationShadeWindowView 触发 调用到return mService.onMenuPressed(); public cla…...

MySQL之备份与恢复(二)

备份与恢复 定义恢复需求 如果一切正常&#xff0c;那么永远也不需要考虑恢复。但是&#xff0c;一旦需要恢复&#xff0c;只有世界上最好的备份系统是没用的&#xff0c;还需要一个强大的恢复系统。 不幸的是&#xff0c;让备份系统平滑工作比构造良好的恢复过程和工具更容易…...

MySQL:保护数据库

保护数据库 1. 用户1.1 创建用户1.2 查看用户1.3 删除用户1.4 修改密码 2. 权限2.1 授予权限2.2 查看权限2.3 撤销权限 之前都是介绍本地数据库而你自己就是数据库的唯一用户&#xff0c;所以不必考虑安全问题。但实际业务中数据库大多放在服务器里&#xff0c;你必须妥善处理好…...

不是大厂云用不起,而是五洛云更有性价比

明月代维的一个客户的大厂云境外云服务器再有几天就到期了&#xff0c;续费提醒那是提前一周准时到来&#xff0c;但是看到客户发来的续费价格截图&#xff0c;我是真的没忍住。这不就是在杀熟吗&#xff1f;就这配置续费竟然如此昂贵&#xff1f;说实话这个客户的服务器代维是…...

C++初学者指南-3.自定义类型(第一部分)-异常

C初学者指南-3.自定义类型(第一部分)-异常 文章目录 C初学者指南-3.自定义类型(第一部分)-异常简介什么是异常&#xff1f;第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理 问题和保证资源泄露使用 RAII 避免内存泄漏&#xff01;析构函数&#xff1a;不要让异…...

学会python——用python编写一个电子时钟(python实例十七)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.电子时钟程序 3.1 代码构思 3.2代码实例 3.3运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性…...

elementui中@click短时间内多次触发,@click重复点击,做不允许重复点击处理

click快速点击&#xff0c;发生多次触发 2.代码示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">确 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按钮 */sub…...

助力游戏实现应用内运营闭环,融云游戏社交方案升级!

通信能力在所有应用场景都是必备组件&#xff0c;这源于社交属性带给应用的增长神话。 在游戏场景&#xff0c;玩家从少数核心向大众用户泛化扩展的过程&#xff0c;就是游戏深度融合社交能力的过程。 从单机到联机&#xff0c;游戏乐趣的升级 1996 年&#xff0c;游戏界顶流…...

守护创新之魂:源代码防泄漏的终极策略

在信息化快速发展的今天&#xff0c;企业的核心机密数据&#xff0c;尤其是源代码&#xff0c;成为了企业竞争力的关键所在。然而&#xff0c;源代码的泄露风险也随之增加&#xff0c;给企业的安全和发展带来了巨大威胁。在这样的背景下&#xff0c;SDC沙盒作为一种创新的源代码…...

Halcon 基于分水岭的目标分割

一 分水岭 1 分水岭介绍 传统的分水岭分割方法&#xff0c;是一种基于拓扑理论的数学形态学的分割方法&#xff0c;其基本思想是把图像看作是地质学上的拓扑地貌&#xff0c;图像中每一像素的灰度值表示该点的海拔高度&#xff0c;每一个局部极小值及其周边区域称为集水盆地&…...

PHP 面向对象编程(OOP)入门指南

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种编程范式&#xff0c;通过使用对象来设计和组织代码。PHP作为一种广泛使用的服务器端脚本语言&#xff0c;支持面向对象编程。本文将介绍PHP面向对象编程的基本概念和用法&#xff0…...

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…...

Vue3实现点击按钮实现文字变色

1.动态样式实现 1.1核心代码解释&#xff1a; class"power-station-perspective-item-text"&#xff1a; 为这个 span 元素添加了一个 CSS 类&#xff0c;以便对其样式进行定义。 click"clickItem(item.id)"&#xff1a; 这是一个 Vue 事件绑定。当用户点…...

深入理解Vue生命周期钩子函数

深入理解Vue生命周期钩子函数 Vue.js 是一款流行的前端框架&#xff0c;通过其强大的响应式数据绑定和组件化的开发方式&#xff0c;使得前端开发变得更加简单和高效。在Vue应用中&#xff0c;每个组件都有其生命周期&#xff0c;这些生命周期钩子函数允许开发者在不同阶段执行…...

Linux-gdb

目录 1.-g 生成含有debug信息的可执行文件 2.gdb开始以及gdb中的常用执行指令 3.断点的本质用法 4.快速跳出函数体 5.其他 1.-g 生成含有debug信息的可执行文件 2.gdb开始以及gdb中的常用执行指令 3.断点的本质用法 断点的本质是帮助我们缩小出问题的范围 比如&#xff0c;…...

Oracle分析表和索引(analyze)

分析表 analyze table tablename compute statistics; 分析索引 analyze index indexname compute statistics; 该语句生成的统计信息会更新user_tables这个视图的统计信息,分析的结果被Oracle用于基于成本的优化生成更好的查询计划 对于使用CBO(Cost-Base Optimization)很有好…...

MyBatis踩坑记录-多表关联字段相同,字段数据覆盖问题

MyBatis踩坑记录-多表关联字段相同&#xff0c;字段数据覆盖问题 1. 背景描述2. 实体记录3. 错误映射3.1 造成的影响 4. 解决办法4.1 修改映射文件 5. 修复后的效果5.1 返回的数据5.2 正确展示 7. end ~ 1. 背景描述 现有一下业务&#xff0c;单个任务下可能会有多个子任务&am…...

昇思25天学习打卡营第6天|数据变换 Transforms

学习目标&#xff1a;熟练掌握数据变换操作 熟悉mindspore.dataset.transforms接口 实践掌握常用变换 昇思大模型平台学习心得记录&#xff1a; 一、关于mindspore.dataset.transforms 1.1 变换 mindspore.dataset.transforms.Compose将多个数据增强操作组合使用。 mindspo…...

在线JSON可视化工具--改进

先前发布了JSON格式化可视化在线工具&#xff0c;提供图形化界面显示结构关系功能&#xff0c;并提供JSON快速格式化、JSON压缩、快捷复制、下载导出、对存在语法错误的地方能明确显示&#xff0c;而且还支持全屏&#xff0c;极大扩大视野区域。 在线JSON格式化可视化工具 但…...

探讨命令模式及其应用

目录 命令模式命令模式结构命令模式适用场景命令模式优缺点练手题目题目描述输入描述输出描述题解 命令模式 命令模式是一种行为设计模式&#xff0c; 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其…...

1、音视频解封装流程---解复用

对于一个视频文件(mp4格式/flv格式)&#xff0c;audio_pkt或者video_pkt是其最基本的数据单元&#xff0c;即视频文件是由独立的视频编码包或者音频编码包组成的。 解复用就是从视频文件中把视频包/音频包单独读取出来保存成独立文件&#xff0c;那么如何得知packet是视频包还是…...

centos7升级gcc到7.3.0

1、下载gcc-7.3.0源码 wget ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz 2、解压gcc-7.3.0 tar -xvf gcc-7.3.0.tar.gz3、安装依赖 cd gcc-7.3.0 ./contrib/download_prerequisites ./contrib/download_prerequisites会下载对应的依赖包&#xff0c;如果下载不了的话&a…...

系统运维面试题总结(网络基础类)

系统运维面试题总结&#xff08;网络基础类&#xff09; 网络基础类第七层&#xff1a;应用层第六层&#xff1a;表示层第五层&#xff1a;会话层第四层&#xff1a;传输层第三层&#xff1a;网络层第二层&#xff1a;数据链路层第一层&#xff1a;物理层 类似面试题1、TCP/IP四…...

PO模式登录测试

项目实践 登陆项目测试 get_driver import page from selenium import webdriverclass GetDriver:driver Noneclassmethoddef get_driver(cls):if cls.driver is None:cls.driver webdriver.Edge()cls.driver.maximize_window()cls.driver.get(page.url)return cls.drivercl…...

X86 +PC104+支持WinCE5.0,WinCE6.0,DOS,WinXP, QNX等操作系统,工业控制数据采集核心模块板卡定制

CPU 模块 是一款基于RDC 3306的SOM Express模块。RDC 3306这款X86架构的CPU是一款性能高、稳定性强的处理器。 它是一款灵活精巧的主板&#xff08;尺寸为91.8mm68.6mm&#xff09;&#xff0c;可以灵活的运用于用户的底板&#xff0c;节约开发成本。模块的接插件使用插针形式…...

视频监控汇聚和融合平台的特点、功能、接入方式、应用场景

目录 一、产品概述 二、主要特点 1、多协议支持 2、高度集成与兼容性 3、高性能与可扩展性 4、智能化分析 5、安全可靠 三、功能概述 1. 视频接入与汇聚 2. 视频存储与回放 3. 实时监控与预警 4. 信息共享与联动 5. 远程管理与控制 四、接入方式 1、直接接入 2…...

实习总结 --- 其他业务

一. 回归测试&#xff1a;回归测试与测新是对应的&#xff0c;当需求准入交付测试的时候首先要进行的就是测新&#xff0c;也就是对新功能对测试&#xff0c;一般是在sim环境下测试的&#xff1b;当测新通过后才会进行回归测试&#xff0c;回归测试的目的是为了保证老功能的正确…...

2024年上半年典型网络攻击事件汇总

文章目录 前言一、Ivanti VPN 的0 Day攻击(2024年1月)二、微软公司高管账户泄露攻击(2024年1月)三、Change Healthcare网络攻击(2024年2月)四、ConnectWise ScreenConnect漏洞利用攻击(2024年2月)五、XZ Utils软件供应链攻击(2024年3月)六、AT&T数据泄露攻击(20…...

Ozon、美客多补单测评黑科技:打造无懈可击的自养号补单环境

不管哪个跨境平台的风控都会做升级&#xff0c;相对的补单技术也需要进行相应的做升级&#xff0c;风控升级后&#xff0c;自己养号补单需要注意以下技术问题&#xff0c;以确保补单的稳定性和安全性&#xff1a; 一、物理环境 1. 硬件参数伪装&#xff1a;平台已经开始通过I…...

数据分析如何在企业中发挥价值

数据分析如何在企业中发挥价值 数据分析的目的是什么为什么怎么做做什么 思考问题流程确认问题拆解问题量化分析 分析数据流程收集数据处理数据制作图表 全流程 数据分析的目的 是什么 通过数据量化企业当前的经营现状或业务事实&#xff0c;将业务细节转换为具体数据&#xf…...

Linux搭建Socks5网络代理服务器,Centos 8 系统

一、目的用途 用于网络代理转发请求&#xff0c;隐藏真实的请求ip地址&#xff0c;或者用于绕过网络限制的目标服务器&#xff0c;将自己的访问请求到代理服务器&#xff0c;通过网络代理服务器将请求转发到目标服务器 二、安装Socks5前的准备 1、从官网下载ss5安装包&#xf…...

一文解决图论中有向图、无向图、非负加权图的单源最短路径问题【超详细】【通用模板程序】【深入分析】【无需基础】【c++】

本文致力于提供一种解决图论中所有&#xff08;或绝大部分&#xff09;有向图、无向图、非负加权图的单源最短路径问题的通用程序模板&#xff0c;本文提供的模板并不是简单的可行模板&#xff0c;而是经过深入分析解释的一个较高质量和性能的通用程序模版。在每个关键变量存储…...

MATLAB——循环语句

一、for end语句 在该语法中&#xff0c;循环变量是用于迭代的变量名&#xff0c;它会在每次循环迭代中从向量或矩阵中取出一列的值。数值向量或者矩阵则表示了循环变量可以取值的范围&#xff0c;通常根据实际需要事先给定。一旦循环变量遍历完数值向量或者矩阵中的所有值&…...

以太网常用协议——ARP协议

文章目录 一、 ARP协议与MAC层1.TCP/IP协议2. MAC地址3. ARP映射4. ARP请求和ARP应答 二、以太网帧格式三、ARP协议1. 以太网ARP通信测试&#xff1a; 以太网使用的协议很多&#xff0c;常用的有ARP、UDP等。 再介绍具体协议之前需要先知道一些基本的概念&#xff1a; 一、 AR…...

GSR解读 | 7月7日起,所有新车出海欧洲将强制配备这些ADAS功能!

今年以来&#xff0c;“出海”“卷到海外去”成为大大小小车企活动中的高频词。在国内卷无可卷的主机厂们逐渐将战火烧到海外&#xff0c;而欧洲则成为大部分车厂的出海第一站&#xff0c;如蔚来、极氪、小鹏都在欧洲建立了本地团队或子公司。 中国车企出海欧洲在高歌猛进的同…...

本田CR-V与大众途观L车辆对比:资深人士解析,长期使用明显区别

在汽车市场领域,本田CR-V及大众途观L皆为备受瞩目的SUV车型。它们在市场上一直是激烈的竞争对手,消费者往往在它们之间犹豫不决。关于本田CR-V与大众途观L的对比文章,以帮助消费者更好地了解这两款车型的优劣势,并做出更明智的选择。一、车型特点本田CR-V是一款紧凑型SUV,…...

型格/飞度無限MUGEN版上市售价9.78万元起

3月7日,广汽本田無限MUGEN热血双核在亚洲规模最大的改装车展“2024深圳国际定制改装汽车展览会”上市。型格無限MUGEN版售价15.79万元起,飞度無限MUGEN版售价9.78万元起。型格/飞度無限MUGEN版是市面少有的量产官改神车,上路合规,配齐玩车迷梦寐以求的無限MUGEN定制套件,每…...

前端Vue小兔鲜儿电商项目实战Day01

一、项目介绍 1. 项目技术栈 2. 项目规模 3. 项目亮点 4. 课程安排 5. 适合人群 二、Vue3组合式API体验 1. 通过一个Counter案例体验Vue3新引入的组合式API ①Vue2的代码 <template><button click"addCount"> {{ count }}</button> </templ…...

TypeScript中的`let`、`const`、`var`区别:变量声明的规范与实践

TypeScript中的let、const、var区别&#xff1a;变量声明的规范与实践 引言 在TypeScript中&#xff0c;变量声明是代码编写的基础部分。let、const、var 是三种用于变量声明的关键字&#xff0c;它们各自有不同的作用域规则和可变性特点。 基础知识 作用域&#xff1a;变量…...

每日两题 / 131. 分割回文串 42. 接雨水(LeetCode热题100)

131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 数据量较小&#xff0c;考虑直接暴力&#xff0c;每次dfs&#xff1a;以bg作为左区间&#xff0c;往右遍历&#xff0c;找到一段回文串区间后&#xff0c;将回文串插入vector<string>&#xff0c;并以下一个下标…...

得物小程序逆向+qt可视化(不含sku)

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…...