【kubectl详解】最全的kubectl命令用法

文章目录

      • 简介
      • 一.命令帮助翻译
        • 1.1.基本命令(初学者):
        • 1.2.基本命令(中级):
        • 1.3.部署命令:
        • 1.4.群集管理命令:
        • 1.5.疑难解答和调试命令:
        • 1.6.高级命令:
        • 1.7.设置命令:
        • 1.8.插件提供的子命令:
        • 1.9.其他命令:
        • 1.10.用法
      • 二.资源列表
        • 2.1.资源列表及简称
        • 2.2.配置kubectl自动补全
      • 三.命令操作实践
        • 3.1.创建资源
        • 3.2.查看资源
        • 3.3.编辑资源配置文件
        • 3.4.删除资源
        • 3.5.标签操作
        • 3.6.回滚操作
        • 3.7.set修改资源
        • 3.8.扩缩容
        • 3.9.debug日志分析
        • 3.10.查看内存及cpu使用率
        • 3.11.集群及节点操作

简介

该文章详细对kubect命令行的参数进行讲解,并将api-resource的信息整理成列表,方便查看,同时通过一系列的实践操作的命令来进行举例,便于更深刻的了解和掌握该命令的用法。

一.命令帮助翻译

kubectl -h 查看帮助信息:kubectl控制Kubernetes集群管理器。更多信息,请访问:https://kubernetes.io/docs/reference/kubectl/

1.1.基本命令(初学者):
  • create: 从文件或stdin创建资源
  • expose: 获取复制控制器、服务、部署或pod,并将其作为新的Kubernetes服务公开
  • run: 在群集上运行特定映像
  • set: 设置对象的特定功能
1.2.基本命令(中级):
  • explain: 获取资源的文档
  • get: 显示一个或多个资源
  • edit: 编辑服务器上的资源
  • delete: 按文件名、stdin、资源和名称或按资源和标签选择器删除资源
1.3.部署命令:
  • rollout: 管理资源的滚动发布
  • scale: 为部署、复制副本集或复制控制器设置新的大小
  • autoscale: 自动缩放部署、副本集、有状态集或复制控制器
1.4.群集管理命令:
  • certificate: 修改证书资源
  • cluster-info: 显示集群信息
  • top: 显示资源(CPU/内存)使用情况
  • cordon: 将节点标记为不可调度
  • uncordon: 将节点标记为可调度
  • drain: 排水节点为维护做准备
  • taint: 更新一个或多个节点上的污点
1.5.疑难解答和调试命令:
  • description显示特定资源或资源组的详细信息
  • logs打印pod中容器的日志
  • attach: 附加到正在运行的容器
  • exec: 在容器中执行命令
  • port-forward: 将一个或多个本地端口转发到一个pod
  • proxy: 运行到Kubernetes API服务器的代理
  • cp: 将文件和目录复制到容器和从容器复制文件和目录
  • auth: 检查授权
  • debug: 创建调试会话以排除工作负载和节点的故障
  • events: 列出事件
1.6.高级命令:
  • diff: 将实时版本与潜在的应用版本进行区分
  • apply: 按文件名或stdin将配置应用于资源
  • patch: 更新资源的字段
  • replace: 用文件名或stdin替换资源
  • wait: 实验:在一个或多个资源上等待特定条件
  • kustomize: 从目录或URL构建kustomization目标
1.7.设置命令:
  • label: 更新资源上的标签
  • annotate: 更新资源上的注释
  • completion: 为指定的shell(bash、zsh、fish或powershell)输出shell完成代码
1.8.插件提供的子命令:
  • 1.28.5 命令1.28.5是用户安装的插件
1.9.其他命令:
  • api-resources: 在服务器上打印支持的api资源
  • api-versions: 以“组/版本”的形式打印服务器上支持的api版本
  • config: 修改kubeconfig文件
  • plugin: 提供与插件交互的实用程序
  • version: 打印客户端和服务器的版本信息
1.10.用法

kubectl [flags] [options]
有关给定命令的详细信息,请使用“kubectl<command>–help”。
使用“kubectl选项”作为全局命令行选项列表(适用于所有命令)。

二.资源列表

2.1.资源列表及简称

在这里插入图片描述

2.2.配置kubectl自动补全

echo "source <(kubectl completion bash)" >> /root/.bashrc

三.命令操作实践

3.1.创建资源

dd

  • 创建命名空间:kubectl create ns test-ns

  • 创建deployment:kubectl create deployment nginx --image=nginx:1.14 --port=80 --replicas=3

  • 创建service: kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort

  • 创建pod: kubectl run nginx --image=nginx --image-pull-policy=IfNotPresent

  • 创建cronjob: 创建一个cronjob,并且每分钟执行一次命令date:kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date

  • 创建serviceAccount: kubectl create serviceaccount my-service-account

  • 创建configmap: 将某个目录创建configmap, kubectl create configmap my-conf --from-file=path/dir,按照key=value的形式创建configmap:kubectl create configmap my-conf --from-literal=key1=value1 --from-literal=key2=value2

  • 创建集群角色绑定:kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1

  • 创建集群角色:

创建一个名为 “pod-reader” 的 ClusterRole,允许用户在 Pod 上执行 “get”、“watch” 和 “list” 操作:
kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods

创建一个名为 “pod-reader” 的 ClusterRole,并指定 ResourceName:
kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods --resource-name=readablepod --resource-name=anotherpod

在指定的 API Group 中创建一个名为 “foo” 的 ClusterRole
kubectl create clusterrole foo --verb=get,list,watch --resource=rs.extensions

创建一个名为 “foo” 的 ClusterRole,并指定 SubResource
kubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status

使用指定的 NonResourceURL 创建一个名为 “foo” 的 ClusterRole
kubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*

  • 创建角色:

创建一个名为 “pod-reader” 的 Role,允许用户在 Pod 上执行 “get”、“watch” 和 “list” 操作:
kubectl create role pod-reader --verb=get,list,watch --resource=pods

创建一个名为 “pod-reader” 的 Role,并指定 ResourceName:
kubectl create role pod-reader --verb=get,list,watch --resource=pods --resource-name=readablepod --resource-name=anotherpod

  • 创建角色绑定:

为名为 admin 的 Role 创建一个名为 “admin” 的 RoleBinding,并将其绑定到用户 user1、user2 和 group1:
kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1

  • 创建ingress:

创建一个simple的ingres,指定规则foo.com/bar 的后端是svc1:8080,并绑定证书my-cert
kubectl create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert"

创建一个ingress并配置注解: ingress.annotation1 和 ingress.annotations2

kubectl create ingress annotated --class=default --rule="foo.com/bar=svc:port" \
  --annotation ingress.annotation1=foo \
  --annotation ingress.annotation2=bla

创建一个ingress,指定同一个域名,多个路径

kubectl create ingress multipath --class=default \
  --rule="foo.com/=svc:port" \
  --rule="foo.com/admin/=svcadmin:portadmin"

创建一个ingress,指定多个域名和多个路径

kubectl create ingress ingress1 --class=default \
  --rule="foo.com/path*=svc:8080" \
  --rule="bar.com/admin*=svc2:http"

创建ingress,启用证书,并指定跟路径访问svc:8080

kubectl create ingress ingsecret --class=default \
  --rule="foo.com/*=svc:8080,tls=secret1"

创建一个ingress,用默认的后端

kubectl create ingress ingdefault --class=default \
  --default-backend=defaultsvc:http \
  --rule="foo.com/*=svc:8080,tls=secret1"
  • 通过yaml文件创建: kubectl apply -f xxx.yaml

为deployment的nginx创建service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service,类型为NodePort
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort

3.2.查看资源

获取列表用法:

  • 获取节点列表:kubectl get node,详细列表:kubectl get node -o wide,显示标签可以加上:kubectl get node -o wide --show-labels
  • 获取namespace列表:kubectl get ns
  • 获取所有deploy列表:kubectl get deploy -A,详细列表:kubectl get deploy -A -o wide,指定命名空间获取:get deploy -n test-ns
  • 获取所有statefulset列表:kubectl get sts -A,详细列表:kubectl get sts -A -o wide,指定命名空间获取:get sts -n test-ns
  • 获取所有daemonset列表:kubectl get ds -A,详细列表:kubectl get ds -A -o wide
  • 获取所有service列表:kubectl get svc -A,详细列表:kubectl get svc -A -o wide,指定命名空间获取:get svc -n test-ns
  • 获取所有configmap列表:kubectl get cm -A,详细列表:kubectl get cm -A -o wide,指定命名空间获取:get cm -n test-ns
  • 获取所有pod列表:kubectl get pod -A,详细列表:kubectl get pod -A -o wide,指定命名空间获取:get pod -n test-ns
  • 获取所有secret列表:kubectl get secret -A,详细列表:kubectl get secret -A -o wide,指定命名空间获取:get secret -n test-ns

获取某个资源用法:

  • 获取命名为test-app的deployment的:kubectl get deploy test-app -n test-ns -o yaml,如果不指定命名空间-n test-ns,则默认读取default命名空间下的资源。-o yaml则是将资源的信息以yaml文件格式显示。
  • 获取命名为test-pod的pod的:kubectl get pod test-pod -n test-ns -o yaml,如果不指定命名空间-n test-ns,则默认读取default命名空间下的资源。-o yaml则是将资源的信息以yaml文件格式显示。
  • svc,pod,configmap,statefulset,secret等资源均可以通过以上命令以yaml文件格式查看,只需要变更过资源类型和名称。

高级用法:

  • 通过标签过滤
    kubectl get deploy -n test-ns -l app=test-app,操作符: = 或者 !=

  • 只查看特定的某项值
    kubectl get -o template pod/ops-tools --template={{.status.phase}} -n zx-app

  • 自定义列出资源信息
    kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image

  • 同时列出所有命名空间中的多个资源信息
    kubectl get deploy,svc,pod,cm -A

  • 通过类型或名称列出一个或者多个资源
    kubectl get rc/web service/frontend pods/web-pod-13je7

  • List the ‘status’ subresource for a single pod
    kubectl get pod web-pod-13je7 --subresource status

3.3.编辑资源配置文件

edit 可以编辑多种资源,其他资源的yaml配置编辑,可以参考下边的命令,只需要修改资源类型和资源的名称,以及命名空间。

  • 编辑 deployment 的yaml配置:kubectl edit deploy test-app -n test-ns
  • 编辑 cronjob 的yaml配置:kubectl edit cronjob test-job -n test-ns
  • 编辑 configmap 的yaml配置:kubectl edit cm test-cm -n test-ns
3.4.删除资源

删除名为"test-app"的pod 和名为"test-svc"的 service
kubectl delete pod,service test-app test-svc

删除具有 name=myLabel 标签的 pod 和 serivce
kubectl delete pods,services -l name=myLabel

删除具有 name=myLabel 标签的 pod 和 service,包括尚未初始化的
kubectl delete pods,services -l name=myLabel --include-uninitialized

删除 test-ns 命名空间下的所有 pod 和 deployment
kubectl -n test-ns delete pod,deploy --all

3.5.标签操作

节点、资源deployment、service、pod等资源均可以按照如下命令进行标签操作

  • 增加标签:kubectl label nodes node-1 name=value,给节点增加一个标签name=value
  • 查询标签:kubectl get node -l name=value,通过指定标签name=value来查询对应的节点
  • 删除标签:kubectl label nodes node-1 name-,在标签名称后边加一个减号即可删除标签
  • 修改标签:kubectl label nodes node-1 name=value2 --overwrite,加上–overwrite 即可修改标签的值
3.6.回滚操作

执行回滚deployment nginx到上一个版本
kubectl rollout undo deploy/nginx -n test-ns

执行回滚deployment nginx到指定版本
kubectl rollout undo deploy/nginx --to-revision=1 -n test-ns

查看回滚状态
kubectl rollout status deploy/nginx -n test-ns

查看指定资源的历史
kubectl rollout history deploy/nginx -n test-ns

暂停滚动更新
kubectl rollout pause deploy nginx -n test-ns

恢复滚动更新
kubectl rollout resume deploy nginx -n test-ns

3.7.set修改资源

参数解释

  • env: 更新pod模板上的环境变量
  • image: 更新pod的镜像
  • resources: 更新pod对象的cpu和内存资源请求/限制
  • selector: 在资源上设置选择器
  • serviceaccount: 更新资源的服务帐户
  • subject: 更新角色绑定或群集角色绑定中的用户、组或服务帐户

限制内存和cpu

  • 将deployment的nginx的pod容器 nginx 的 cpu限制为200毫核,将内存设置为512M
    kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi

  • 设置所deployment nginx的 Requests和Limits
    kubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi

  • 删除所deployment nginx中容器的资源限制
    kubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0

修改镜像:

  • 将deployment nginx更新为1.15版本
    kubectl set image deployment/nginx nginx=nginx:1.15

更新集群绑定:

  • 更新RoleBinding的user1,user2和group1
    kubectl set subject rolebinding admin --user=user1 --user=user2 --group=group1

-更新一个ClusterRoleBinding 的 serviceaccount1
kubectl set subject clusterrolebinding admin --serviceaccount=namespace:serviceaccount1

3.8.扩缩容

将deployment nginx的副本数更改成3个
kubectl scale --replicas=3 deploy/nginx -n test-ns

执行sacle的前提条件是必须–current-replicas=2时才会生效
kubectl scale --current-replicas=2 --replicas=3 deployment/nginx

不指定cpu使用率,采用默认的扩缩容策略,自动扩缩容deployment nginx 的pod在2-10之间。
kubectl autoscale deployment nginx --min=2 --max=10

当cpu使用率80%时,replicationcontrollers foo 的pod数量在1-5之间调整。
kubectl autoscale rc foo --max=5 --cpu-percent=80

将命名空间test-ns下的deployment test-app1,test-app2的副本数更改成5个
kubectl scale --replicas=5 deploy/test-app1 deploy/test-app2 -n test-ns

3.9.debug日志分析

describe,logs,explain,exec,cp

  • 在容器内执行命令"cat /etc/os-release": kubectl exec test-pod -n test-ns -- cat /etc/os-release
  • 查看特定资源的描述信息:kubectl describe pods/test-pod -n test-ns,kubectl describe deploy/test-pod -n test-ns,其他资源类型也可以参照此命令
  • 查看pod的日志:kubectl logs test-pod -n test-ns,查看最近20行:kubectl logs test-pod -n test-ns --tail=20,滚动查看:kubectl logs test-pod -n test-ns -f
  • 拷贝文件到容器的root目录下: kubectl cp test.txt test-pod:/root/ -n test-ns,从容器拷贝文件到本地:kubectl cp test-pod:/root/test.txt . -n test-ns,.表示当前目录,如果是要重命名文件则将点改成test1.txt
  • 描述各种资源的结构,例如:kubectl explain pod,相当于对各种资源进行讲解的帮助文档
3.10.查看内存及cpu使用率

查看pod和节点的内存和cpu资源,需要k8s集群安装metric-server才能查看。

  • 查看节点cpu和内存:kubectl top node
  • 查看pod的cpu和内存: kubectl top pod -n test-ns,需要制定命名空间查看,否则默认查看default空间
3.11.集群及节点操作
  • 查看集群信息:kubectl cluster-info
  • 查看master状态:kubectl get cs
  • 将节点标记为不可调度: kubectl cordon node-1
  • 将节点标记为可调度: kubectl uncordon node-1
  • 排水节点为维护做准备:kubectl drain node-1
  • 搭建k8s集群时添加worker节点:kubectl certificate approve node-csr-xxx_xxxx,节点的证书名称可以通过:kubectl get csr 获取
  • 为gpu资源的节点创建一个gpu污点: kubectl taint nodes k8s-work1 hardware-type=GPU:NoSchedule
    然后创建一个需要gpu资源的pod,这样这个pod就会被调度到gpu的节点上,其他的pod不会调度到此节点
apiVersion: v1
kind: Pod
metadata:
  name: gpu-pod
spec:
  containers:
  - name: nginx
    image: nginx
  tolerations:
  - key: hardware-type
    operator: Equal
    value: GPU
    effect: NoSchedule

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

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

相关文章

腾讯混元文生图开源模型推出小显存版本,仅需 6G 显存即可运行

腾讯宣布开源小显存版本的混元文生图模型&#xff0c;降低至 6G 显存即可运行&#xff0c;方便个人电脑本地部署。同时&#xff0c;混元 DiT 模型升级至 1.2 版本&#xff0c;图片质感与构图提升。混元 Captioner 打标模型也正式开源&#xff0c;支持中英文双语&#xff0c;优化…

linux ifconfig未找到命令

linux ifconfig未找到命令 1、使用yum安装net-tools yum install net-toolsyum报未找到命令请查看文章vim未找到命令&#xff0c;且yum install vim安装vim失败 2、安装后使用ifconfig命令 ifconfig

数据库、创建表、修改表

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建表 1、创建一个名称为db_system的数据库 2、在该数据库下创建两张表&#xff0c;具体要求如下 员工表 user…

智慧校园-资产管理系统总体概述

智慧校园资产管理系统是面向教育机构设计的一体化数字平台&#xff0c;其核心目标在于通过先进的信息技术手段&#xff0c;全面优化校园内部的资产管理流程。该系统致力于提升资产管理的效率与透明度&#xff0c;同时降低成本并确保所有操作符合财务及审计规范&#xff0c;为校…

高效PD,稳定传输,LDR6023CQ芯片,打造顶级直播体验

在当今市场&#xff0c;一款备受瞩目的直播神器——无线领夹麦克风&#xff08;MIC&#xff09;&#xff0c;正风靡于网红直播、在线教育、专业采访、高清视频录制及视频会议等多个领域。麦克风&#xff0c;这一昔日课堂上的常见设备&#xff0c;已随着科技的飞速发展而焕然一新…

GRPC使用之HelloWorld

使用grpc的好处是提供高效的序列化能力&#xff0c;能够跨语言进行调用。这一节我们来学习grpc的入门应用&#xff0c;整篇文章分成3部分: 接口定义&#xff0c;使用grpc的IDL&#xff0c;创建proto文件&#xff0c;编译/生成grpc文件服务端开发&#xff0c;处理客户端请求&am…

wsl安装Linux系统到指定位置

默认情况下,wsl安装的系统,会安装到系统C盘,长期下去,很容易把C盘的空间消耗完,从而影响系统的正常运行,所以我建议是将wsl所有的系统都安装到其它磁盘中,便于维护。 1、导出镜像 通过wsl -l -v 查看当前已安装的系统版本。 导出到当前目录位置,也可以指定目录位置。 w…

CQ 社区版2.13.3 | 支持全局开启OTP登录、文本导入功能可独立控制……

又到一月一度的 CloudQuery 发版时间啦&#xff01; 本次版本更新&#xff0c;对多个模块进行了功能的优化和完善&#xff0c;比如将文本导入与 insert 权限脱离使文本导入可单独控制&#xff1b;将工具权限与权限等级脱离&#xff0c;使其能独立授权和提权&#xff1b;操作模…

【JavaWeb程序设计】JSP编程

目录 一、编写JSP页面&#xff0c;在界面上显示1-9&#xff0c;9个链接&#xff0c;单击每个链接&#xff0c;能够在另一个页面打印该数字的平方。 1. 运行截图 2. 第一个jsp页面&#xff08;index.jsp&#xff09; 3. 第二个jsp页面&#xff08;square.jsp&#xff09; 二…

Purple Pi OH 更改SDK的编译选项

本文适用于在Purple Pi OH开发板更改SDK编译选项。触觉智能的Purple Pi OH鸿蒙开源主板&#xff0c;是华为Laval官方社区主荐的一款鸿蒙开发主板。 该主板主要针对学生党&#xff0c;极客&#xff0c;工程师&#xff0c;极大降低了开源鸿蒙开发者的入门门槛&#xff0c;具有以下…

【一念发动便是行】念头,就是命运

一个个恶念累积就是负能量&#xff0c;念头就是命运&#xff0c;克除恶念&#xff0c;防范念头&#xff0c;念头都有能量&#xff0c;学圣学须内外庄严检肃&#xff0c;言语有灵 多数人的问题都是出在念头上&#xff0c;念头&#xff0c;就是自己的命运&#xff1b; 当我们对自…

12 Dockerfile详解

目录 1. Dockerfile 2. Dockerfile构建过程 2.1. Dockerfile编写规则&#xff1a; 2.2. Docker执行Dockerfile的大致流程 2.3. 总结 3. Dockerfile指令 3.1. FROM 3.2. MAINTAINER 3.3. RUN 3.4. EXPOSE 3.5. WORKDIR 3.6. USER 3.7. ENV 3.8. VOLUME 3.9. ADD …

51单片机STC89C52RC——14.1 直流电机调速

目录 目的/效果 1&#xff1a;电机转速同步LED呼吸灯 2 通过独立按键 控制直流电机转速。 一&#xff0c;STC单片机模块 二&#xff0c;直流电机 2.1 简介 2.2 驱动电路 2.2.1 大功率器件直接驱动 2.2.2 H桥驱动 正转 反转 2.2.3 ULN2003D 引脚、电路 2.3 PWM&…

大模型LLMs概述:利用大模型 (LLMs) 解决信息抽取任务

论文标题&#xff1a;Large Language Models for Generative Information Extraction: A Survey 论文链接&#xff1a;https://arxiv.org/pdf/2312.17617.pdf 论文主要探讨了大型语言模型&#xff08;LLMs&#xff09;在生成式信息抽取&#xff08;IE&#xff09;任务中的应用…

知识库系统平台管理与优化

在之前做的关于FAQ知识库问答系统中&#xff0c;总结了相关踩坑内容&#xff0c;梳理如下&#xff0c;供大家参考。系统平台的管理与优化对于企业来说至关重要&#xff0c;它不仅关乎数据处理的效率&#xff0c;还直接影响到用户体验和业务成果。本文将从系统平台管理方式、系统…

World of Warcraft [CLASSIC] Talent Tree

World of Warcraft [CLASSIC] Talent Tree 天赋树模拟器 01&#xff09;初始化整个页面&#xff0c;选择游戏职业&#xff0c;初始化3个天赋树 02&#xff09;初始化天赋树结构&#xff0c;层次为N层 03&#xff09;每层有4个技能&#xff0c;设置可显示&#xff0c;设置隐藏…

通用代码生成器模板体系,语句和语句组

通用代码生成器或者叫动词算子式通用目的代码生成器是一组使用Java编写的通用代码生成器。它们的原理基于动词算子和域对象的笛卡尔积。它们没有使用FreeMarker和或者Velocity等现成的文件式模板引擎。而是使用java语言开发了一套专门为动词算子式代码生成器使用的模板API。而其…

uniapp启动安卓模拟器mumu

mumu模拟器下载 ADB&#xff1a; android debug bridge &#xff0c; 安卓调试桥&#xff0c;是一个多功能的命令行工具&#xff0c;他使你能够与连接的安卓设备进行交互 # adb连接安卓模拟器 adb connect 127.0.0.1:port # 查看adb设备 adb deviceshubuilderx 有内置的adb&a…

使用 Git Hooks 防止敏感信息泄露

欢迎关注公众号&#xff1a;冬瓜白 在日常开发中&#xff0c;我们可能会不小心将敏感信息提交到 Git。为了防止这种情况&#xff0c;可以利用 Git Hooks 编写一个简单的脚本&#xff0c;当发现提交中包含敏感词时&#xff0c;给出提示。 以下是一个基于 pre-commit 钩子的示例…

【MindSpore学习打卡】应用实践-计算机视觉-深入解析 Vision Transformer(ViT):从原理到实践

在近年来的深度学习领域&#xff0c;Transformer模型凭借其在自然语言处理&#xff08;NLP&#xff09;中的卓越表现&#xff0c;迅速成为研究热点。尤其是基于自注意力&#xff08;Self-Attention&#xff09;机制的模型&#xff0c;更是推动了NLP的飞速发展。然而&#xff0c…