10:部署Dashboard|部署Prometheus|HPA集群

news/发布时间2024/5/14 10:38:33

部署Dashboard|部署Prometheus|HPA集群

  • Dashboard
    • 部署Dashboard
      • 上传镜像到私有仓库
      • 安装服务
      • 发布服务
      • 创建管理用户
      • 查看登录的Token信息
  • Prometheus
    • 步骤一:导入所有后续需要的镜像到私有镜像仓库(在master主机操作操作)
    • 步骤二:修改资源文件部署各种容器服务(在master主机操作操作)
    • 步骤三:对外发布grafana服务(在master主机操作)
    • 步骤四:配置grafana
      • 步骤一:配置grafana(在任意主机操作)
  • HPA
    • 步骤一:部署一个弹性集群(在master主机操作)
    • 步骤二:查看动态扩容效果

Dashboard

在这里插入图片描述

部署Dashboard

上传镜像到私有仓库

# 上传dashboard
[root@master dashboard]# docker load -i dashboard.tar.gz
[root@master dashboard]# docker tag kub../dashboard:v2.0.0 192.168....
[root@master dashboard]# docker push 192...:v2.0.0
# 上传metrics-scraper镜像
[root@master dashboard]# docker load -i metrics-scraper.tar.gz
[root@master dashboard]# docker tag kub../metrics-scraper:v2.0.0 192.168....
[root@master dashboard]# docker push 192...:v2.0.0

安装服务

[root@master dashboard]# kubectl apply -f recommended.yaml
[root@master dashboard]# kubectl -n kubernetes-dashboard get pods
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-844d8585c9-w26m4   1/1     Running   0          10s
kubernetes-dashboard-6c58946f65-4bdtb        1/1     Running   0          10s

发布服务

在这里插入图片描述

ClusterIP 只能在集群内部访问
NodePort 和 Ingress 可以在外部访问

[root@master dashboard]# kubectl -n kubernetes-dashboard get service
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
dashboard-metrics-scraper   ClusterIP   10.245.205.236   <none>        8000/TCP   13s
kubernetes-dashboard        ClusterIP   10.245.215.40    <none>        443/TCP    14s[root@master dashboard]# sed -n '30,45p' recommended.yaml >dashboard-svc.yaml
[root@master dashboard]# vim dashboard-svc.yaml
---
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:type: NodePortports:- port: 443nodePort: 30443targetPort: 8443selector:k8s-app: kubernetes-dashboard[root@master dashboard]# kubectl apply -f dashboard-svc.yaml 
service/kubernetes-dashboard configured
[root@master dashboard]# kubectl -n kubernetes-dashboard get service
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.245.205.236   <none>        8000/TCP        5m50s
kubernetes-dashboard        NodePort    10.245.215.40    <none>        443:30443/TCP   5m51s

浏览器访问任意节点IP的30443端口(http://任意节点:30443 端口
在这里插入图片描述

创建管理用户

[root@master dashboard]# cat admin-token.yaml          #查看、学习资源文件
---
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard
[root@master dashboard]# kubectl create -f admin-token.yaml   #创建资源

查看登录的Token信息

先通过get screts查看名称,该名称是随机的,然后再通过查询到的名称继续查询对应的Token信息。

[root@master ~]# kubectl -n kubernetes-dashboard get secrets 
NAME             TYPE                                  
admin-user-token-xxx    kubernetes.io/service-account-token  ... ...
[root@master ~]# kubectl -n kubernetes-dashboard describe secrets \
... ...
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IjJyTE9nZWpWLWFhTXV6cnJla3U4aX
NngxVTZjV2M5Y0FYOWR0ancifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9 ... ...

再次使用浏览器访问任意节点IP的30090端口(http://任意节点:30090 端口)即可查看Web页面,输入Token,效果如图-2所示。
在这里插入图片描述

Prometheus

在这里插入图片描述
镜像及资源文件
在这里插入图片描述

步骤一:导入所有后续需要的镜像到私有镜像仓库(在master主机操作操作)

所有镜像文件在云盘第四阶段kubernetes/v1.17.6/prometheus/images目录下,各位同学需要提前下载。

需要导入的镜像包括:

prometheus.tar.gz
prometheus-operator.tar.gz
prometheus-config-reloader.tar.gz
prometheus-adapter.tar.gz
node-exporter.tar.gz
kube-rbac-proxy.tar.gz
kube-metrics.tar.gz
grafana.tar.gz
configmap-reload.tar.gz
alertmanager.tar.gz

注意:tab修改标签时,只需要修改服务器即可,禁止修改镜像原来的名称与标签。
[root@master ~]# docker load -i prometheus.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  旧名称   192.168.1.100:5000/prometheus:v2.11.0
[root@master ~]# docker push  192.168.1.100:5000/prometheus:v2.11.0
[root@master ~]# docker load -i prometheus-operator.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/prometheus-operator:v0.35.1
[root@master ~]# docker push  192.168.1.100:5000/prometheus-operator:v0.35.1
[root@master ~]# docker load -i prometheus-config-reloader.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/prometheus-config-reloader:v0.35.1
[root@master ~]# docker push \
192.168.1.100:5000/prometheus-config-reloader:v0.35.1
[root@master ~]# docker load -i prometheus-adapter.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/prometheus-operator:v0.35.1
[root@master ~]# docker push 192.168.1.100:5000/prometheus-operator:v0.35.1
[root@master ~]# docker load -i node-exporter.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/node-exporter:v1.0.0
[root@master ~]# docker push 192.168.1.100:5000/node-exporter:v1.0.0
[root@master ~]# docker load -i kube-rbac-proxy.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/kube-rbac-proxy:v0.4.1
[root@master ~]# docker push 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
[root@master ~]# docker load -i kube-metrics.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/kube-state-metrics:v1.9.2
[root@master ~]# docker push 192.168.1.100:5000/kube-state-metrics:v1.9.2
[root@master ~]# docker load -i alertmanager.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/grafana:6.4.3
[root@master ~]# docker push 192.168.1.100:5000/grafana:6.4.3
[root@master ~]# docker load -i    configmap-reload.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/configmap-reload:v0.3.0
[root@master ~]# docker push 192.168.1.100:5000/configmap-reload:v0.3.0
[root@master ~]# docker load -i    alertmanager.tar.gz
[root@master ~]# docker images            #查看镜像的名称
[root@master ~]# docker tag  \
旧名称  192.168.1.100:5000/alertmanager:v0.18.0
[root@master ~]# docker push 192.168.1.100:5000/alertmanager:v0.18.0

步骤二:修改资源文件部署各种容器服务(在master主机操作操作)

1)安装operator
需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

[root@master prometheus]# vim setup/prometheus-operator-deployment.yaml
27  - --config-reloader-image=192.168.1.100:5000/configmap-reload:v0.3.0
28  - --prometheus-config-reloader=192.168.1.100:5000/prometheus-config-reloader:v0.35.1
29  image: 192.168.1.100:5000/prometheus-operator:v0.35.1
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f setup/

在这里插入图片描述
2)安装Prometheus server

需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

[root@master prometheus]# vim prom-server/prometheus-prometheus.yaml
14      baseImage: 192.168.1.100:5000/prometheus
34      version: v2.11.0
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f prom-server/

在这里插入图片描述
3)安装prom-adapter

需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

[root@master prometheus]# vim prom-adapter/prometheus-adapter-deployment.yaml
28         image: 192.168.1.100:5000/k8s-prometheus-adapter-amd64:v0.5.0
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f prom-adapter/

4)安装metrics-state

需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

[root@master prometheus]# vim metrics-state/kube-state-metrics-deployment.yaml
24            image: 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
41            image: 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
58            image: 192.168.1.100:5000/kube-state-metrics:v1.9.2
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f metrics-state/

5)安装node-exporter

需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

[root@master prometheus]# vim node-exporter/node-exporter-daemonset.yaml
27            image: 192.168.1.100:5000/node-exporter:v1.0.0
57            image: 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f node-exporter/

6)安装alertmanager

需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

[root@master prometheus]# vim alertmanager/alertmanager-alertmanager.yaml
09     baseImage: 192.168.1.100:5000/alertmanager
18     version: v0.18.0
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f alertmanager/

7)安装grafana

[root@master prometheus]# vim grafana/grafana-deployment.yaml
19    - image: 192.168.1.100:5000/grafana:6.4.3
#提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
[root@master prometheus]# kubectl apply -f grafana/

在这里插入图片描述

步骤三:对外发布grafana服务(在master主机操作)

相关资源文件共享在云盘第四阶段kubernetes/v1.17.6/prometheus/ grafana/grafana-service.yaml。

下面使用使用nodePort发布服务将容器的3000端口映射到真机节点的30000端口。

[root@master prometheus]# vim grafana/grafana-service.yaml
... ...
spec:type: NodePortports:- name: httpport: 3000nodePort: 30000targetPort: http
... ...
[root@master prometheus]# kubectl  apply  -f  grafana/grafana-service.yaml

使用浏览器访问任意节点的30002端口,即可访问到Web网页,效果如图所示。
在这里插入图片描述

步骤四:配置grafana

步骤一:配置grafana(在任意主机操作)

1)登录

登录的默认用户和密码:admin/admin

第一次登录需要修改密码
在这里插入图片描述
2)修改数据源地址

我们添加的数据为prometheus
数据源就是 Prometheus service 的地址
可以填写prometheus的Service内部的DNS名称
http://prometheus-k8s.monitoring.svc.cluster.local:9090
如何查看到这个DNS的域名呢?可以执行如下的命令即可。

[root@master ~]# kubectl -n monitoring get service
NAME               TYPE             CLUSTER-IP       EXTERNAL-IP    PORT(S)
grafana          NodePort       10.254.169.248        <none>         3000:30002/TCP
prometheus-k8s  NodePort       10.254.44.72    <none>              9090:30001/TCP
... ...
# 找到这里的prometheus-k8s名称后
# 在它的后面附加一个固定的monitoring.svc.cluster.local:9090
# 连接在一起就是:http://prometheus-k8s.monitoring.svc.cluster.local:9090

修改数据源。
添加数据源Prometheus,名字随意,URL需要填写Prometheus内部的DNS名称,
默认端口号 9090。
在这里插入图片描述
在这里插入图片描述

3)导入模板
导入模板,需要正确配置后点击保存和测试后开始添加仪表盘
点开import,输入模板ID,
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
最后查看监控效果
在这里插入图片描述

HPA

在这里插入图片描述

步骤一:部署一个弹性集群(在master主机操作)

[root@master ~]# vim myhpa.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:name: myweb
spec:selector:matchLabels:app: apachereplicas: 1template:metadata:labels:app: apachespec:containers:- name: apacheimage: 192.168.1.100:5000/myos:httpdports:- containerPort: 80resources:requests:cpu: 200mrestartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:name: web-service
spec:ports:- protocol: TCPport: 80targetPort: 80selector:app: apachetype: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: my-appannotations:kubernetes.io/ingress.class: "nginx"
spec:backend:serviceName: web-serviceservicePort: 80
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:name: myweb
spec:minReplicas: 1 # 最小资源maxReplicas: 3 # 最大资源 scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: myweb # 监视资源targetCPUUtilizationPercentage: 50 # 警戒线 大于50%扩容
[root@master ~]# kubectl apply -f hpa-example.yaml
[root@master ~]# kubectl get hpa
NAME    REFERENCE          TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
myweb   Deployment/myweb   0%/50%    1         3         1          15m

步骤二:查看动态扩容效果

[root@master ~]# kubectl get hpa 
NAME    REFERENCE          TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
myweb  Deployment/myweb   287%/50%   1         3         3          16m
[root@master ~]# kubectl  get pod
NAME                     READY   STATUS    RESTARTS   AGE
myweb-7f89fc7b66-kzhj5   1/1     Running   0          16m
myweb-7f89fc7b66-nh4kn   1/1     Running   0          21s
myweb-7f89fc7b66-q2jnf   1/1     Running   0          21s
#当容器CPU占用过高时,集群可以自动扩容
-----------------------------------------------------------------------------
[root@master ~]# kubectl get hpa 
NAME    REFERENCE          TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
myweb   Deployment/myweb   1%/50%    1         3         3          20m
[root@master ~]# kubectl  get pod
NAME                     READY   STATUS    RESTARTS   AGE
myweb-7f89fc7b66-kzhj5   1/1     Running   0          22m
# 当容器CPU占用率恢复正常时,容器可以自动缩减

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

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

相关文章

2271036-47-4,Pomalidomide-PEG4-Azide,具有良好的生物相容性和稳定性

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;&#xff1a;2271036-47-4&#xff0c;Pomalidomide-PEG4-Azide&#xff0c;Pomalidomide PEG4 N3&#xff0c;泊马度胺-NH-四聚乙二醇-叠氮&#xff0c;泊马度胺氨基-PEG4-叠氮 一、基本信息 【产品简介】&#xf…

[深度学习]yolov9+bytetrack+pyqt5实现目标追踪

【简介】 目标追踪简介 目标追踪是计算机视觉领域中的一个热门研究方向&#xff0c;它涉及到从视频序列中实时地、准确地跟踪目标对象的位置和运动轨迹。随着深度学习技术的快速发展&#xff0c;基于深度学习的目标追踪方法逐渐展现出强大的性能。其中&#xff0c;YOLOv9&…

批量删除传参那些事

接口参数&#xff1a; public Object batchDeleteUsers(RequestBody List userIds) 工具提示传参&#xff1a; { “userIds”: [] } 错误&#xff01;&#xff01;&#xff01;讨逆猴子 报错&#xff1a;JSON parse error: Cannot deserialize value of type java.util.ArrayL…

微服务篇之限流

一、为什么要限流 1. 并发的确大&#xff08;突发流量&#xff09;。 2. 防止用户恶意刷接口。 二、限流的实现方式 1. Tomcat限流 可以设置最大连接数&#xff0c;但是每一个微服务都有一个tomcat&#xff0c;实现起来非常麻烦。 2. Nginx限流 &#xff08;1&#xff09;控…

设计模式之命令模式

设计模式专栏&#xff1a; http://t.csdnimg.cn/4Mt4u 相关系列文章 面向对象设计之接口隔离原则 设计模式之命令模式 设计模式之组合模式 设计模式之策略模式 设计模式之责任链模式 设计模式之桥接模式 设计模式之装饰器模式 设计模式之工厂模式 设计模式之空对象模式 设计模式…

golang学习2,golang开发配置国内镜像

go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct

2024水科技大会暨技术装备成果展览会——城镇雨污分流及污水处理提质增效论坛(五)

为积极应对“十四五”期间我国生态环境治理面临的挑战&#xff0c;加快生态环境科技创新&#xff0c;构建绿色技术创新体系&#xff0c;全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》&#xff0c;积极落实四川省人民政府与上海大学《…

Qt C++春晚刘谦魔术约瑟夫环问题的模拟程序

什么是约瑟夫环问题&#xff1f; 约瑟夫问题是个有名的问题&#xff1a;N个人围成一圈&#xff0c;从第一个开始报数&#xff0c;第M个将被杀掉&#xff0c;最后剩下一个&#xff0c;其余人都将被杀掉。例如N6&#xff0c;M5&#xff0c;被杀掉的顺序是&#xff1a;5&#xff…

Leetcoder Day24| 回溯part04:组合+分割

93.复原IP地址 给定一个只包含数字的字符串&#xff0c;复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.…

etcdctl查看k8s资源信息

背景 k8s中的网络配置和对象状态信息都会保存到etcd中&#xff0c;所以我们可以通过etcdctl查看保存在数据库中的信息 常用操作 查看etcd的各个节点的状态 [rootmaster3 ~]# etcdctl --endpoints"10.197.115.27:2379,10.197.115.25:2379,10.197.115.26:2379" --ca…

搭建XSS 测试平台

XSS 测试平台是测试XSS漏洞获取cookie并接收Web 页面的平台&#xff0c;XSS 可以做 JS能做的所有事&#xff0c;包括但不限于窃取cookie、后台增删改文章、钓鱼、利用XSS漏洞进 行传播、修改网页代码、网站重定向、获取用户信息(如浏览器信息、IP 地址)等。这 里使用的是基于x…

阿里面试:最佳线程数,如何确定?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 如何确定系统的最佳线程数&#xff1f; 小伙伴 没有回…

使用Docker快速简单部署Rsshub工具并结合内网穿透远程访问RSS订阅源

文章目录 1. Docker 安装2. Docker 部署Rsshub3. 本地访问Rsshub4. Linux安装Cpolar5. 配置公网地址 Rsshub是一个开源、简单易用、易于扩展的RSS生成器&#xff0c;它可以为各种内容生成RSS订阅源。 Rsshub借助于开源社区的力量快速发展&#xff0c;目前已适配数百家网站的上千…

第九届大数据与计算国际会议 (ICBDC 2024) 即将召开!

2024年第九届大数据与计算国际会议&#xff08;ICBDC 2024&#xff09;将于2024年5月24至26日在泰国曼谷举行。本次会议由朱拉隆功大学工程学院工业工程系主办。ICBDC 2024的宗旨是展示大数据和计算主题相关科学家的最新研究和成果&#xff0c;为来自不同地区的专家代表们提供一…

美创科技荣获“2023年网络安全国家标准优秀实践案例”

近日&#xff0c;全国网络安全标准化技术委员会正式公布2023年网络安全国家标准优秀实践案例获奖名单。 杭州美创科技股份有限公司&#xff08;以下简称&#xff1a;美创科技&#xff09;申报的“GB/T 20281-2020《信息安全技术 防火墙安全技术要求和测试评价方法》在政企领域数…

sql-labs32关宽字节注入

一、环境 网上有自己找很快 二、如何通关 2.1解释 虚假预编译没有参数绑定的过程&#xff0c;真实预编译有参数绑定的过程 宽字节注入出现的本质就是因为数据库的编码与代码的编码不同&#xff0c;导致用户可以通过输入精心构造的数据通过编码转换吞掉转义字符。 在32关中…

构建React TodoList应用:管理你的任务清单

构建React TodoList应用&#xff1a;管理你的任务清单 在日常生活和工作中&#xff0c;任务管理是一项至关重要的任务。为了更好地组织和管理我们的工作和生活&#xff0c;我们需要一个高效而简单的任务管理工具。本文将介绍如何使用React框架构建一个功能丰富的TodoList应用&…

C# CAD2016 cass10宗地Xdata数据写入

一、 查看cass10写入信息 C# Cad2016二次开发获取XData信息&#xff08;二&#xff09; 一共有81条数据 XData value: QHDM XData value: 121321 XData value: SOUTH XData value: 300000 XData value: 141121JC10720 XData value: 权利人 XData value: 0702 XData value: YB…

【前沿热点视觉算法】-面向显著目标检测的注意区域空间金字塔池网络

计算机视觉算法分享。问题或建议&#xff0c;请文章私信或者文章末尾扫码加微信留言。 1 论文题目 面向显著目标检测的注意区域空间金字塔池网络 2 论文摘要 显著目标检测&#xff08;SOD&#xff09;的最新进展主要依赖于空间空间金字塔池&#xff08;ASPP&#xff09;模块…

经典Go知识点总结

开篇推荐 来来来,老铁们,男人女人都需要的技术活 拿去不谢:远程调试,发布网站到公网演示,远程访问内网服务,游戏联机 推荐链接 1.无论sync.Mutex还是其衍生品都会提示不能复制,但是能够编译运行 加锁后复制变量&#xff0c;会将锁的状态也复制&#xff0c;所以 mu1 其实是已…
推荐文章