项目实战:k8s部署考试系统

一、新建nfs服务器(192.168.1.44)

1.基础配置(IP地址防火墙等)

2.配置时间同步

[root@localhost ~]# yum -y install ntpdate.x86_64 
[root@localhost ~]# ntpdate time2.aliyun.com
27 Sep 10:28:08 ntpdate[1634]: adjust time server 203.107.6.88 offset 0.014965 sec
[root@localhost ~]# crontab -e                   //设置计划任务
* 3 * * * /sbin/ntpdate time2.aliyun.com

3.安装nfs服务应用

[root@localhost ~]# yum -y install rpcbind nfs-utils

4.配置文件

[root@localhost ~]# echo "/root/pes    *(rw,sync)" >> /etc/exports
[root@localhost ~]# cat /etc/exports
/root/pes   *(rw.sync)

5.准备pes资源目录(部署考试系统项目)

6.启动服务

[root@localhost ~]# systemctl start rpcbind.service nfs-server.service                      //启动
[root@localhost ~]# systemctl enable rpcbind.service nfs-server.service                   //设置开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

7.验证

[root@localhost ~]# showmount -e localhost                  //这样代表成功
Export list for localhost:
/root/pes *

二、部署前端

1.创建web-deployment.yaml资源清单文件

[root@k8s-master ~]# mkdir pes-k8s
[root@k8s-master ~]# cd pes-k8s
[root@k8s-master pes-k8s]# vim web-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  web-deployment
  namespace: default
  labels:
    app:  web-deployment
spec:
  selector:
    matchLabels:
      app: web-deployment
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  web-deployment
    spec:
      containers:
      - name:  nginxlatest
        image:  docker.io/library/nginx:latest
        imagePullPolicy: Never
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort:  80
          name:  nginxport
        volumeMounts:
        - name: localtime
          mountPath: /usr/share/nginx/html
      volumes:
        - name: localtime
          nfs:
            server: 192.168.1.44
            path: /root/pes/web/dist
      restartPolicy: Always

[root@k8s-master pes-k8s]# kubectl create -f web-deployment.yaml 
deployment.apps/web-deployment created
[root@k8s-master pes-k8s]# kubectl get po -owide
NAME                              READY   STATUS    RESTARTS       AGE   IP               NODE        NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-nk46t     1/1     Running   76 (21m ago)   14d   172.16.169.179   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-45rz6   1/1     Running   0              13m   172.16.169.186   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-nlq2s   1/1     Running   0              13m   172.16.36.76     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-whkd2   1/1     Running   0              13m   172.16.169.185   k8s-node2   <none>           <none>

2.访问测试

[root@k8s-master pes-k8s]# curl 172.16.169.186
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vite App</title>
    <script type="module" crossorigin src="/assets/index-C4kAShR5.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-CSz7ARPP.css">
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

三、部署Java后台

1.自定义Java容器

(1)把nfs主机的下的pes/java目录传到k8s-master主机

[root@localhost ~]# scp -r pes/java root@192.168.1.110:/root/

(2)查看java目录是否传过来

[root@k8s-master pes-k8s]# ls ~
anaconda-ks.cfg  java                 mysql.tar         nginx.1.25.0.tar  tdr
busybox.tar      k8s-ha-install       new.yaml          nginx.tar         token
centos.tar       kubeadm-config.yaml  nginx.1.20.0.tar  pes-k8s           wordpress.tar
haproxy.tar      mariadb.tar          nginx.1.21.0.tar  pods
[root@k8s-master pes-k8s]# cd ~/java/
[root@k8s-master java]# ls
Dockerfile  jdk  src  start.sh

(3)创建Java镜像

[root@k8s-master java]# systemctl start docker.service 
[root@k8s-master java]# docker build -t java:v0 ./                          //使用Dockerfile创建镜像


[root@k8s-master java]# docker images                  //查看
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
java         v0        5c0a07c9bcfb   2 minutes ago   592MB
wordpress    latest    e6e656a22e5a   2 weeks ago     699MB
haproxy      latest    a782c02b8259   3 weeks ago     103MB
mariadb      latest    09f5b532c2ef   3 weeks ago     414MB
nginx        alpine    c7b4f26a7d93   6 weeks ago     43.2MB
nginx        latest    39286ab8a5e1   6 weeks ago     188MB
mysql        5.7.44    5107333e08a8   9 months ago    501MB
nginx        1.25.0    7d3c40f240e1   15 months ago   143MB
busybox      latest    6fd955f66c23   16 months ago   4.26MB
centos       latest    5d0da3dc9764   3 years ago     231MB
nginx        1.21.0    4f380adfc10f   3 years ago     133MB
nginx        1.20.0    7ab27dbbfbdf   3 years ago     133MB

(4)打包上传到k8s-node节点上

[root@k8s-master java]# docker save -o java.tar java:v0                   //打包
[root@k8s-master java]# scp java.tar root@192.168.1.22:~                   //上传node1节点
java.tar                                                             100%  572MB  25.2MB/s   00:22    
[root@k8s-master java]# scp java.tar root@192.168.1.33:~                   //上传node2节点
java.tar                                                             100%  572MB  22.9MB/s   00:24   

(5)去node1和node2导入镜像

[root@k8s-node1 ~]# ctr -n k8s.io images import java.tar --platform linux/amd64
unpacking docker.io/library/java:v0 (sha256:a3fe9b7e8ff3f56cf95e4d35c0206237c3aeea3ebf10817d99523509c0a59fbc)...done
[root@k8s-node2 ~]# ctr -n k8s.io images import java.tar --platform linux/amd64
unpacking docker.io/library/java:v0 (sha256:a3fe9b7e8ff3f56cf95e4d35c0206237c3aeea3ebf10817d99523509c0a59fbc)...done
[root@k8s-node1 ~]# crictl images|grep java                     //查看
docker.io/library/java                                           v0                  5c0a07c9bcfb3       599MB
[root@k8s-node2 ~]# crictl images|grep java
docker.io/library/java                                           v0                  5c0a07c9bcfb3       599MB

2.创建java-deployment.yaml资源清单文件

[root@k8s-master java]# cd
[root@k8s-master ~]# cd pes-k8s/ 
[root@k8s-master pes-k8s]# vim java-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  java-deployment
  namespace: default
  labels:
    app:  java-deployment
spec:
  selector:
    matchLabels:
      app: java-deployment
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  java-deployment
    spec:
      # initContainers:
        # Init containers are exactly like regular containers, except:
          # - Init containers always run to completion.
          # - Each init container must complete successfully before the next one starts.
      containers:
      - name:  java
        image:  docker.io/library/java:v0
        imagePullPolicy: Never
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 300Mi                          #这里得多给点

        ports:
        - containerPort:  8080
          name:  javaport
        volumeMounts:
        - name: localtime
          mountPath: /java/src
      volumes:
        - name: localtime
          nfs:
            server: 192.168.1.44
            path: /root/pes/java/src
      restartPolicy: Always

[root@k8s-master pes-k8s]# kubectl create -f java-deployment.yaml 
deployment.apps/java-deployment created
[root@k8s-master pes-k8s]# kubectl get po -owide
NAME                               READY   STATUS    RESTARTS       AGE    IP               NODE        NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-nk46t      1/1     Running   80 (12m ago)   14d    172.16.169.179   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bgq2s   1/1     Running   0              109s   172.16.169.132   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bnsr9   1/1     Running   0              109s   172.16.169.137   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-hz7s6   1/1     Running   0              109s   172.16.36.94     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-45rz6    1/1     Running   0              4h5m   172.16.169.186   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-nlq2s    1/1     Running   0              4h5m   172.16.36.76     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-whkd2    1/1     Running   0              4h5m   172.16.169.185   k8s-node2   <none>           <none>

注意:压缩包在解压过程中可能出现问题,比如权限丢失

给相应的权限即可

3.访问测试

[root@k8s-master pes-k8s]# curl 172.16.169.132:8080                    //这样表示成功
{"code":20002,"msg":"账号不存在或密码错误"}[root@k8s-master pes-k8s]# 


四、部署数据库

1.部署mysql-deployment.yaml文件

[root@k8s-master pes-k8s]# vim mysql-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  mysql-deploy
  namespace: default
  labels:
    app:  mysql-deploy
spec:
  selector:
    matchLabels:
      app: mysql-deploy
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  mysql-deploy
    spec:
      # initContainers:
        # Init containers are exactly like regular containers, except:
          # - Init containers always run to completion.
          # - Each init container must complete successfully before the next one starts.
      containers:
      - name:  mysql-deployment
        image:  docker.io/library/mysql:5.7.44
        imagePullPolicy: Never
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 200Mi

        ports:
        - containerPort:  3306
          name:  mysql-deploy
        volumeMounts:
        - name: localtime
          mountPath: /var/lib/mysql
      volumes:
        - name: localtime
          nfs:
            server: 192.168.1.44
            path: /root/pes/mysql/data
      restartPolicy: Always
[root@k8s-master pes-k8s]# kubectl create -f mysql-deployment.yaml 
deployment.apps/mysql-deploy created
[root@k8s-master pes-k8s]# kubectl get po               //这里发现mysql没创建成功,这是由于权限不够
NAME                               READY   STATUS             RESTARTS       AGE
cluster-test-66bb44bd88-nk46t      1/1     Running            80 (30m ago)   14d
java-deployment-7948cbb74b-bgq2s   1/1     Running            0              20m
java-deployment-7948cbb74b-bnsr9   1/1     Running            0              20m
java-deployment-7948cbb74b-hz7s6   1/1     Running            0              20m
mysql-deploy-77776fd66f-4fd5r      0/1     CrashLoopBackOff   2 (20s ago)    45s
web-deployment-7bff5ff45c-45rz6    1/1     Running            0              4h23m
web-deployment-7bff5ff45c-nlq2s    1/1     Running            0              4h23m
web-deployment-7bff5ff45c-whkd2    1/1     Running            0              4h23m

2.到nfs主机

[root@localhost ~]# vim /etc/exports
/root/pes    *(rw,sync,no_root_squash)
[root@localhost ~]# systemctl restart nfs.service             //重启

3.回到k8s-master

[root@k8s-master pes-k8s]# kubectl delete -f mysql-deployment.yaml         //先删
deployment.apps "mysql-deploy" deleted
[root@k8s-master pes-k8s]# kubectl create -f mysql-deployment.yaml           //再创
deployment.apps/mysql-deploy created
[root@k8s-master pes-k8s]# kubectl get po 
NAME                               READY   STATUS    RESTARTS       AGE
cluster-test-66bb44bd88-nk46t      1/1     Running   80 (37m ago)   14d
java-deployment-7948cbb74b-bgq2s   1/1     Running   0              26m
java-deployment-7948cbb74b-bnsr9   1/1     Running   0              26m
java-deployment-7948cbb74b-hz7s6   1/1     Running   0              26m
mysql-deploy-77776fd66f-gr9l6      1/1     Running   0              4s
web-deployment-7bff5ff45c-45rz6    1/1     Running   0              4h30m
web-deployment-7bff5ff45c-nlq2s    1/1     Running   0              4h30m
web-deployment-7bff5ff45c-whkd2    1/1     Running   0              4h30m

4.访问测试

[root@k8s-master pes-k8s]# kubectl get po -owide       //查看IP
NAME                               READY   STATUS    RESTARTS       AGE     IP               NODE        NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-nk46t      1/1     Running   80 (42m ago)   14d     172.16.169.179   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bgq2s   1/1     Running   0              32m     172.16.169.132   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bnsr9   1/1     Running   0              32m     172.16.169.137   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-hz7s6   1/1     Running   0              32m     172.16.36.94     k8s-node1   <none>           <none>
mysql-deploy-77776fd66f-gr9l6      1/1     Running   0              5m32s   172.16.36.85     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-45rz6    1/1     Running   0              4h35m   172.16.169.186   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-nlq2s    1/1     Running   0              4h35m   172.16.36.76     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-whkd2    1/1     Running   0              4h35m   172.16.169.185   k8s-node2   <none>           <none>
[root@k8s-master pes-k8s]# mysql -h 172.16.36.85 -uzhangmin -pzhangmin             //访问,主机必须得有mysql客户端

五、部署对应的service(代理,负载均衡)

[root@k8s-master ~]# kubectl get po --show-labels        //查看标签
NAME                               READY   STATUS    RESTARTS         AGE     LABELS
cluster-test-66bb44bd88-nk46t      1/1     Running   82 (5m54s ago)   14d     app=cluster-test,pod-template-hash=66bb44bd88
java-deployment-7948cbb74b-bgq2s   1/1     Running   1 (5m54s ago)    84m     app=java-deployment,pod-template-hash=7948cbb74b
java-deployment-7948cbb74b-bnsr9   1/1     Running   1 (5m54s ago)    84m     app=java-deployment,pod-template-hash=7948cbb74b
java-deployment-7948cbb74b-hz7s6   1/1     Running   1 (6m7s ago)     84m     app=java-deployment,pod-template-hash=7948cbb74b
mysql-deploy-77776fd66f-gr9l6      1/1     Running   1 (6m7s ago)     58m     app=mysql-deploy,pod-template-hash=77776fd66f
web-deployment-7bff5ff45c-45rz6    1/1     Running   1 (5m54s ago)    5h28m   app=web-deployment,pod-template-hash=7bff5ff45c
web-deployment-7bff5ff45c-nlq2s    1/1     Running   1 (6m7s ago)     5h28m   app=web-deployment,pod-template-hash=7bff5ff45c
web-deployment-7bff5ff45c-whkd2    1/1     Running   1 (5m54s ago)    5h28m   app=web-deployment,pod-template-hash=7bff5ff45c

1.部署web-deployment的service

[root@k8s-master pes-k8s]# vim web-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: web-service
  namespace: default
spec:
  selector:
    app: web-deployment
  type: NodePort
  sessionAffinity: None
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  ports:
  - name: webport
    protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 32000
[root@k8s-master pes-k8s]# kubectl create -f web-service.yaml
service/web-service created
[root@k8s-master pes-k8s]# kubectl get svc                            //查看svc
NAME          TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes    ClusterIP   10.96.0.1    <none>        443/TCP        14d
web-service   NodePort    10.96.3.80   <none>        80:32000/TCP   74s

2.浏览器访问192.168.1.110:32000

3.宿主机做hosts劫持

C:\Windows\System32\drivers\etc


4.部署java-deployment的service

[root@k8s-master pes-k8s]# vim java-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: javaservice
  namespace: default
spec:
  selector:
    app: java-deployment
  type: NodePort
  sessionAffinity: None
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  ports:
  - name: javaport
    protocol: TCP
    port: 8080
    targetPort:  8080
    nodePort: 32100
[root@k8s-master pes-k8s]# kubectl create -f java-service.yaml 
service/javaservice created
[root@k8s-master pes-k8s]# kubectl get svc                    //查看svc
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
javaservice   NodePort    10.96.71.251   <none>        8080:32100/TCP   91s
kubernetes    ClusterIP   10.96.0.1      <none>        443/TCP          14d
web-service   NodePort    10.96.3.80     <none>        80:32000/TCP     13m

5.外部访问测试


这里请求不到,因为请求的是8080端口,而java服务是32100端口,可以使用代理(haproxy,ipvs,nginx等),也可以改变java服务请求的端口,改为32100(不建议)

6.改变请求java服务的端口(nfs主机)

[root@localhost ~]# cd pes/web/dist/assets/
[root@localhost assets]# for fn in $(ls *.js); do echo $fn; cat $fn|grep 8080; done //查找里面哪个文件有8080
[root@localhost assets]# vim index-8SnX15u9.js                 //将8080改为32100


7.访问测试


此时能够在外部访问web应用和java应用,发现500错误,查看java的日志文件,发现链接不到数据库
[root@k8s-master pes-k8s]# kubectl logs java-deployment-7948cbb74b-hz7s6 


8查看java配置文件(nfs主机)

[root@localhost ~]# cat pes/java/src/application.properties

9.部署mysql-deployment的service

[root@k8s-master pes-k8s]# vim mysql-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: hap                           #这里必须是hap,和java的配置文件保持一致
  namespace: default
spec:
  selector:
    app: mysql-deploy
  type: ClusterIP
  sessionAffinity: None
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  ports:
  - name: mysqlport
    protocol: TCP
    port: 3306
    targetPort: 3306
[root@k8s-master pes-k8s]# kubectl create -f mysql-service.yaml 
service/hap created
[root@k8s-master pes-k8s]# kubectl get svc
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hap           ClusterIP   10.96.171.17   <none>        3306/TCP         76s
javaservice   NodePort    10.96.71.251   <none>        8080:32100/TCP   75m
kubernetes    ClusterIP   10.96.0.1      <none>        443/TCP          14d
web-service   NodePort    10.96.3.80     <none>        80:32000/TCP     87m

六、访问测试

[root@k8s-master pes-k8s]# mysql -h172.16.36.84 -uzhangmin -pzhangmin         //在mysql中获取账号密码
>select * from project_exam_system.user;

浏览器访问

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

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

相关文章

MySql在更新操作时引入“两阶段提交”的必要性

日志模块有两个redo log和binlog&#xff0c;redo log 是引擎层的日志&#xff08;负责存储相关的事&#xff09;&#xff0c;binlog是在Server层&#xff0c;主要做MySQL共嗯那个层面的事情。redo log就像一个缓冲区&#xff0c;可以让当更新操作的时候先放redo log中&#xf…

node.js npm 安装和安装create-next-app -windowsserver12

1、官网下载windows版本NODE.JS https://nodejs.org/dist/v20.17.0/node-v20.17.0-x64.msi 2、安装后增加两个文件夹目录node_global、node_cache npm config set prefix "C:\Program Files\nodejs\node_global" npm config set prefix "C:\Program Files\nod…

基于SpringBoot的新冠检测信息管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 国内外在该方向的研究现状及分析 新型冠状病毒肺炎疫情发生以来&#xff0c;中国政府采取积极的防控策略和措施&#xff0c;经过两个多月的不懈努力&#xff0c;有效控制了新发病例的増长&#xff0c;本地传播已经趋于完全控制…

Mysql高级篇(中)——锁机制

锁机制 一、概述二、分类1、读锁2、写锁★、FOR SHARE / FOR UPDATE&#xff08;1&#xff09;NOWAIT&#xff08;2&#xff09;SKIP LOCKED&#xff08;3&#xff09;NOWAIT 和 SKIP LOCKED 的比较 ★、 脏写3、表级锁之 S锁 / X锁&#xff08;1&#xff09;总结&#xff08;2…

自动化学习3:日志记录及测试报告的生成--自动化框架搭建

一.日志记录 1.配置文件pytest.ini&#xff1a;将日志写入文件方便日后查询或查看执行信息。 需要将文件处理器&#xff08;文件存放位置/时间/格式等等&#xff09;添加到配置文件中的【日志记录器】 # pytest.ini [pytest] # ---------------日志文件&#xff0c;需要配合…

PMP--二模--解题--141-150

文章目录 14.敏捷--创建敏捷环境--团队构成--混合项目环境&#xff0c;通常是自组织团队&#xff0c;即团队成员自己决定谁做什么&#xff0c;而不是项目经理决定。易混--常见场景--一个新人加入141、 [单选] 在一个混合项目的执行过程中&#xff0c;不得不更换一个开发人员。新…

微软Win11 22H2/23H2 九月可选更新KB5043145发布!

系统之家于9月27日发出最新报道&#xff0c;微软针对Windows11系统&#xff0c;发布了九月最新可选更新补丁KB5043145&#xff0c;22H2用户安装后&#xff0c;系统版本号升至22621.4249&#xff0c;23H2用户安装后升至22631.4249。本次更新修复了Edge使用IE模式有时会停止响应等…

腾讯云SDK产品功能

本文主要介绍音视频终端 SDK&#xff08;腾讯云视立方&#xff09;的核心功能。 直播推流 音视频终端 SDK&#xff08;腾讯云视立方&#xff09;为终端直播场景提供强大的 RTMP、RTC 推流能力&#xff0c;配合云直播&#xff08;CSS&#xff09;全球布局的2000节点&#xff0…

GreenPlum数开手册【语法篇】

GreenPlum数开手册 一、数据类型 1、基本数据类型 类型长度描述范围bigint8字节大范围整数-9223372036854775808 到 9223372036854775807smallint2字节小范围整数-32768到32767integer(int)4字节常用整数-2147483648 到 2147483647decimal可变长用户指定的精度&#xff0c;精…

ARM_5_UART总线接口实验

一、总线相关的概念 1.1、总线的含义 定义&#xff1a;总线是不同设备间通信的桥梁 比如&#xff1a; PC ---------------- UART总线------------------ SOC SOC&#xff08;stm32mp157a&#xff09; --------------- IIC总线 ---------------- 空气温湿度芯片&#xff0…

【C++报错已解决】std::ios_base::failure

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

“JY901传感器“学习笔记

目录 一、产品概述 二、产品功能介绍 2.1、轴向说明 2.2、模块校准 2.3、姿态角 2.4、大地坐标系、地心地固坐标系、站心坐标系 三、参考文献 一、产品概述 模块集成高精度的陀螺仪、加速度计、地磁场传感器&#xff0c;采用高性能的微处理器和先进的动力解算与卡尔曼动…

征程6 上基于 DEB 工具实现包管理

1.引言 在开发、调测过程中&#xff0c;开发人员需要将系统软件、应用软件部署到 Soc 板端&#xff0c;以用于运行调试。传统的部署方式是通过解压复制或者调用部署脚本。这样的部署方式需要有着方式不统一、维护投入大的缺点。 在 linux 系统上&#xff0c;大多采用包管理的…

罕见,回复问询后闪电终止,业绩存下滑风险

《IPO魔女》认为&#xff0c;和美精艺利润低且大幅波动&#xff0c;报告期公司毛利率持续大幅下滑。而2023年同行业的上市公司均出现了业绩大幅下滑的情况&#xff0c;还未上市的和美精艺恐怕也存在业绩下滑的风险。此外&#xff0c;2020年至2022年&#xff0c;和美精艺研发投入…

docker的harbor仓库登录问题

目录 一、问题描述 二、证书信任问题 三、DNS解析问题 四、解决 参考链接&#xff1a;Docker login Harbor报错解决&#xff1a;Error response from daemon: Get https:..-阿里云开发者社区 一、问题描述 问题&#xff1a; 挂机或者挂机重启之后harbor登录不上 查看日…

【质优价廉】GAP9 AI算力处理器赋能智能可听耳机,超低功耗畅享未来音频体验!

当今世界&#xff0c;智能可听设备已经成为了流行趋势。随后耳机市场的不断成长起来&#xff0c;消费者又对AI-ANC&#xff0c;AI-ENC&#xff08;环境噪音消除&#xff09;降噪的需求逐年增加&#xff0c;但是&#xff0c;用户对于产品体验的需求也从简单的需求&#xff0c;升…

【Qt笔记】QStackedWidget控件详解

目录 引言 一、基础功能 二、属性设置 2.1 属性介绍 2.2 代码示例 2.3 代码解析 三、常用API 3.1 添加子部件 3.2 插入子部件 3.3 移除子部件 3.4 设置当前页面索引值 3.5 设置当前显示子部件 3.6 返回索引处子部件指针 3.7 返回子部件索引值 四、信号与槽 4.…

代码随想录Day 58|拓扑排序、dijkstra算法精讲,题目:软件构建、参加科学大会

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part08**拓扑排序精讲**题目&#xff1a;117. 软件构建拓扑排序的背景解题思路&#xff1a;模拟过程 **dijkstra&#xff08;朴素版&#xff09;精讲**题目&#xff1a;47. 参加科学大会解题思…

OpenCV视频I/O(5)视频采集类VideoCapture之从视频流中获取下一帧的函数grab()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 从视频文件或捕获设备中抓取下一帧。 grab() 函数是 OpenCV 中 VideoCapture 类的一个成员函数&#xff0c;用于从视频流中获取下一帧而不立即检…

Android Studio 真机USB调试运行频繁掉线问题

一、遇到问题 Android Studio使用手机运行项目时&#xff0c;总是频繁掉线&#xff0c;连接很不稳定&#xff0c;动不动就消失&#xff0c;基本上无法使用 二、问题出现原因 1、硬件问题&#xff1a;数据线 换条数据线试试&#xff0c;如果可以&#xff0c;那就是数据线的…