【Kubernetes】常用命令全解析:从入门到实战(中)
🐇明明跟你说过:个人主页
🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅
🔖行路有良友,便是天堂🔖
目录
一、引言
1、什么是k8s
2、K8s的核心功能
二、资源调度与伸缩命令
1、资源调度与伸缩命令
1.1、Label(标签)
1.2、Selector(选择器)
2、资源配额与限制
2.1、创建资源配额(ResourceQuota)
2.2、查看资源配额
2.3、创建资源限制(Resource Limits)
2.4、查看Pod的资源限制
2.5、删除资源配额与资源限制
三、网络与安全命令
1、创建与管理Network Policies
1.1、创建 Network Policy
2.2、基本 Network Policy 规则
2.3、管理 Network Policies
2、安全认证与授权
2.1、配置RBAC
2.2、管理Service Accounts
一、引言
1、什么是k8s
K8s(Kubernetes)可以简单理解为一个容器管理系统,它帮助你在多个机器上高效、可靠地运行和管理“应用容器”。
想象一下,容器就像是一个个小盒子,每个盒子里面装着一个独立运行的应用或服务。Kubernetes的作用,就像一个“仓库管理员”,它负责管理这些盒子,确保它们按需部署、能够自动修复故障并高效地工作。
- 容器:就像是一个小型应用工厂,里面有你需要的一切(代码、依赖、配置等),它可以快速创建、删除和移动。
- K8s:就像是一个聪明的机器人,能帮你管理这些工厂,确保它们在任何时候都在正常工作,不会发生停工的情况。
举个例子,如果你有一个网站,它需要用到多个“工厂”(比如数据库、前端、后台服务等),K8s会帮你:
- 自动部署:把这些工厂(容器)放到服务器上运行。
- 负载均衡:分配流量,确保每个工厂都能高效工作,不会因为流量过大崩溃。
- 自我修复:如果某个工厂出了问题(比如服务器坏了),K8s会自动替换或重启它,确保不会影响整体服务。
总的来说,K8s就像是一个智能调度员,帮助你自动化地管理应用程序,避免人工干预,提高效率和稳定性。
2、K8s的核心功能
- 自动化部署和回滚:K8s能够自动部署和更新应用,同时可以在出现问题时进行回滚,恢复到之前的状态。
- 负载均衡:它能够自动分配流量到各个容器实例,确保应用的高可用性。
- 自我修复:K8s能够自动检测故障的容器并重新启动、替换或终止它们,保持应用健康运行。
- 服务发现和负载均衡:它能够自动为容器分配IP地址并将它们链接到服务中,简化微服务架构的部署。
- 存储编排:支持将本地存储、云存储或分布式存储挂载到容器中。
- 自动扩展:可以根据负载自动增加或减少容器的实例数量。
- 密钥和配置管理:允许存储敏感信息(如密码、API密钥等),并将其传递到容器中。
二、资源调度与伸缩命令
1、资源调度与伸缩命令
1.1、Label(标签)
标签是附加到Kubernetes资源(如Pod、Service、Deployment等)上的键值对。它们用于标识和分类这些资源。标签本身并没有任何业务逻辑,但它们为选择和管理资源提供了重要的信息。
举个例子:
- Pod可以被赋予标签 app=frontend,表示它是“前端”应用的一部分。
- 另一个Pod可能有标签 app=backend,表示它是“后端”应用的一部分。
标签是动态的,可以随时添加、修改或删除,灵活性非常高。
给 Pod 添加标签
假设你有一个名为 my-pod 的 Pod,想要给它添加标签 app=frontend:
kubectl label pod my-pod app=frontend
如果要修改现有的标签,可以使用相同的命令,kubectl 会更新标签:
kubectl label pod my-pod app=backend
给 Deployment 添加标签
你也可以在创建 Deployment 时或之后添加标签。例如,给名为 my-deployment 的 Deployment 添加 env=production 标签:
kubectl label deployment my-deployment env=production
给 Node 添加标签
例如,为名为 node-1 的节点添加标签 zone=us-east1:
kubectl label node node-1 zone=us-east1
1.2、Selector(选择器)
选择器是用来选择一组具有特定标签的资源的方式。它允许Kubernetes根据标签来筛选出你关心的资源。
选择器主要有两种类型:
- 等于选择器(Equality-Based Selector):选择符合某个标签键值对的资源。
- 集合选择器(Set-Based Selector):选择符合标签集合条件的资源。
使用 Label Selector 选择 Pods
我们可以通过 kubectl get 命令使用标签选择器来选择特定标签的资源。例如,选择所有标签为 app=frontend 的 Pod:
kubectl get pods -l app=frontend
这将列出所有具有标签 app=frontend 的 Pod。
使用多个标签进行选择
如果你想选择多个标签条件,可以使用逗号分隔多个条件。例如,选择 app=frontend 且 env=production 的 Pod:
kubectl get pods -l app=frontend,env=production
使用集合选择器
Kubernetes支持集合选择器,允许你使用 In、NotIn、Exists 和 DoesNotExist 等操作符。例如,选择 env 标签值为 production 或 staging 的 Pod:
kubectl get pods -l 'env in (production,staging)'
或者,选择 env 标签存在但不等于 development 的 Pod:
kubectl get pods -l 'env notin (development)'
2、资源配额与限制
2.1、创建资源配额(ResourceQuota)
资源配额(ResourceQuota)用于限制特定命名空间内可使用的资源总量。可以通过以下步骤在命令行中创建资源配额:
创建资源配额
例如,创建一个资源配额 my-quota,限制命名空间 my-namespace 中的资源使用:
apiVersion: v1
kind: ResourceQuota
metadata:name: my-quotanamespace: my-namespace
spec:hard:requests.cpu: "4" # 最大请求CPU为4个核心requests.memory: "8Gi" # 最大请求内存为8Gilimits.cpu: "8" # 最大限制CPU为8个核心limits.memory: "16Gi" # 最大限制内存为16Gipods: "10" # 最多创建10个Pod
将上面的内容保存为 resource-quota.yaml,然后使用以下命令应用:
kubectl apply -f resource-quota.yaml
通过命令行直接创建资源配额
我们也可以通过命令行直接创建资源配额。以下是一个限制 CPU 和内存请求、限制以及 Pod 数量的资源配额示例:
kubectl create quota my-quota \--namespace=my-namespace \--hard=requests.cpu=4 \--hard=requests.memory=8Gi \--hard=limits.cpu=8 \--hard=limits.memory=16Gi \--hard=pods=10
这个命令会创建一个名为 my-quota 的资源配额,并为命名空间 my-namespace 限制资源使用。
2.2、查看资源配额
查看指定命名空间的资源配额使用情况:
kubectl get resourcequota -n my-namespace
该命令将显示 my-namespace 中的所有资源配额及其当前使用情况。输出会显示每种资源(如 CPU、内存、Pod 数量)的请求和限制的使用量。
查看特定资源配额的详细信息:
kubectl describe resourcequota my-quota -n my-namespace
2.3、创建资源限制(Resource Limits)
资源限制(如 CPU 和内存)通常是为单个 Pod 或容器设置的。你可以在 Pod 的定义文件中为容器指定 requests 和 limits 来设置资源限制。
在Pod的YAML中配置资源限制
apiVersion: v1
kind: Pod
metadata:name: my-app
spec:containers:- name: my-app-containerimage: my-app-imageresources:requests:memory: "64Mi" # 请求64MB内存cpu: "250m" # 请求250m CPU(0.25个CPU核心)limits:memory: "128Mi" # 限制最多使用128MB内存cpu: "500m" # 限制最多使用500m CPU(0.5个CPU核心)
将此内容保存为 pod.yaml,并使用以下命令应用:
kubectl apply -f pod.yaml
通过命令行直接设置资源限制
你可以通过 kubectl set resources 命令为现有的 Pod 或 Deployment 设置资源限制。例如,给名为 my-deployment 的 Deployment 设置资源请求和限制:
kubectl set resources deployment my-deployment \--limits=cpu=500m,memory=128Mi \--requests=cpu=250m,memory=64Mi
这个命令会为 my-deployment 中的所有容器设置资源限制。
2.4、查看Pod的资源限制
要查看 Pod 或容器的资源请求和限制,可以使用以下命令:
kubectl describe pod my-app
输出中会包含每个容器的资源请求和限制。
2.5、删除资源配额与资源限制
删除资源配额
如果你不再需要资源配额,可以通过以下命令删除:
kubectl delete resourcequota my-quota -n my-namespace
删除Pod的资源限制
如果你要删除已设置的资源限制,可以使用以下命令:
kubectl set resources pod my-app --limits=cpu=0,memory=0 --requests=cpu=0,memory=0
这个命令将 my-app Pod 中的所有容器的资源限制和请求设置为 0,相当于删除资源限制。
三、网络与安全命令
1、创建与管理Network Policies
1.1、创建 Network Policy
Network Policy 是一个基于 YAML 文件的资源,通常通过定义一组 ingress(入站)和 egress(出站)规则来描述。每个规则会指定允许或拒绝的通信流。
创建 Network Policy 示例
以下是一个基本的示例,表示只允许来自特定Pod的流量进入目标Pod:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: allow-frontendnamespace: default
spec:podSelector:matchLabels:app: backend # 仅作用于标签为 app=backend 的Podingress:- from:- podSelector:matchLabels:app: frontend # 允许来自标签为 app=frontend 的Pod的流量policyTypes:- Ingress
这个示例中:
- podSelector 用来选择目标Pod(在此例中,选择标签为 app=backend 的Pod)。
- ingress 规则限制只有标签为 app=frontend 的Pod才能访问 app=backend 的Pod。
- policyTypes 声明了该Policy只作用于入站流量(Ingress)。
将此文件保存为 network-policy.yaml 后,可以通过命令行应用:
kubectl apply -f network-policy.yaml
2.2、基本 Network Policy 规则
Network Policies 支持以下几种规则:
- Ingress(入站流量):指定哪些Pod可以向目标Pod发送流量。
- Egress(出站流量):指定目标Pod可以向哪些外部地址或Pod发送流量。
完整的示例:允许来自特定IP的流量,并允许Pod向外部特定IP地址发送流量
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: allow-from-ipnamespace: default
spec:podSelector:matchLabels:app: backend # 仅作用于标签为 app=backend 的Podingress:- from:- ipBlock:cidr: 192.168.1.0/24 # 允许来自此IP范围的流量egress:- to:- ipBlock:cidr: 203.0.113.0/24 # 允许向此IP范围发送流量policyTypes:- Ingress- Egress
此规则允许:
- backend 应用接受来自 192.168.1.0/24 网络的流量。
- backend 应用能够向 203.0.113.0/24 网络发出流量。
2.3、管理 Network Policies
查看所有 Network Policy
要查看当前命名空间中的所有 Network Policy,可以使用:
kubectl get networkpolicy -n <namespace>
例如,查看 default 命名空间中的所有 Network Policies:
kubectl get networkpolicy -n default
查看特定 Network Policy 的详细信息
要查看某个特定 Network Policy 的详细信息,可以使用:
kubectl describe networkpolicy <network-policy-name> -n <namespace>
例如,查看 allow-frontend 的详细信息:
kubectl describe networkpolicy allow-frontend -n default
删除 Network Policy
如果你不再需要某个 Network Policy,可以通过以下命令删除:
kubectl delete networkpolicy <network-policy-name> -n <namespace>
例如,删除 allow-frontend Network Policy:
kubectl delete networkpolicy allow-frontend -n default
2、安全认证与授权
2.1、配置RBAC
创建 Role 和 RoleBinding(命名空间级别)
假设你需要授予用户 jane 在 default 命名空间内查看 Pod 列表的权限。
创建 Role
Role 定义了用户在某个命名空间中对资源的权限。例如,授予查看 Pod 的权限。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:namespace: defaultname: pod-reader
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "list"]
保存为 role-pod-reader.yaml 后,使用以下命令创建角色:
kubectl apply -f role-pod-reader.yaml
创建 RoleBinding
将 Role 绑定到用户 jane 上,允许其访问 default 命名空间中的 Pods。
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: read-podsnamespace: default
subjects:
- kind: Username: "jane" # 绑定到用户 janeapiGroup: rbac.authorization.k8s.io
roleRef:kind: Rolename: pod-readerapiGroup: rbac.authorization.k8s.io
保存为 rolebinding-pod-reader.yaml 后,使用以下命令创建角色绑定:
kubectl apply -f rolebinding-pod-reader.yaml
此时,用户 jane 就能查看 default 命名空间中的 Pods。
创建 ClusterRole 和 ClusterRoleBinding(集群级别)
如果你需要在集群范围内授予某些权限,可以使用 ClusterRole 和 ClusterRoleBinding。
创建 ClusterRole
例如,你可以创建一个 ClusterRole,授予用户在整个集群中列出所有命名空间的 Pods 的权限:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: cluster-pod-reader
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "list"]
保存为 clusterrole-pod-reader.yaml 后,使用以下命令创建 ClusterRole:
kubectl apply -f clusterrole-pod-reader.yaml
创建 ClusterRoleBinding
将 ClusterRole 绑定到用户 jane,使其可以在整个集群范围内列出 Pods:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: bind-cluster-pod-reader
subjects:
- kind: Username: "jane" # 绑定到用户 janeapiGroup: rbac.authorization.k8s.io
roleRef:kind: ClusterRolename: cluster-pod-readerapiGroup: rbac.authorization.k8s.io
保存为 clusterrolebinding-pod-reader.yaml 后,使用以下命令创建 ClusterRoleBinding:
kubectl apply -f clusterrolebinding-pod-reader.yaml
此时,用户 jane 将能够在集群内查看所有命名空间的 Pods。
2.2、管理Service Accounts
创建 Service Account
通过 kubectl 命令可以创建一个 Service Account。在 Kubernetes 中,Service Account 通常是与命名空间相关的。以下是如何在某个命名空间中创建一个 Service Account。
kubectl create serviceaccount <service-account-name> -n <namespace>
例如,在 default 命名空间中创建一个名为 my-service-account 的 Service Account:
kubectl create serviceaccount my-service-account -n default
查看 Service Account
要查看某个命名空间中的所有 Service Accounts,可以使用以下命令:
kubectl get serviceaccounts -n <namespace>
例如,查看 default 命名空间中的所有 Service Accounts:
kubectl get serviceaccounts -n default
要查看某个特定 Service Account 的详细信息:
kubectl describe serviceaccount <service-account-name> -n <namespace>
例如,查看 my-service-account 的详细信息:
kubectl describe serviceaccount my-service-account -n default
删除 Service Account
要删除某个 Service Account,可以使用以下命令:
kubectl delete serviceaccount <service-account-name> -n <namespace>
例如,删除 my-service-account:
kubectl delete serviceaccount my-service-account -n default
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Kubernetes的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!
相关文章:
【Kubernetes】常用命令全解析:从入门到实战(中)
🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是k8s 2、K8s的核心功能 二、资…...
嵌入式八股文面试题(二)C语言算法
相关概念请查看文章:C语言概念。 1. 如何实现一个简单的内存池? 简单实现: #include <stdio.h> #include <stdlib.h>//内存块 typedef struct MemoryBlock {void *data; // 内存块起始地址struct MemoryBlock *next; // 下一个内…...
Proxmox VE 8.3 qm 方式导入ESXi Linux OVA UEFI模式虚拟机
前言 实现esxi ova uefi 虚拟机导入到pve,Linux UEFI 都支持 创建一个105虚拟机 qm 参数使用参考,以下可以根据自己的实际情况执行调整 esxi 导出虚拟机参考 #vmid (100 - 999999999) vmid=105# qm vm name...
人工智能浪潮下脑力劳动的变革与重塑:挑战、机遇与应对策略
一、引言 1.1 研究背景与意义 近年来,人工智能技术发展迅猛,已成为全球科技领域的焦点。从图像识别、语音识别到自然语言处理,从智能家居、智能交通到智能医疗,人工智能技术的应用几乎涵盖了我们生活的方方面面,给人…...
【线性代数】1行列式
1. 行列式的概念 行列式的符号表示: 行列式的计算结果:一个数 计算模型1:二阶行列式 二阶行列式: 三阶行列式: n阶行列式: 🍎计算行列式 计算模型2:上三角形行列式 上三角形行列式特征:主对角线下皆为0。 上三角形行列式: 化上三角形通用方法:主对角线下,…...
厘米和磅的转换关系
在排版和设计领域,厘米(cm)和磅(pt)都是常用的长度度量单位,它们之间的转换关系基于特定的换算标准,下面为你详细介绍: 基本换算关系 磅是印刷行业常用的长度单位,1英寸…...
vant4 van-list组件的使用
<van-listv-if"joblist && joblist.length > 0"v-model:loading"loading":finished"finished":immediate-check"false"finished-text"没有更多了"load"onLoad">// 加载 const loading ref(fals…...
QT 异步编程之多线程
一、概述 1、在进行桌面应用程序开发的时候,假设应用程序在某些情况下需要处理比较复制的逻辑,如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事…...
HCIA项目实践---OSPF的知识和原理总结
9.5 OSPF 9.5.1 从哪些角度评判一个动态路由协议的好坏? (1)选路佳(是否会出环) OSPF 协议采用链路状态算法,通过收集网络拓扑信息来计算最短路径,从根本上避免了路由环路的产生。 (…...
DNS污染:网络世界的“隐形劫持”与防御
在互联网的底层架构中,DNS(域名系统)如同数字世界的“导航员”,将用户输入的域名翻译成机器可读的IP地址。然而,DNS污染(DNS Poisoning)正像一场无声的“地址篡改”危机,威胁着全球网…...
Unity Shader Feature
Shader Feature 设置Keyword //0:Red 1:Green 2:Blue Mat.SetInt(“_Color”,0); 需要在创建时进行设置,运行时不可设置 Shader "Unlit/KeywordEnum" {Properties{[KeywordEnum(Red,Green,Blue)] _Color("Color",int) 0}SubShader{Pass{HLSL…...
Java-数据结构-栈与队列(常考面试题与单调栈)
在上一篇的学习中,我们学习了栈和队列的基本知识,以及它们对应都有哪些方法,在什么应用场景下如何使用,并且还对它们进行了模拟实现,而其实对于栈和队列的相关知识还远不止于此,而今天我们就对栈与队列进行…...
Python Pandas(11):Pandas 数据可视化
数据可视化是数据分析中的重要环节,它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式,数据可视化将复杂的数字和统计信息转化为易于理解的图像,从而便于做出决策。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库…...
wordpress模板文件结构超详解
wordpress网站建设中,主题的制作是最为核心的环节。了解模板文件结构是模板制作的第一步,本文所讲的模板文件结构包括两部分,一是指以文件名为概念的文件结构,二是指文件内容的代码结构。 一、如何使模板文件起作用 ↑ wordpres…...
大脑神经网络与机器神经网络的区别
大脑神经网络(生物神经网络)与机器神经网络(人工神经网络,ANN)虽然名称相似,但在结构、功能、学习机制等方面存在显著差异。以下是两者的主要区别: 1. 基础结构与组成 大脑神经网络: 由 生物神经元(约860亿个)通过突触连接形成动态网络。 神经元通过电化学信号(动作…...
【H5自适应】高端科技类pbootcms网站模板 – 三级栏目、下载与招聘功能支持
(H5自适应)高端大气的科技类pbootcms网站模板 带三级栏目、下载和招聘功能 后台地址:您的域名/admin.php 后台账号:admin 后台密码:123456 为了提升系统安全,请将后台文件admin.php的文件名修改一下。修改之后,后台…...
SQL-leetcode—1661. 每台机器的进程平均运行时间
1661. 每台机器的进程平均运行时间 表: Activity ----------------------- | Column Name | Type | ----------------------- | machine_id | int | | process_id | int | | activity_type | enum | | timestamp | float | ----------------------- 该表展示了一家工厂网站的…...
C++ Primer 跳转语句
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
清华大学:DeepSeek 如何赋能职场应用(35 页 PDF)
原来已经分享过清华大学的 DeepSeek:从入门到精通(100页PDF) 现在又来第二弹:《DeepSeek 如何赋能职场应用?从提示语技巧到多场景应用》 PDF里介绍了 DeepSeek 这一人工智能工具及其在职场中的应用,从基础…...
idea 错误: 找不到或无法加载主类 @C:\Users\admin\AppData\Local\Temp\idea_arg_file1549212448
idea 错误: 找不到或无法加载主类 C:\Users\admin\AppData\Local\Temp\idea_arg_file1549212448 该错误往往和左下角爱弹出的如下提示是一个意思 Error running ‘PayV3Test1.testTransferBatchesBatchId’ Error running PayV3Test1.testTransferBatchesBatchId. Command lin…...
开发指南098-logback-spring.xml说明
可执行的工程src\main\resources目录有logback-spring.xml文件用于配置日志。配置日志有些容易犯晕的地方,这里列出: 1、<logger>标签的优先级高于<root>标签:所以,如果<logger>标签指定了某个具体的包或类的…...
【SpringBoot3.x+】slf4j-log4j12依赖引入打印日志报错的两种解决方法
最开始引入了1.7.5版本的slf4j-log4j依赖包,但是控制台不报错也不显示日志 在https://mvnrepository.com/找到最新的2.0.16版本之后出现报错: 进入提示的slf4j网站中可以找到从2.0.0版本开始,slf4j-log4j已经被slf4j-reload4j取代࿱…...
【STM32】H743的以太网MAC控制器的一个特殊功能
调试743的MAC,翻阅手册的时候,发现了一个有意思的功能 混杂模式 H743的MAC控制器,可以设置为混杂模式,这就意味着它可以做一些网络监控的应用,譬如连接具备端口镜像功能的交换机,然后直接代替PC实现网络数据…...
Java LinkedList(单列集合)
LinkedList 是 Java 中实现了 List 接口的一个类,它属于 java.util 包。与 ArrayList 不同,LinkedList 是基于双向链表实现的,适合于频繁进行插入和删除操作的场景。 1. LinkedList 的基本特性 基于链表实现:LinkedList 使用双向…...
docker compose快速部署kafka-connect集群
先部署kafka集群,启动 参考:docker compose部署kafka集群-CSDN博客 创建timezone文件,内容填写Asia/Shanghai 再部署kafka-connect集群 networks: net: external: true services: kafka-connect1: restart: always image:…...
docker 部署nginx,nginx 504
遇到问题 原因: 因为用的docker 部署nginx, docker 应用与服务之间的端口未开放,导致访问不到服务。...
RealClip正式发布:重新定义轻量化数字内容交互体验
在移动互联网流量红利逐渐见顶的当下,用户对即时性、碎片化娱乐与交互体验的需求持续攀升。轻量化小游戏、VR互动、数字孪生、工业仿真等内容形态迅速崛起,但开发者却面临两大核心矛盾:如何将高性能互动内容轻量化嵌入现有应用中?…...
SQLMesh系列教程-2:SQLMesh入门项目实战(上篇)
假设你已经了解SQLMesh是什么,以及其他应用场景。如果没有,我建议你先阅读《SQLMesh系列教程-1:数据工程师的高效利器-SQLMesh》。 在本文中,我们将完成一个小项目或教程,以帮助你开始使用SQLMesh。你可以选择一步一步…...
把 DeepSeek1.5b 部署在显卡小于4G的电脑上
这里写自定义目录标题 介绍准备安装 Ollama查看CUDA需要版本安装CudaToolkit检查Cuda是否装好设置Ollama环境变量验证是否跑在GPU上ollama如何导入本地下载的模型安装及配置docker安装open-webui启动open-webui开始对话 调整gpu精度 介绍 Deepseek1.5b能够运行在只用cpu和gpu内…...
#渗透测试#批量漏洞挖掘#29网课交单平台 SQL注入
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 1. 漏洞原理 2. 漏洞定位 3. 攻击验证示…...
试试DeepSeek写prompt+stable diffusion生成漫画
#deepseek #stable diffusion 模型:dreamshaperXL_v21TurboDPMSDE.safetensors 一、情节拟定 漫画情节由deepseek自编自导,画幅为四张。 Prompt 1: 魔法觉醒 "一个平凡的少年在阁楼发现一本古老的魔法书,书页散发着微弱的蓝光。画…...
java面试题之 int和Integer的区别
int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;…...
Spring Bean的生命周期
1、对象实例化 2、属性设置 3、初始化 4、使用 5、销毁 示例代码如下: import org.springframework.stereotype.Component;Component public class SpringBeanA {public SpringBeanA() {System.out.println("第一步:实例化(spring对象&#x…...
Vue 发送 PDF 文件链接到 WinForm 程序进行打印
Vue 发送 PDF 文件链接到 WinForm 程序进行打印的完整流程如下: 1. Vue 端 Vue 通过 fetch 或 axios 发送 PDF 文件的 URL 给 WinForms 程序(WinForms 需要开启一个本地 API)。 <template><div><button click"sendPri…...
Vue笔记(十)
一、AI的基本认知 二、ChatGPT的基本使用 三、AI插件--Copilot入门 1.Copilot是由OpenAI和GitHub合作开发的AI编程辅助插件,基于大量代码训练,能根据上下文自动生成代码建议。 2.安装与配置:在常用代码编辑器(如Visual Studio Cod…...
使用LangChainV3.0加载PDF文件并进行总结
LangChain目前已经更新到了V3版本,之前一直使用的V1版本,有很多方法都需要自己去封装,这次重新看了V3版本的API文档,很多方法都十分便利,调用方法简单明了十分方便,下面就来展示下这次对于PDF文件加载的优化…...
玩转大语言模型——使用Kiln AI可视化环境进行大语言模型微调数据合成
系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——三分钟教你用langchain提示词工程获得猫娘女友 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型—…...
EasyRTC智能硬件:小体积,大能量,开启音视频互动新体验
在万物互联的时代,智能硬件正以前所未有的速度融入我们的生活。然而,受限于硬件性能和网络环境,许多智能硬件在音视频互动体验上仍存在延迟高、卡顿、回声等问题,严重影响了用户的使用体验。 EasyRTC智能硬件,凭借其强…...
vue知识点5
1.如何让组件里的样式与其他组件互相不干扰 scope范围的意思 <style scope> </style> 2.vue的生命周期 创建 挂载 更新 销毁 3.vue的四个生命周期详解 创建beforeCreate,created 挂载 beforeMount,mounted 更新 beforeUpdate,updated 销毁 beforeDest…...
qt的QSizePolicy的使用
使用 QSizePolicy 设置控件的伸缩因子 在 Qt 中,QSizePolicy 控制 控件如何在布局中伸缩。如果想要影响控件的大小调整行为,可以通过 QSizePolicy::setHorizontalStretch() 和 QSizePolicy::setVerticalStretch() 设置伸缩因子。 基本用法 假设我们有一个…...
基于 FFmpeg 和 OpenGLES 的 iOS 视频预览和录制技术方案设计
基于 FFmpeg 和 OpenGLES 的 iOS 视频预览和录制技术方案设计 在 iOS 上实现一个基于 FFmpeg 和 OpenGLES 的视频预览和录制功能,需要结合 FFmpeg 的强大音视频处理能力和 OpenGLES 的高效图形渲染能力。以下是一个完整的技术方案设计,包含项目的架构设计、模块划分、技术选…...
如何保障 MySQL 和 Redis 的数据一致性
在现代分布式系统中,确保不同数据存储(如 MySQL 和 Redis)之间的一致性是一个常见的挑战。MySQL 是一种关系型数据库管理系统,而 Redis 是一种内存中的键值存储系统,通常用于缓存和快速访问数据。本文将详细介绍几种保…...
【LeetCode Hot100 子串】和为 k 的子数组、滑动窗口最大值、最小覆盖子串
子串 1. 和为 k 的子数组题目描述解题思路主要思路步骤 时间复杂度与空间复杂度代码实现 2. 滑动窗口最大值题目描述解题思路双端队列的原理:优化步骤: Java实现 3. 最小覆盖子串题目描述解题思路滑动窗口的基本思路:具体步骤:算法…...
【CLIP系列】4:目标检测(ViLD、GLIP)
目录 1 ViLD2 GLIP2.1 前言2.2 损失计算2.3 模型框架 1 ViLD OPEN-VOCABULARY OBJECT DETECTION VIA VISION AND LANGUAGE KNOWLEDGE DISTILLATION 从标题就能看出来,作者是把CLIP模型当成一个Teacher,去蒸馏他自己的网络,从而能Zero Shot去…...
vue-谷歌浏览器安装vue-devtools插件
文章目录 一、谷歌浏览器安装vue-devtools1.1、方式一:直接下载crx并安装 本文讲解谷歌浏览器安装vue-devtools插件的步骤。 注意:以下vue-devtools插件都是vue2版本的。 一、谷歌浏览器安装vue-devtools 1.1、方式一:直接下载crx并安装 …...
【安全测试】0基础新手学Web安全测试笔记(一)
文章目录 一、关于账号密码的漏洞二、关于验证码的漏洞三、Burp工具的使用四、渗透测试1. 渗透测试类型2. 脆弱性评估 五、常见的应用安全风险1. 注入2. 失效的身份认证3. 敏感数据泄露4. XML外部实体(XXE)5. 失效的访问控制6. 安全配置错误7. 跨站脚本:(XSS)8. 不安全的反序列…...
初窥强大,AI识别技术实现图像转文字(OCR技术)
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据、人工智能领域创作者。目前从事python全栈、爬虫和人工智能等相关工作,主要擅长领域有:python…...
JDK 14,15,17的一些新特性(部分常用)
1:instanceof(后,使用不再需要墙转) 2:switch语句增强 1:支持lmbda,自动防击穿,有返回值 2:支持case多个值,复杂逻辑结果支持yield返回 3:字符串…...
架构设计系列(二):CI/CD
一、概述 CI/CD 是 持续集成(Continuous Integration) 和 持续交付/持续部署(Continuous Delivery/Continuous Deployment) 的缩写,是现代软件开发中的一套核心实践和工具链,旨在提高软件交付的效率、质量…...
二十六、使用docsify搭建文档管理平台
特性 无需构建,写完文档直接发布容易使用并且轻量 (~19kB gzipped)智能的全文搜索提供多套主题丰富的 API...