Linux——k8s组件

news2024/9/29 9:26:23

kubernetes 使用1.31.1 版本搭建集群核心组件,选择flannel 网络插件为整体集群的运行提供网络通信功能。

flannel 网络插件

kube-flannel   kube-flannel-ds-9fgml             1/1     Running   1 (18m ago)   2d21h

kube-flannel   kube-flannel-ds-ghwbq             1/1     Running   1 (18m ago)   2d21h

kube-flannel   kube-flannel-ds-mkm4r             1/1     Running   1 (18m ago)   2d21h

K8S核心组件:

 

1、coredns提供集群内的DNS解析

kube-system    coredns-fcd6c9c4-cvcvt            1/1     Running   1 (18m ago)   2d21h

kube-system    coredns-fcd6c9c4-m9kxk            1/1     Running   1 (18m ago)   2d21h

2、ectd (基于键值对的数据库) 提供集群数据的存储(1) pod的名称数量(2)网络参数的分配(3)集群的状态

kube-system    etcd-control                      1/1     Running   1 (18m ago)   2d21h

3、api-server:Kubernetes的api响应服务器,用户向K8S平台发出的所有指令,都是先给到api-server,由APIserver 根据用户的请求以调用不同的组件

kube-system    kube-apiserver-control            1/1     Running   1 (18m ago)   2d21h

4、controller-manager:完成pod的启动和状态维护,比如pod停止了,由controller-manager 完成pod的重启

kube-system    kube-controller-manager-control   1/1     Running   1 (18m ago)   2d21h

5、kube-proxy:K8s的代理服务

kube-system    kube-proxy-54j4f                  1/1     Running   1 (18m ago)   2d21h

kube-system    kube-proxy-c8cdj                  1/1     Running   1 (18m ago)   2d21h

kube-system    kube-proxy-v7td8                  1/1     Running   1 (18m ago)   2d21h

6、scheduler-control: 调度管理器,决定K8S中运行pod的节点,指定pod的运行节点。

kube-system    kube-scheduler-control            1/1     Running   1 (18m ago)   2d21h

pod

pod 是K8S平台上最小的管理单位,pod是K8S平台上运行的进程。

什么是容器?应用容器化的本质是什么?

容器是一个隔离的沙盒环境。容器实现隔离环境所使用的技术是namespace (名称空间)cgroup (控制组)。沙盒环境中包括了运行某一个应用所需要的基本依赖关系和运行的环境(配置文件、日志输出、启动程序等)。一个应用的镜像包括了应用运行所需要的所有的依赖管理和运行环境的支持。应用容器化的本质分为两步:1.将应用运行需要的所有文件打包,制作镜像2. 将镜像中的程序启动(运行起来),程序运行起来之后,就是进程了,换一句叫做运行容器,或者跑一个容器。

总结一下: 容器实际就是在操作系统上使用软件技术隔离一个环境,然后运行程序的过程。所以在容器宿主机上,在容器内部只能看到容器内部启动的进程,举个例子:容器中通常有一个pid为1 的进程,而这个进程不是容器宿主机中pid为1 的进程,容器宿主机中可以看到容器启动的进程,但是并不知道容器具体使用哪个程序启动对应的进程。

pod的重点类似于容器,也是需要在一个相对隔离的环境下启动进程,并为隔离环境中的进程提供需要的网络、存储等资源的访问。但是pod并不是容器,pod提供容器所需要的隔离环境,并为隔离环境内的容器提供必要的网络和存储,所以某种程度上pod 是用来管理容器的上一级概念。

在K8S中,一个pod=一个运行中的应用实例

pod运行容器的方式:

  1. 一个pod中封装一个容器,最简单的运行方式,但是如果需要较为复杂架构的实现,还是需要较为复杂的配置过程。
  2. 一个pod中封装多个容器:可以直接在一个pod中运行所有的服务,比如说lamp等常见组合,另一个原因在于同一个pod中的容器直接基于localhost进行通信,也不需要复杂的网络配置或者繁琐的数据同步。

K8S 资源对象:

  1. pod (最小调度单位,一定属于某一个名称空间)
    1. K8S 的名称空间,一般是为了给不同的项目进行项目环境的隔离而使用的概念,
    2. 类比ansible不同的目录可以代表不同的项目代码,K8S不同的名称空间运行不同的应用
  2. node (K8S工作节点,应用pod一般都运行在工作节点上,node 不属于任何名称空间,同样持久卷也不属于任何名称空间)
[root@control ~]# kubectl get nodes		// 列出节点信息
NAME      STATUS   ROLES           AGE    VERSION
control   Ready    control-plane   3d4h   v1.31.1
node1     Ready    <none>          3d4h   v1.31.1
node2     Ready    <none>          3d4h   v1.31.1
[root@control ~]# kubectl get nodes  -o wide  // 列出所有节点基本信息
NAME      STATUS   ROLES           AGE    VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE          KERNEL-VERSION          CONTAINER-RUNTIME
control   Ready    control-plane   3d4h   v1.31.1   192.168.110.10   <none>        CentOS Stream 9   5.14.0-474.el9.x86_64   containerd://1.7.22
node1     Ready    <none>          3d4h   v1.31.1   192.168.110.11   <none>        CentOS Stream 9   5.14.0-474.el9.x86_64   containerd://1.7.22
node2     Ready    <none>          3d4h   v1.31.1   192.168.110.22   <none>        CentOS Stream 9   5.14.0-474.el9.x86_64   containerd://1.7.22
[root@control ~]# kubectl describe node control   // 列出指定节点的详细信息

以相对动态的方式实时获取每一个节点的基本信息,使用一个K8S的组件 metrics-server 来收集每一个节点的内存CPU 等资源的实时使用率,metrics-server将在api-server 中增加关于节点状态收集的api路径,收集到的节点信息可以传递给其他的监控软件使用。

[root@control ~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
[root@control ~]# cat .kube/registry_cn
registry.cn-hangzhou.aliyuncs.com/google_containers/
[root@control ~]# mv components.yaml metrics-server.yml
mv: overwrite 'metrics-server.yml'? y
[root@control ~]# vim metrics-server.yml

[root@control ~]# kubectl apply -f metrics-server.yml
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
[root@control ~]# kubectl get pods -o wide -n kube-system
NAME                              READY   STATUS    RESTARTS        AGE    IP               NODE      NOMINATED NODE   READINESS GATES
coredns-fcd6c9c4-cvcvt            1/1     Running   1 (6h52m ago)   3d4h   10.244.1.10      node1     <none>           <none>
coredns-fcd6c9c4-m9kxk            1/1     Running   1 (6h52m ago)   3d4h   10.244.1.9       node1     <none>           <none>
etcd-control                      1/1     Running   1 (6h52m ago)   3d4h   192.168.110.10   control   <none>           <none>
kube-apiserver-control            1/1     Running   1 (6h52m ago)   3d4h   192.168.110.10   control   <none>           <none>
kube-controller-manager-control   1/1     Running   1 (6h52m ago)   3d4h   192.168.110.10   control   <none>           <none>
kube-proxy-54j4f                  1/1     Running   1 (6h52m ago)   3d4h   192.168.110.11   node1     <none>           <none>
kube-proxy-c8cdj                  1/1     Running   1 (6h52m ago)   3d4h   192.168.110.10   control   <none>           <none>
kube-proxy-v7td8                  1/1     Running   1 (6h52m ago)   3d4h   192.168.110.22   node2     <none>           <none>
kube-scheduler-control            1/1     Running   1 (6h52m ago)   3d4h   192.168.110.10   control   <none>           <none>
metrics-server-86c648b4bf-tfhjp   1/1     Running   0               50s    10.244.2.10      node2     <none>           <none>
实时监控节点的资源使用情况:
[root@control ~]# kubectl top node
NAME      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
control   170m         8%     1636Mi          43%
node1     60m          3%     1109Mi          29%
node2     47m          2%     1019Mi          13%

对于K8S集群中的工作节点的增加和移除:

增加新的工作节点:

  1. 配置工作节点的OCI 、selinux等基础环境
  2. kubeadm join 命令加入到K8S 现有集群中

移除工作节点:

禁止向指定节点调度新的pod

kubectl cordon node 节点名   

移除在指定节点上的pod

kubectl drain node 节点名

以上这两步也可以将指定的工作节点进行常规的状态维护

结束常规的技术维护之后,重新加入K8S调度的指令:

kubectl uncordon node 节点名

3、namespace 和用来进行容器环境隔离的namesapce 不是一个层面的东西

      kubectl get    //列出指定的资源类型

kubectl get pods   // 列出所有的pod资源

kubectl get nodes    // 列出所有的节点信息

kubectl get namespace   // 所有的名称空间

[root@control ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   3d4h			// 本身默认的名称空间
kube-flannel      Active   3d4h			// 创建flannel 网络插件时,创建的专门用于运行网络插件的名称空间 
kube-node-lease   Active   3d4h			// 管理K8S集群节点有限期,属于默认名称空间
kube-public       Active   3d4h			// 也属于默认的名称空间
kube-system       Active   3d4h		 	// 默认名称空间,K8S核心组件资源

4、label 标签/ annotation 备注

5、taint 污点 toleration 容忍

        taint 一般设置在工作节点,用来说明节点的一些不适合运行pod的状态

        toleration 一般设置在某个pod上,用来说明可以调度到条件适配的有污点的节点。

6、Service      // 使用pod运行的应用一个会认为是一个独立的服务

7、Volume // 卷  pod 使用的存储

8、PersistentVolume // 持久卷   

9、Deployment // 服务部署    一次需要调度的pod的数量

10、Secret //  K8s 加密数据的访问

11、StatefulSet //  有状态的服务部署  网络资源固定分配以及存储资源的持久化

12、DaemonSet //  无状态的服务部署

13、ServiceAccount // 服务装好

14、ReplicationController  // 副本控制器

15、ReplicaSet // 副本集控制器,和上一条功能相同 只是版本不同

16、Job // 一个定时作业

17、CronJob // 一个周期作业

18、SecurityContext // 安全上下文

19、ResourceQuota // 资源配额  容器资源限制

20、LimitRange // 范围限制

21、HorizontalPodAutoscaling // pod水平扩展   一般通过RC RS等资源快速实现

22、Ingress // 集成的应用网关,属于一种网络和应用功能的合并资源

23、ConfigMap // 配置映射,一般用来解决卷和持久卷的映射关系

24、Role // 用来进行用户权限约束的资源 K8S平台中不是通过属主属组进行权限划分,而是通过角色划分用户的权限

25、ClusterRole // 对K8S集群本身管理权限的划分

练习参考资料:

使用 Deployment 运行一个无状态应用 | Kubernetes本文介绍如何通过 Kubernetes Deployment 对象去运行一个应用。教程目标 创建一个 nginx Deployment。 使用 kubectl 列举该 Deployment 的相关信息。 更新该 Deployment。 准备开始 你必须拥有一个 Kubernetes 的集群,且必须配置 kubectl 命令行工具让其与你的集群通信。 建议运行本教程的集群至少有两个节点,且这两个节点不能作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:Killercoda 玩转 Kubernetes 你的 Kubernetes 服务器版本必须不低于版本 v1.9. 要获知版本信息,请输入 kubectl version. 创建并了解一个 nginx Deployment 你可以通过创建一个 Kubernetes Deployment 对象来运行一个应用, 且你可以在一个 YAML 文件中描述 Deployment。例如,下面这个 YAML 文件描述了一个运行 nginx:1.14.2 Docker 镜像的 Deployment:application/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 # 告知 Deployment 运行 2 个与该模板匹配的 Pod template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.icon-default.png?t=O83Ahttps://kubernetes.io/zh-cn/docs/tasks/run-application/run-stateless-application-deployment/

部署一个无状态应用到K8S集群

  1. 目前对于无状态应用的部署通过deployment实现,创建一个deployment 会自动选择RS控制器,创建应用副本数量的控制器。
  2. rc 作为一种较早的副本控制器,已经不推荐再继续使用
  3. K8S中的资源不直接通过create 子命令创建,为了更加贴合应用的实际运行环境,K8S对于大部分管理资源的创建都是通过一种叫做声明式配置的文件进行预先配置,然后进行创建。

[root@control ~]# vim nginx-deployment.yml
apiVersion: apps/v1     	//K8Sapiserver的路径
kind: Deployment			//资源类型 Deployment
metadata:				//针对资源的元数据
  name: nginx-deployment	// 设置资源的名称
spec:					// 资源具体的参数
  selector:				// 选择器
    matchLabels:			// 匹配标签的值
      app: nginx			// 设定的值
  replicas: 2 				// 告知 Deployment 运行 2 个与该模板匹配的 Pod
// replicas 副本的控制主要是通过relipcaset 
  template:				// pod运行的参数
    metadata:
      labels:		
        app: nginx		// pod 对应的标签
    spec:				// pod中容器对应的参数
      containers:			
      - name: nginx		// 容器名称
        image: nginx:latest	// 容器对应的镜像
        imagePullPolicy: IfNotPresent  // 镜像的拉取策略为节点中没有
        ports:
        - containerPort: 80		// nginx容器需要使用80端口通信,pod中的其他容器不能使用80端口

上面的配置文件,会创建一个名为nginx的deployment,这个deployment中需要启动两个pod,pod中是一个使用nginx镜像的容器。

为了避免需要拉取镜像,检查工作节点镜像环境。

[root@node1 ~]# crictl -r unix:///var/run/containerd/containerd.sock images nginx

[root@control ~]# kubectl apply -f nginx-deployment.yml
deployment.apps/nginx-deployment created
[root@control ~]# source  .kube/k8s_bash_completion
[root@control ~]# kubectl describe deployments.apps nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Mon, 23 Sep 2024 17:20:07 +0800
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:         nginx:latest
    Port:          80/TCP
    Host Port:     0/TCP
    Environment:   <none>
    Mounts:        <none>
  Volumes:         <none>
  Node-Selectors:  <none>
  Tolerations:     <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-bf56f49c (2/2 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  69s   deployment-controller  Scaled up replica set nginx-deployment-bf56f49c to 2
[root@control ~]# kubectl get pods
NAME                              READY   STATUS    RESTARTS     AGE
my-nginx-7549dd6888-lhnr6         1/1     Running   1 (9h ago)   3d
my-nginx-7549dd6888-z84x4         1/1     Running   1 (9h ago)   3d
nginx-deployment-bf56f49c-54sxj   1/1     Running   0            3m18s
nginx-deployment-bf56f49c-fjbsc   1/1     Running   0            3m18s
[root@control ~]# kubectl get pods -l app=nginx
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-bf56f49c-54sxj   1/1     Running   0          3m46s
nginx-deployment-bf56f49c-fjbsc   1/1     Running   0          3m46s
[root@control ~]# vim nginx-deployment.yml
[root@control ~]# kubectl apply -f nginx-deployment.yml
deployment.apps/nginx-deployment configured
[root@control ~]# kubectl describe deployments.apps nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Mon, 23 Sep 2024 17:20:07 +0800
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:         nginx:latest
    Port:          80/TCP
    Host Port:     0/TCP
    Environment:   <none>
    Mounts:        <none>
  Volumes:         <none>
  Node-Selectors:  <none>
  Tolerations:     <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-bf56f49c (3/3 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  5m41s  deployment-controller  Scaled up replica set nginx-deployment-bf56f49c to 2
  Normal  ScalingReplicaSet  11s    deployment-controller  Scaled up replica set nginx-deployment-bf56f49c to 3 from 2
[root@control ~]# kubectl get pods -l app=nginx
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-bf56f49c-54sxj   1/1     Running   0          5m58s
nginx-deployment-bf56f49c-fjbsc   1/1     Running   0          5m58s
nginx-deployment-bf56f49c-q2fbx   1/1     Running   0          28s
[root@control ~]# kubectl scale --replicas=4 deployment nginx-deployment
deployment.apps/nginx-deployment scaled
[root@control ~]# kubectl get pods -l app=nginx
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-bf56f49c-54sxj   1/1     Running   0          7m7s
nginx-deployment-bf56f49c-fjbsc   1/1     Running   0          7m7s
nginx-deployment-bf56f49c-kfr8g   1/1     Running   0          3s
nginx-deployment-bf56f49c-q2fbx   1/1     Running   0          97s
[root@control ~]# kubectl scale --replicas=2 deployment nginx-deployment
deployment.apps/nginx-deployment scaled
[root@control ~]# kubectl get pods -l app=nginx
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-bf56f49c-54sxj   1/1     Running   0          7m28s
nginx-deployment-bf56f49c-fjbsc   1/1     Running   0          7m28s
[root@control ~]# kubectl delete deployments.apps nginx-deployment
或者使用配置文件删除
[root@control ~]# kubectl delete -f  nginx-deployment.yml
deployment.apps "nginx-deployment" deleted

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

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

相关文章

<<迷雾>> 第 3 章 怎样才能让机器做加法 示例电路

全加器示意图 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch03-01-full-adder.txt 原图 由3个全加器组成的3比特加法机 info::操作说明…

Linux——pod的调度

pod的调度 控制器: rc/rs 副本数量控制器 主要保证pod的数量符合管理员要求&#xff0c;并不会对pod进行额外的管理 以下三种控制器&#xff0c;本质上是服务控制器。具备以下特性&#xff1a; 副本数量的控制服务的滚动更新&#xff08;更新pod&#xff09;支持更新失…

基于springboot vue 投票系统设计与实现

博主介绍&#xff1a;专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

基于51单片机的2路电压采集proteus仿真

地址&#xff1a;https://pan.baidu.com/s/1oNOJJv78ecfWZkdlMyhNVQ 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectron…

Linux:LCD驱动开发

目录 1.不同接口的LCD硬件操作原理 应用工程师眼中看到的LCD 1.1像素的颜色怎么表示 ​编辑 1.2怎么把颜色发给LCD 驱动工程师眼中看到的LCD 统一的LCD硬件模型 8080接口 TFTRGB接口 什么是MIPI Framebuffer驱动程序框架 怎么编写Framebuffer驱动框架 硬件LCD时序分析…

OpenAI全新多模态内容审核模型上线:基于 GPT-4o,可检测文本和图像

在数字时代&#xff0c;内容安全问题愈发受到重视。9月26日&#xff0c;OpenAI 正式推出了一款全新的多模态内容审核模型&#xff0c;名为 “omni-moderation-latest”。 该模型基于最新的 GPT-4o 技术&#xff0c;能够准确地识别检测有害文本图像。这一更新将为开发者提供强大…

Java | Leetcode Java题解之第445题两数相加II

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {Deque<Integer> stack1 new ArrayDeque<Integer>();Deque<Integer> stack2 new ArrayDeque<Integer>();while (l1 ! null) {stack1.…

AI Agent应用出路到底在哪?

1 Agent/Function Call 的定义 Overview of a LLM-powered autonomous agent system&#xff1a; Agent学会调用外部应用程序接口&#xff0c;以获取模型权重中缺失的额外信息&#xff08;预训练后通常难以更改&#xff09;&#xff0c;包括当前信息、代码执行能力、专有信息源…

《深度学习》OpenCV 角点检测、特征提取SIFT 原理及案例解析

目录 一、角点检测 1、什么是角点检测 2、检测流程 1&#xff09;输入图像 2&#xff09;图像预处理 3&#xff09;特征提取 4&#xff09;角点检测 5&#xff09;角点定位和标记 6&#xff09;角点筛选或后处理&#xff08;可选&#xff09; 7&#xff09;输出结果 3、邻域…

深度学习反向传播-过程举例

深度学习中&#xff0c;一般的参数更新方式都是梯度下降法&#xff0c;在使用梯度下降法时&#xff0c;涉及到梯度反向传播的过程&#xff0c;那么在反向传播过程中梯度到底是怎么传递的&#xff1f;结合自己最近的一点理解&#xff0c;下面举个例子简单说明&#xff01; 一、…

Qt开发技巧(九)去掉切换按钮,直接传样式文件,字体设置,QImage超强,巧用Qt的全局对象,信号槽断连,低量数据就用sqlite

继续讲一些Qt开发中的技巧操作&#xff1a; 1.去掉切换按钮 QTabWidget选项卡有个自动生成按钮切换选项卡的机制&#xff0c;有时候不想看到这个烦人的切换按钮&#xff0c;可以设置usesScrollButtons为假&#xff0c;其实QTabWidget的usesScrollButtons属性最终是应用到QTabWi…

衡石分析平台系统管理手册-功能配置之AI 助手集成嵌入指南

AI 助手集成嵌入指南​ 本文档将引导您通过几个简单的步骤&#xff0c;将 AI 助手集成或嵌入到您的系统中。HENGSHI SENSE AI 助手提供了多种集成方式&#xff0c;您可以通过 iframe、JS SDK 或 API 调用等方式将 AI 助手嵌入集成到您的系统中。 1. 通过 iframe 集成​ ifra…

老板最想要的20套模板!基于 VUE 国产开源 IoT 物联网 Web 可视化大屏设计器

如有需求&#xff0c;文末联系小编 Cola-Designer 是一个基于VUE开发&#xff0c;实现拖拽和配置方式生成数据大屏&#xff0c;提供丰富的可视化模板&#xff0c;满足客户业务监控、数据统计、风险预警、地理信息分析等多种业务的展示需求。Cola-Designer 帮助工程师通过图形化…

MySQL - 单表增删改

1. MySQL 概述 MySQL 是一种流行的开源关系型数据库管理系统 (DBMS)&#xff0c;广泛应用于互联网公司和企业开发中。它支持 SQL 语句操作数据&#xff0c;并提供多种版本供选择。 1.1 MySQL 安装和连接 社区版&#xff1a;免费版本&#xff0c;适合开发者使用。商业版&…

sizeof 和 strlen

一 . sizeof 关键字 这个是我们的老朋友了昂&#xff0c;经常都在使用&#xff0c;它是专门用来计算变量所占内存空间大小的&#xff0c;单位是字节&#xff0c;当然&#xff0c;如果我们的操作对象是类型的话&#xff0c;计算的就是类型所创建的变量所占内存的大小&#xff0…

【笔记】神领物流day1.1.13前后端部署【未完】

使用jenkins 前端部署 需要将前端开发的vue进行编译&#xff0c;发布成html&#xff0c;然后通过nginx进行访问&#xff0c;这个过程已经在Jenkins中配置&#xff0c;执行点击发布即可 网址栏输入神领TMS管理系统 (sl-express.com)即可看见启动成功 后端部署看linux 回到Jenki…

25维谛技术面试最常见问题面试经验分享总结(包含一二三面题目+答案)

开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费&#xff01;全文干货。 【免费】25维谛技术面试最常见问题面试经验分享总结&#xff08;包含一二三面题目答案&#xff09;资源-CSDN文库https://download.csdn.net/download/m0_72216164/8979…

单调递增/递减栈

单调栈 单调栈分为单调递增栈和单调递减栈 单调递增栈&#xff1a;栈中元素从栈底到栈顶是递增的 单调递减栈&#xff1a;栈中元素从栈底到栈顶是递减的 应用&#xff1a;求解下一个大于x元素或者是小于x的元素的位置 给一个数组&#xff0c;返回一个大小相同的数组&#x…

一文了解:最新版本 Llama 3.2

Meta AI最近发布了 Llama 3.2。这是他们第一次推出可以同时处理文字和图片的多模态模型。这个版本主要关注两个方面&#xff1a; 视觉功能&#xff1a;他们现在有了能处理图片的模型&#xff0c;参数量从11亿到90亿不等。 轻量级模型&#xff1a;这些模型参数量在1亿到3亿之间…

llamafactory0.9.0微调qwen2vl

LLaMA-Factory/data/README_zh.md at main hiyouga/LLaMA-Factory GitHubEfficiently Fine-Tune 100+ LLMs in WebUI (ACL 2024) - LLaMA-Factory/data/README_zh.md at main hiyouga/LLaMA-Factoryhttps://github.com/hiyouga/LLaMA-Factory/blob/main