【k8s 高级调度--污点和容忍】

1、调度概念

在 Kubernetes 中,调度(scheduling)指的是确保 Pod 匹配到合适的节点, 以便 kubelet 能够运行它们。 抢占(Preemption)指的是终止低优先级的 Pod 以便高优先级的 Pod 可以调度运行的过程。 驱逐(Eviction)是在资源匮乏的节点上,主动让一个或多个 Pod 失效的过程。

2、CronJob 计划任务

在k8s中周期性运行计划任务,与linux中的crontab相同

注意点:CronJob执行的时间是controllerr-manager的时间,所以一定要确保controller-manager时间是准确的。

2.1 配置文件

apiVersion: batch/v1
kind: CronJob # 定时任务
metadata:name: cron-job-test # 定时任务名字
spec:concurrencyPolicy: Allow # 并发调度策略:Allow 允许并发调度,Forbid:不允许并发执行,Replace:如果之前的任务还没执行完,就直接执行新的,放弃上一个任务failedJobsHistoryLimit: 1 # 保留多少个失败的任务successfulJobsHistoryLimit: 3 # 保留多少个成功的任务suspend: false # 是否挂起任务,若为 true 则该任务不会执行
#  startingDeadlineSeconds: 30 # 间隔多长时间检测失败的任务并重新执行,时间不能小于 10schedule: "* * * * *" # 调度策略jobTemplate:spec:template:spec:containers:- name: busyboximage: busybox:1.28imagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- date; echo Hello from the Kubernetes clusterrestartPolicy: OnFailure

2.2 CronJob执行

[root@k8s-master job]# kubectl create -f cron-job-pd.yaml
cronjob.batch/cron-job-test created[root@k8s-master job]# kubectl get cronjobs
NAME            SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cron-job-test   * * * * *   False     0        <none>          11s[root@k8s-master job]# kubectl get po
NAME                           READY   STATUS      RESTARTS       AGE
configfile-po                  0/1     Completed   0              26h
dns-test                       1/1     Running     2 (36h ago)    3d21h
emptydir-volume-pod            2/2     Running     44 (58m ago)   23h
fluentd-59k8k                  1/1     Running     1 (36h ago)    3d3h
fluentd-hhtls                  1/1     Running     1 (36h ago)    3d3h
host-volume-pod                1/1     Running     0              23h
nfs-volume-pod-1               1/1     Running     0              21h
nfs-volume-pod-2               1/1     Running     0              21h
nginx-deploy-6fb8d6548-8khhv   1/1     Running     29 (54m ago)   29h
nginx-deploy-6fb8d6548-fd9tx   1/1     Running     29 (54m ago)   29h
nginx-sc-0                     1/1     Running     0              3h20m[root@k8s-master job]# kubectl get cronjobs
NAME            SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cron-job-test   * * * * *   False     0        42s             2m16s[root@k8s-master job]# kubectl get po
NAME                           READY   STATUS      RESTARTS       AGE
configfile-po                  0/1     Completed   0              26h
cron-job-test-28484150-wkbgp   0/1     Completed   0              2m4s
cron-job-test-28484151-886j6   0/1     Completed   0              64s
cron-job-test-28484152-srjb4   0/1     Completed   0              4s
dns-test                       1/1     Running     2 (36h ago)    3d21h
emptydir-volume-pod            2/2     Running     46 (35s ago)   23h
fluentd-59k8k                  1/1     Running     1 (36h ago)    3d3h
fluentd-hhtls                  1/1     Running     1 (36h ago)    3d3h
host-volume-pod                1/1     Running     0              23h
nfs-volume-pod-1               1/1     Running     0              21h
nfs-volume-pod-2               1/1     Running     0              21h
nginx-deploy-6fb8d6548-8khhv   1/1     Running     29 (56m ago)   29h
nginx-deploy-6fb8d6548-fd9tx   1/1     Running     29 (56m ago)   29h
nginx-sc-0                     1/1     Running     0              3h22m[root@k8s-master job]# kubectl logs -f cron-job-test-28484150-wkbgp
Tue Feb 27 15:50:19 UTC 2024
Hello from the Kubernetes cluster

3、初始化容器 InitContainer

  • 相对于postStart来说,首先InitController能够保证一定在EntryPoint之前执行,而postStart不能,其次postStart更适合去执行一些命令操作,而InitController实际就是一个容器,可以在其他基础容器环境下执行更复杂的初始化功能。

3.1 在pod创建的模板中配置 initContainers 参数:

spec:template:spec:   initContainers:- image: nginx:1.20 imagePullPolicy: IfNotPresentcommand: [ sh,"-c","sleep 10 ;echo 'inited' >> /init.log "]name: init-test

3.2 修改存在的deploy资源,如下

在这里插入图片描述

3.3 更新过deploy后,新的pod有个init的过程

在这里插入图片描述

在这里插入图片描述

4、污点和容忍

  • 节点亲和性 是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点 (这可能出于一种偏好,也可能是硬性要求)。 污点(Taint) 则相反——它使节点能够排斥一类特定的 Pod。
  • 容忍度(Toleration) 是应用于 Pod 上的。容忍度允许调度器调度带有对应污点的 Pod。 容忍度允许调度但并不保证调度:作为其功能的一部分, 调度器也会评估其他参数。
  • 污点和容忍度(Toleration)相互配合,可以用来避免 Pod 被分配到不合适的节点上。 每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的 Pod, 是不会被该节点接受的。

4.1 污点(Taint)

  • 污点:是标注在节点上的,给一个节点打上污点以后,k8s回认为尽量不要将Pod调度到该节点上,除非该pod上面表示可以容忍该污点,且一个节点可以打多个污点,此时需要pod容忍所有污点才会被调度该节点。
  • 污点的影响:
    • NoSchedule:不能容忍的pod不能被调度到该节点,但是已经存在的节点不会被驱逐。
    • NoExecute:不能容忍的pod会被立即清除,能容忍的pod则会存在于节点上
    • tolerationSeconds属性,如果没设置,则可以一直运行,
    • tolerationSeconds:3600属性,则该pod还能继续在该节点运行3600,超过3600后会被重新调度

4.1.1 为node1节点打上污点

root@k8s-master volume]# kubectl taint node  k8s-node-01   tag=test:NoSchedule
node/k8s-node-01 tainted[root@k8s-master volume]# kubectl describe no  k8s-node-01
Name:               k8s-node-01
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64beta.kubernetes.io/os=linuxingress=truekubernetes.io/arch=amd64kubernetes.io/hostname=k8s-node-01kubernetes.io/os=linuxtype=microsvc
Annotations:        flannel.alpha.coreos.com/backend-data: {"VNI":1,"VtepMAC":"66:39:6c:7a:92:99"}flannel.alpha.coreos.com/backend-type: vxlanflannel.alpha.coreos.com/kube-subnet-manager: trueflannel.alpha.coreos.com/public-ip: 10.10.10.178kubeadm.alpha.kubernetes.io/cri-socket: /var/run/cri-dockerd.socknode.alpha.kubernetes.io/ttl: 0volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Mon, 19 Feb 2024 22:58:42 +0800# 这个地方可以看到这个新加的污点信息
Taints:             tag=test:NoSchedule
Unschedulable:      false
Lease:HolderIdentity:  k8s-node-01AcquireTime:     <unset>RenewTime:       Wed, 28 Feb 2024 01:17:51 +0800
Conditions:Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message----                 ------  -----------------                 ------------------                ------                       -------NetworkUnavailable   False   Mon, 26 Feb 2024 11:32:55 +0800   Mon, 26 Feb 2024 11:32:55 +0800   FlannelIsUp                  Flannel is running on this nodeMemoryPressure       False   Wed, 28 Feb 2024 01:17:30 +0800   Mon, 26 Feb 2024 11:32:41 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory availableDiskPressure         False   Wed, 28 Feb 2024 01:17:30 +0800   Mon, 26 Feb 2024 11:32:41 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressurePIDPressure          False   Wed, 28 Feb 2024 01:17:30 +0800   Mon, 26 Feb 2024 11:32:41 +0800   KubeletHasSufficientPID      kubelet has sufficient PID availableReady                True    Wed, 28 Feb 2024 01:17:30 +0800   Tue, 27 Feb 2024 01:59:54 +0800   KubeletReady                 kubelet is posting ready status
Addresses:InternalIP:  10.10.10.177Hostname:    k8s-node-01
Capacity:cpu:                2ephemeral-storage:  62575768Kihugepages-2Mi:      0memory:             3861288Kipods:               110
Allocatable:cpu:                2ephemeral-storage:  57669827694hugepages-2Mi:      0memory:             3758888Kipods:               110
System Info:Machine ID:                 9ee2b84718d0437fa9ea4380bdb34024System UUID:                A90F4D56-48C7-6739-A05A-A22B33EC7C5FBoot ID:                    6cb5ab07-c82b-4404-8f48-7b9abafe52f1Kernel Version:             3.10.0-1160.el7.x86_64OS Image:                   CentOS Linux 7 (Core)Operating System:           linuxArchitecture:               amd64Container Runtime Version:  docker://25.0.3Kubelet Version:            v1.25.0Kube-Proxy Version:         v1.25.0
PodCIDR:                      10.2.2.0/24
PodCIDRs:                     10.2.2.0/24
Non-terminated Pods:          (7 in total)Namespace                   Name                               CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age---------                   ----                               ------------  ----------  ---------------  -------------  ---default                     fluentd-59k8k                      0 (0%)        0 (0%)      0 (0%)           0 (0%)         3d4hdefault                     nginx-deploy-69ccc996f9-wqp55      100m (5%)     200m (10%)  128Mi (3%)       128Mi (3%)     61mingress-nginx               ingress-nginx-controller-jn65t     100m (5%)     0 (0%)      90Mi (2%)        0 (0%)         2d5hkube-flannel                kube-flannel-ds-glkkb              100m (5%)     0 (0%)      50Mi (1%)        0 (0%)         8dkube-system                 coredns-c676cc86f-pdsl6            100m (5%)     0 (0%)      70Mi (1%)        170Mi (4%)     6d14hkube-system                 kube-proxy-n2w92                   0 (0%)        0 (0%)      0 (0%)           0 (0%)         8dkube-system                 metrics-server-7bb86dcf48-hfpb5    100m (5%)     0 (0%)      200Mi (5%)       0 (0%)         3d3h
Allocated resources:(Total limits may be over 100 percent, i.e., overcommitted.)Resource           Requests     Limits--------           --------     ------cpu                500m (25%)   200m (10%)memory             538Mi (14%)  298Mi (8%)ephemeral-storage  0 (0%)       0 (0%)hugepages-2Mi      0 (0%)       0 (0%)
Events:              <none>

4.1.2 查看下master的污点

  • 之前在安装ingress-nginx的时候无法安装再master节点就是因为master节点有污点
  • master节点的污点是:Taints: node-role.kubernetes.io/control-plane:NoSchedule
[root@k8s-master volume]# kubectl  describe no k8s-master
Name:               k8s-master
Roles:              control-plane
Labels:             beta.kubernetes.io/arch=amd64beta.kubernetes.io/os=linuxingress=truekubernetes.io/arch=amd64kubernetes.io/hostname=k8s-masterkubernetes.io/os=linuxnode-role.kubernetes.io/control-plane=node.kubernetes.io/exclude-from-external-load-balancers=
Annotations:        flannel.alpha.coreos.com/backend-data: {"VNI":1,"VtepMAC":"c2:fd:ef:b4:ea:aa"}flannel.alpha.coreos.com/backend-type: vxlanflannel.alpha.coreos.com/kube-subnet-manager: trueflannel.alpha.coreos.com/public-ip: 10.10.10.100kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/cri-dockerd.socknode.alpha.kubernetes.io/ttl: 0volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Mon, 19 Feb 2024 22:04:42 +0800
Taints:             node-role.kubernetes.io/control-plane:NoSchedule
Unschedulable:      false
Lease:HolderIdentity:  k8s-masterAcquireTime:     <unset>RenewTime:       Wed, 28 Feb 2024 01:21:44 +0800
Conditions:Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message----                 ------  -----------------                 ------------------                ------                       -------NetworkUnavailable   False   Thu, 22 Feb 2024 18:30:31 +0800   Thu, 22 Feb 2024 18:30:31 +0800   FlannelIsUp                  Flannel is running on this nodeMemoryPressure       False   Wed, 28 Feb 2024 01:18:30 +0800   Mon, 19 Feb 2024 22:04:38 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory availableDiskPressure         False   Wed, 28 Feb 2024 01:18:30 +0800   Mon, 19 Feb 2024 22:04:38 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressurePIDPressure          False   Wed, 28 Feb 2024 01:18:30 +0800   Mon, 19 Feb 2024 22:04:38 +0800   KubeletHasSufficientPID      kubelet has sufficient PID availableReady                True    Wed, 28 Feb 2024 01:18:30 +0800   Mon, 19 Feb 2024 23:35:15 +0800   KubeletReady                 kubelet is posting ready status
Addresses:InternalIP:  10.10.10.100Hostname:    k8s-master
Capacity:cpu:                2ephemeral-storage:  62575768Kihugepages-2Mi:      0memory:             3861288Kipods:               110
Allocatable:cpu:                2ephemeral-storage:  57669827694hugepages-2Mi:      0memory:             3758888Kipods:               110
System Info:Machine ID:                 9ee2b84718d0437fa9ea4380bdb34024System UUID:                AE134D56-9F2E-B64D-9BA2-6368B1379B3ABoot ID:                    e0bf44a5-6a0d-4fc0-923d-f5d63089b93fKernel Version:             3.10.0-1160.el7.x86_64OS Image:                   CentOS Linux 7 (Core)Operating System:           linuxArchitecture:               amd64Container Runtime Version:  docker://25.0.3Kubelet Version:            v1.25.0Kube-Proxy Version:         v1.25.0
PodCIDR:                      10.2.0.0/24
PodCIDRs:                     10.2.0.0/24
Non-terminated Pods:          (7 in total)Namespace                   Name                                  CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age---------                   ----                                  ------------  ----------  ---------------  -------------  ---kube-flannel                kube-flannel-ds-tpm8x                 100m (5%)     0 (0%)      50Mi (1%)        0 (0%)         8dkube-system                 coredns-c676cc86f-q7hcw               100m (5%)     0 (0%)      70Mi (1%)        170Mi (4%)     6d14hkube-system                 etcd-k8s-master                       100m (5%)     0 (0%)      100Mi (2%)       0 (0%)         8dkube-system                 kube-apiserver-k8s-master             250m (12%)    0 (0%)      0 (0%)           0 (0%)         8dkube-system                 kube-controller-manager-k8s-master    200m (10%)    0 (0%)      0 (0%)           0 (0%)         8dkube-system                 kube-proxy-xtllb                      0 (0%)        0 (0%)      0 (0%)           0 (0%)         8dkube-system                 kube-scheduler-k8s-master             100m (5%)     0 (0%)      0 (0%)           0 (0%)         8d
Allocated resources:(Total limits may be over 100 percent, i.e., overcommitted.)Resource           Requests    Limits--------           --------    ------cpu                850m (42%)  0 (0%)memory             220Mi (5%)  170Mi (4%)ephemeral-storage  0 (0%)      0 (0%)hugepages-2Mi      0 (0%)      0 (0%)
Events:              <none>

4.1.3 污点的删除

[root@k8s-master volume]# kubectl  taint  no k8s-master  node-role.kubernetes.io/control-plane:NoSchedule-
node/k8s-master untainted

在这里插入图片描述

4.1.4 查看k8s上的pod节点信息

[root@k8s-master volume]# kubectl get po  -o wide
NAME                            READY   STATUS    RESTARTS        AGE     IP          NODE          NOMINATED NODE   READINESS GATES
dns-test                        1/1     Running   2 (37h ago)     3d22h   10.2.1.58   k8s-node-02   <none>           <none>
fluentd-59k8k                   1/1     Running   1 (37h ago)     3d5h    10.2.2.34   k8s-node-01   <none>           <none>
fluentd-hhtls                   1/1     Running   1 (37h ago)     3d4h    10.2.1.59   k8s-node-02   <none>           <none>
nginx-deploy-69ccc996f9-stgcl   1/1     Running   1 (8m23s ago)   68m     10.2.1.78   k8s-node-02   <none>           <none>
nginx-deploy-69ccc996f9-wqp55   1/1     Running   1 (8m8s ago)    68m     10.2.2.71   k8s-node-01   <none>           <none>

4.1.5 测试这个场景,把nginx的pod删除,是否可以再master创建

在这里插入图片描述

4.1.6 测试把master的污点给加上,但是污点属性是:NoExecute

  • NoExecute 属性会把目前在该节点上的pod都迁移到别的节点
  • 目前master给打上污点了,node1节点也给打上污点了,最终新的pod会跑到node2上。

在这里插入图片描述

4.2 容忍(Toleration)

  • 容忍:是标注在pod上的,当pod被调度时,如果没有配置容忍,则该pod不会被调度到有污点的节点上,只有该pod上标注了满足某个节点的所有污点,则会被调度到这些节点

4.2.1 k8s-node-01上配置了污点,影响是:NoSchedule

  • 污点的key-value是:tag=test
  • 属性是:NoSchedule ”不能容忍的pod不能被调度到该节点,但是已经存在的节点不会被驱逐。“
[root@k8s-master volume]# kubectl  describe   no k8s-node-01  |  grep  -i  tain
Taints:             tag=test:NoScheduleContainer Runtime Version:  docker://25.0.3

4.2.2 pod的spec下面配置容忍度影响是:NoSchedule ,操作是 Equal

  • 容忍操作 operator: “Equal” 表示pod上的容忍度和节点的污点相同,才会匹配到该节点
tolerations:- key: tag   #  污点的keyvalue: test  #污点的valueeffect: "NoSchedule"    # 污点产生的影响operator: "Equal"   # 表示 value与污点的value要相等,也可以设置为Exists表示存在key即可,此时可以不用配置value

4.2.3 修改deploy资源中容器的容忍值

在这里插入图片描述

4.2.4 查看pod的变动

  • 能够容忍污点的节点上,pod会被创建到这个节点上,之前的节点并不会改变

在这里插入图片描述

在这里插入图片描述

4.2.5 修改deploy资源中容器的的容忍属性:容忍度影响是:NoSchedule ,操作是Exists

在这里插入图片描述

4.2.6 查看pod的变动

  • 容忍影响是:NoSchedule,代表节点有污点,不能被使用,但是有容忍的操作是匹配到污点的key就可以存在,所以更新deploy后,会有pod创建到这个节点上。
    在这里插入图片描述

4.2.7 修改deploy资源中容器的的容忍属性:容忍度影响是:NoExecute ,操作是 Exists

在这里插入图片描述

4.2.8 查看pod变动

在这里插入图片描述

4.2.9 修改deploy资源中容器的的容忍属性:容忍度影响不设置 ,操作是 Exists

在这里插入图片描述

4.2.10 查看pod变动

在这里插入图片描述

4.2.11 Pod 存在一个 effect 值为 NoExecute 的容忍度指定了可选属性 tolerationSeconds 的值,则表示在给节点添加了上述污点之后, Pod 还能继续在节点上运行的时间。

在这里插入图片描述

4.3 k8s内置污点

在这里插入图片描述

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

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

相关文章

为什么会对猫毛过敏?如何缓解?浮毛克星—宠物空气净化器推荐

猫咪过敏通常是因为它们身上的Fel d1蛋白质导致的&#xff0c;这些蛋白质附着在猫咪的皮屑上。猫咪舔毛的过程会带出这些蛋白质&#xff0c;一旦接触就可能引发过敏症状&#xff0c;比如打喷嚏等。因此&#xff0c;减少空气中的浮毛数量有助于减轻过敏现象。猫用空气净化器可以…

Tomcat架构分析

Tomcat的核心组件 Tomcat将请求器和处理器分离&#xff0c;使用多种请求器支持不同的网络协议&#xff0c;而处理器只有一个。从而网络协议和容器解耦。 Tomcat的容器 Host&#xff1a;Tomcat提供多个域名的服务&#xff0c;其将每个域名都视为一个虚拟的主机&#xff0c;在…

半导体行业案例:Jira与龙智插件助力某半导体企业实现精益项目管理

近日&#xff0c;龙智Atlassian技术团队收到了国内一家大型半导体企业的感谢信。龙智团队提供的半导体行业项目管理解决方案和服务受到了客户的好评&#xff1a; 在龙智团队的支持下&#xff0c;我们的业务取得了喜人的成果和进步。龙智公司的专业服务和产品&#xff0c;是我们…

skiplist(高阶数据结构)

目录 一、概念 二、实现 三、对比 一、概念 skiplist是由William Pugh发明的&#xff0c;最早出现于他在1990年发表的论文《Skip Lists: A Probabilistic Alternative to Balanced Trees》 skiplist本质上是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;…

AI:145-智能监控系统下的行人安全预警与法律合规分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

2024年阿里云2核4G配置服务器测评_ECS和轻量性能测评

阿里云2核4G服务器多少钱一年&#xff1f;2核4G服务器1个月费用多少&#xff1f;2核4G服务器30元3个月、85元一年&#xff0c;轻量应用服务器2核4G4M带宽165元一年&#xff0c;企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

Vue3制作一个可拖拽的小箭头

效果图 可以抓住小箭头进行左右拖拽&#xff0c;不会做git图&#xff0c;所以只有静态效果QAQ 代码 <template><div class"tip"draggable"true"dragstart"start" //拖拽开始时drag"dragging" //拖拽种dragend "…

2024.2.27每日一题

之前是出去旅游了没发&#xff0c;现在开学了&#xff0c;继续每日一题&#xff0c;继续卷&#xff0c;一上来就是困难题&#x1f613;&#xff0c;直接cv大法。 LeetCode 统计树中的合法路径数目 2867. 统计树中的合法路径数目 - 力扣&#xff08;LeetCode&#xff09; 题目…

选择何种操作系统作为网站服务器

选择操作系统时&#xff0c;需考虑稳定性、安全性、成本、兼容性和技术支持等因素&#xff0c;常见选项有Windows Server和Linux发行版。 选择网站服务器的操作系统是一个关键的决策&#xff0c;因为它将影响到网站的性能、稳定性、安全性以及未来的扩展性&#xff0c;目前市场…

数据库之ACID

一、ACID **原子性&#xff08;Atomicity&#xff09;&#xff1a;**即事务是不可分割的最小工作单元&#xff0c;事务内的操作要么全做&#xff0c;要么全不做&#xff0c;不能只做一部分&#xff1b; 一致性&#xff08;Consistency&#xff09;&#xff1a;在事务执行前数据…

【大数据】Flink SQL 语法篇(八):集合、Order By、Limit、TopN

Flink SQL 语法篇&#xff08;八&#xff09;&#xff1a;集合、Order By、Limit、TopN 1.集合操作2.Order By、Limit 子句2.1 Order By 子句2.2 Limit 子句 3.TopN 子句 1.集合操作 集合操作支持 Batch / Streaming 任务。 UNION&#xff1a;将集合合并并且去重。UNION ALL&a…

DataGrip 2023:让数据库开发变得更简单、更高效 mac/win版

JetBrains DataGrip 2023是一款功能强大的数据库IDE&#xff0c;专为数据库开发和管理而设计。通过DataGrip&#xff0c;您可以连接到各种关系型数据库管理系统(RDBMS)&#xff0c;并使用其提供的一组工具来查询、管理、编辑和开发数据库。 DataGrip 2023 软件获取 DataGrip …

[unity]lua热更新——个人复习笔记【侵删/有不足之处欢迎斧正】

一、AssetBundle AB包是特定于平台的资产压缩包&#xff0c;类似于压缩文件 相对于RESOURCES下的资源&#xff0c;AB包更加灵活轻量化&#xff0c;用于减小包体大小和热更新 可以在unity2019环境中直接下载Asset Bundle Browser 可以在其中设置关联 AB包生成的文件 AB包文件…

【Linux】云服务器的Redis被黑

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Linux ⛺️稳中求进&#xff0c;晒太阳 攻击发现&#xff1a; 这个异常情况是在腾讯云被入侵后&#xff0c;短信提醒发现的。并没有系统的学习过关于服务器安防相关的知识&#xff0c;遇到…

国产动漫|基于Springboot的国产动漫网站设计与实现(源码+数据库+文档)

国产动漫网站目录 目录 基于Springboot的国产动漫网站设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1、用户信息管理 2、国漫先驱管理 3、国漫之最管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题…

C语言中如何进行内存管理

主页&#xff1a;17_Kevin-CSDN博客 收录专栏&#xff1a;《C语言》 C语言是一种强大而灵活的编程语言&#xff0c;但与其他高级语言不同&#xff0c;它要求程序员自己负责内存的管理。正确的内存管理对于程序的性能和稳定性至关重要。 一、引言 C 语言是一门广泛使用的编程语…

VPX基于全国产飞腾FT-2000+/64核+复旦微FPGA的计算刀片

6U VPX计算板 产品简介 产品特点 飞腾计算平台&#xff0c;国产化率100% VPX-MPU6902是一款基于飞腾FT-2000/64核的计算刀片&#xff0c;主频2.2GHz&#xff0c;负责业务数据流的管控和调度。搭配自带独立显示芯片的飞腾X100芯片&#xff0c;可用于于各类终端及服务器类应用场…

spring boot整合cache使用memcached

之前讲了 spring boot 整合 cache 做 simple redis Ehcache 三种工具的缓存 上文 windows系统下载安装 memcached 我们装了memcached 但spring boot没有将它的整合纳入进来 那么 我们就要自己来处理客户端 java历史上 有过三种客户端 那么 我们用肯定是用最好的 Xmemcached …

vue2 + axios + mock.js封装过程,包含mock.js获取数据时报404状态的解决记录,带图文,超详细!!!

vue axios mock.js 以下是封装的过程&#xff0c;记录一下 1、首先先了解什么是mock.js的用途及特点 官网地址&#xff1a;Mock.js (mockjs.com) 作用&#xff1a;生成随机数据&#xff0c;拦截 Ajax 请求 优势&#xff1a; 2、了解axios的原理及使用 官网地址&#xff1a…

大模型(LLM)的token学习记录-I

文章目录 基本概念什么是token?如何理解token的长度&#xff1f;使用openai tokenizer 观察token的相关信息open ai的模型 token的特点token如何映射到数值&#xff1f;token级操作&#xff1a;精确地操作文本token 设计的局限性 tokenizationtoken 数量对LLM 的影响训练模型参…