当前位置: 首页 > news >正文

使用Minikube部署Kubernetes环境

使用Minikube部署Kubernetes环境

1. Minikube简介

Minikube是一个轻量级的Kubernetes实现,它在本地运行一个Kubernetes集群,可以是单节点或者集群环境,主要用于开发和测试。Minikube支持Kubernetes的所有主要功能,包括Dashboard、DNS、容器运行时(如Docker、containerd、CRI-O)等。

主要功能:

  • 快速启动本地Kubernetes集群
  • 支持多种容器运行时
  • 集成Kubernetes Dashboard
  • 提供内置的加载均衡器和Ingress控制器
  • 支持持久化存储卷

2. 安装Minikube

2.1 环境要求

  • 操作系统:Linux, macOS, Windows
  • 最低配置:2 CPUs, 2GB 内存, 20GB 磁盘空间
  • 互联网连接
  • 容器或者虚拟化管理器: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation

2.2 安装步骤

以lx86架构的linux环境为例,更多的安装选项参考:minikube start | minikube (k8s.io)

在这里插入图片描述

  1. 下载Minikube二进制文件:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
    
  2. 安装Minikube:

    sudo install minikube-linux-amd64 /usr/local/bin/minikube
    

3. 启动集群

3.1 启动Minikube

启动Minikube非常简单,只需运行以下命令:

minikube start

如果minikube启动失败,可以参考Drivers | minikube (k8s.io)安装一个虚拟机或容器环境。

集群启动成功后,创建了一个当前最新的单节点K8S 1.30版本的集群:

test@ubuntu-svr:~$ kubectl get node -o wide
NAME  STATUS  ROLES    AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE   KERNEL-VERSION      CONTAINER-RUNTIME
minikube Ready control-plane 31m v1.30.0 192.168.49.2  <none>  Ubuntu 22.04.4 LTS  5.15.0-107-generic  docker://26.1.1
test@ubuntu-svr:~$ kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-7db6d8ff4d-8c7h8           1/1     Running   0          4m33s
kube-system   coredns-7db6d8ff4d-xmd7b           1/1     Running   0          4m33s
kube-system   etcd-minikube                      1/1     Running   0          4m47s
kube-system   kube-apiserver-minikube            1/1     Running   0          4m47s
kube-system   kube-controller-manager-minikube   1/1     Running   0          4m47s
kube-system   kube-proxy-c6jdl                   1/1     Running   0          4m33s
kube-system   kube-scheduler-minikube            1/1     Running   0          4m47s
kube-system   storage-provisioner                1/1     Running   0          4m46s

备注:

  1. 官方建议使用非root用户启动集群,如果要使用root运行,需要加 --force

  2. 如果拉取镜像失败,可以通过设置代理服务器进行,命令如下:

    export HTTP_PROXY=http://<proxy hostname:port>
    export HTTPS_PROXY=https://<proxy hostname:port>
    export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24minikube start
    

3.2 节点运行说明

本机使用docker作为底层driver,上述创建了一个单节点的k8s集群,该k8s节点运行在docker容器中。minikube所在的宿主机ip为192.168.0.157,docker使用kicbase启动了一个容器作为k8s的节点(ip为192.168.49.2),这种玩法用到了容器嵌套的技术。

test@ubuntu-svr:~$ ip add | grep 192.inet 192.168.0.157/24 metric 100 brd 192.168.0.255 scope global dynamic ens33
test@ubuntu-svr:~$ docker ps
CONTAINER ID   IMAGE  COMMAND          CREATED       STATUS       PORTS    NAMES
9d565ab58c23   gcr.io/k8s-minikube/kicbase:v0.0.44   "/usr/local/bin/entr…"   2 hours ago   Up 2 hours   127.0.0.1:32772->22/tcp, 127.0.0.1:32771->2376/tcp, 127.0.0.1:32770->5000/tcp, 127.0.0.1:32769->8443/tcp, 127.0.0.1:32768->32443/tcp   minikube
# 容器ip为minikube节点的INTERNAL-IP
test@ubuntu-svr:~$ docker inspect 9d565ab58c23 | grep -i ipaddr"SecondaryIPAddresses": null,"IPAddress": "","IPAddress": "192.168.49.2",
# 进入kicbase容器内部,里面运行了minikube k8s环境的管理面容器和其他容器
test@ubuntu-svr:~$ docker exec -it 9d565ab58c23 sh
# docker ps
CONTAINER ID   IMAGE                                     COMMAND                  CREATED          STATUS          PORTS     NAMES
fead4e8669bc   kicbase/echo-server                       "/bin/echo-server"       13 minutes ago   Up 13 minutes             k8s_echo-server_hello-minikube-5c898d8489-ngvc6_default_70e327a3-9926-4615-8e63-b9b5e93c04d3_0
c0dfae68f544   registry.k8s.io/pause:3.9                 "/pause"                 13 minutes ago   Up 13 minutes             k8s_POD_hello-minikube-5c898d8489-ngvc6_default_70e327a3-9926-4615-8e63-b9b5e93c04d3_0
89fc270a8b21   kubernetesui/dashboard                    "/dashboard --insecu…"   33 minutes ago   Up 33 minutes             k8s_kubernetes-dashboard_kubernetes-dashboard-779776cb65-h8gql_kubernetes-dashboard_b638ee89-615c-462c-a877-49d78471e24c_0
...

4. 集群交互

如果已经安装了kubectl( 安装教程),可以直接使用:

kubectl get po -A

也可以使用minikube下载合适的kubectl版本:

minikube kubectl -- get po -A

可以设置命令别名,详情参考 kubectl:

alias kubectl="minikube kubectl --"

minikube同时集成了dashboard,可以通过下面的命令使用:

test@ubuntu-svr:~$ minikube dashboard
* Enabling dashboard ...- Using image docker.io/kubernetesui/metrics-scraper:v1.0.8- Using image docker.io/kubernetesui/dashboard:v2.7.0
* Some dashboard features require the metrics-server addon. To enable all features please run:minikube addons enable metrics-server* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
* Opening http://127.0.0.1:34747/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...http://127.0.0.1:34747/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

配置ssh端口转发,将本地的34747端口转发到上述宿主机节点的34747端口:ssh -f -N -L 34747:localhost:34747 test@192.168.0.157

成功配置后,本地浏览器访问http://127.0.0.1:34747/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/即可打开dashboard面板。

kubeconfig文件路径如下,注意server指向的地址:

test@ubuntu-svr:~$ cat ~/.kube/config
apiVersion: v1
clusters:
- cluster:certificate-authority: /home/test/.minikube/ca.crtextensions:- extension:last-update: Sun, 16 Jun 2024 05:43:41 UTCprovider: minikube.sigs.k8s.ioversion: v1.33.1name: cluster_infoserver: https://192.168.49.2:8443name: minikube
contexts:
- context:cluster: minikubeextensions:- extension:last-update: Sun, 16 Jun 2024 05:43:41 UTCprovider: minikube.sigs.k8s.ioversion: v1.33.1name: context_infonamespace: defaultuser: minikubename: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikubeuser:client-certificate: /home/test/.minikube/profiles/minikube/client.crtclient-key: /home/test/.minikube/profiles/minikube/client.key

5. 部署和管理应用

5.1 部署一个示例应用

使用以下命令部署一个示例应用(如Nginx):

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0

5.2 暴露服务

创建一个服务来暴露部署的应用:

kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube

5.3 访问应用

你可以通过Minikube的服务URL来访问应用:

test@ubuntu-svr:~$ minikube service hello-minikube
|-----------|----------------|-------------|---------------------------|
| NAMESPACE |      NAME      | TARGET PORT |            URL            |
|-----------|----------------|-------------|---------------------------|
| default   | hello-minikube |        8080 | http://192.168.49.2:30984 |
|-----------|----------------|-------------|---------------------------|
* Opening service default/hello-minikube in default browser...http://192.168.49.2:30984

使用kubectl配置端口转发,将宿主机的7080端口转发到hello-minikube应用的8080端口:

kubectl port-forward service/hello-minikube 7080:8080
# 宿主机访问hello-minikube应用
test@ubuntu-svr:~$ curl http://localhost:7080/
Request served by hello-minikube-5c898d8489-ngvc6HTTP/1.1 GET /Host: localhost:7080
Accept: */*
User-Agent: curl/7.81.0

宿主机为VMware workstation的一台虚拟机,可以进一步配置端口转发,再次在PC本地配置ssh转发,转发客户端的7080端口到宿主机的7080端口。

ssh -f -N -L 7080:localhost:7080 test@192.168.0.157

使用pc浏览器访问 http://localhost:7080/即可查看hello-minikube应用。

在这里插入图片描述

6. 管理集群

查看集群状态

minikube status

暂停集群:

minikube pause

恢复集群:

minikube unpause

停止Minikube

minikube stop

设置默认的内存资源限制(需要重启):

minikube config set memory 4096

查看安装的k8s服务列表,minikube addons list

test@ubuntu-svr:~$ minikube addons list
|-----------------------------|----------|--------------|--------------------------------|
|         ADDON NAME          | PROFILE  |    STATUS    |           MAINTAINER           |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador                  | minikube | disabled     | 3rd party (Ambassador)         |
| auto-pause                  | minikube | disabled     | minikube                       |
| cloud-spanner               | minikube | disabled     | Google                         |
| csi-hostpath-driver         | minikube | disabled     | Kubernetes                     |
| dashboard                   | minikube | enabled ✅   | Kubernetes                     |
| default-storageclass        | minikube | enabled ✅   | Kubernetes                     |
| efk                         | minikube | disabled     | 3rd party (Elastic)            |
| freshpod                    | minikube | disabled     | Google                         |
| gcp-auth                    | minikube | disabled     | Google                         |
| gvisor                      | minikube | disabled     | minikube                       |
| headlamp                    | minikube | disabled     | 3rd party (kinvolk.io)         |
| helm-tiller                 | minikube | disabled     | 3rd party (Helm)               |
| inaccel                     | minikube | disabled     | 3rd party (InAccel             |
|                             |          |              | [info@inaccel.com])            |
| ingress                     | minikube | disabled     | Kubernetes                     |
| ingress-dns                 | minikube | disabled     | minikube                       |
| inspektor-gadget            | minikube | disabled     | 3rd party                      |
|                             |          |              | (inspektor-gadget.io)          |
| istio                       | minikube | disabled     | 3rd party (Istio)              |
| istio-provisioner           | minikube | disabled     | 3rd party (Istio)              |
| kong                        | minikube | disabled     | 3rd party (Kong HQ)            |
| kubeflow                    | minikube | disabled     | 3rd party                      |
| kubevirt                    | minikube | disabled     | 3rd party (KubeVirt)           |
| logviewer                   | minikube | disabled     | 3rd party (unknown)            |
| metallb                     | minikube | disabled     | 3rd party (MetalLB)            |
| metrics-server              | minikube | disabled     | Kubernetes                     |
| nvidia-device-plugin        | minikube | disabled     | 3rd party (NVIDIA)             |
| nvidia-driver-installer     | minikube | disabled     | 3rd party (Nvidia)             |
| nvidia-gpu-device-plugin    | minikube | disabled     | 3rd party (Nvidia)             |
| olm                         | minikube | disabled     | 3rd party (Operator Framework) |
| pod-security-policy         | minikube | disabled     | 3rd party (unknown)            |
| portainer                   | minikube | disabled     | 3rd party (Portainer.io)       |
| registry                    | minikube | disabled     | minikube                       |
| registry-aliases            | minikube | disabled     | 3rd party (unknown)            |
| registry-creds              | minikube | disabled     | 3rd party (UPMC Enterprises)   |
| storage-provisioner         | minikube | enabled ✅   | minikube                       |
| storage-provisioner-gluster | minikube | disabled     | 3rd party (Gluster)            |
| storage-provisioner-rancher | minikube | disabled     | 3rd party (Rancher)            |
| volumesnapshots             | minikube | disabled     | Kubernetes                     |
| yakd                        | minikube | disabled     | 3rd party (marcnuri.com)       |

创建一个老版本的k8s集群:

minikube start -p aged --kubernetes-version=v1.16.1

删除Minikube集群

minikube delete --all

7. 高级配置和常见问题

7.1 配置资源限制

你可以在启动Minikube时配置CPU和内存资源:

minikube start --cpus=4 --memory=8192
7.2 配置容器运行时

Minikube支持多种容器运行时,可以使用--container-runtime选项来指定:

minikube start --container-runtime=cri-o
7.3 常见问题

Q: 启动Minikube时遇到虚拟化问题?

A: 确保你的系统支持虚拟化,并且已启用。你可以在BIOS设置中启用虚拟化技术(如Intel VT-x或AMD-V)。

Q: 如何重新配置Minikube?

A: 你可以使用minikube config命令来设置和查看Minikube的配置。例如,设置默认的内存大小:

minikube config set memory 8192

Q: Minikube是否支持高可用集群及多节点配置?

A:支持,详情参考:

Using Multi-Control Plane - HA Clusters | minikube (k8s.io)

Using Multi-Node Clusters | minikube (k8s.io)


8. 总结

Minikube是一个强大的工具,可以在本地快速搭建一个Kubernetes集群,帮助开发者在本地进行开发和测试。通过本文的介绍,你应该能够顺利安装、配置和使用Minikube,并了解一些高级配置和常见问题的解决方法。希望这篇文章对你有所帮助,祝你在Kubernetes的学习和使用中取得成功!

更多信息请访问 Minikube官方文档。

相关文章:

使用Minikube部署Kubernetes环境

使用Minikube部署Kubernetes环境 1. Minikube简介 Minikube是一个轻量级的Kubernetes实现&#xff0c;它在本地运行一个Kubernetes集群&#xff0c;可以是单节点或者集群环境&#xff0c;主要用于开发和测试。Minikube支持Kubernetes的所有主要功能&#xff0c;包括Dashboard…...

蚂蚁集团:2023年科研投入211.9亿元

6月13日&#xff0c;蚂蚁集团发布2023年可持续发展报告。报告显示&#xff0c;2023年蚂蚁集团科研投入达到211.9亿元&#xff0c;再创历史新高&#xff0c;蚂蚁科技投入的重点是人工智能和数据要素技术。 蚂蚁集团董事长兼CEO井贤栋在报告致辞中说&#xff0c;面向未来&#x…...

pikachu靶场之XSS漏洞测试

一、环境配置 1.pikachu官网下载 下载地址&#xff1a;https://github.com/zhuifengshaonianhanlu/pikachu 2.百度网盘&#xff08;里面含有pikachu跟phpstudy&#xff09; 链接&#xff1a;pikachu下载 密码&#xff1a;abcd 配置&#xff1a;pikachu下载及安装-图文详解…...

python快速入门之Flask框架

文章目录 一、pip安装二、接口开发三、测试 一、pip安装 pip install flask 二、接口开发 from flask import Flaskapp Flask(__name__)app.route("/test") def index():return "test"if __name__ __main__:app.run()三、测试 http://127.0.0.1:5000…...

【云原生| K8S系列】Kubernetes Daemonset,全面指南

Kubernetes中的DaemonSet是什么? Kubernetes是一个分布式系统&#xff0c;Kubernetes平台管理员应该有一些功能可以在所有节点上运行特定于平台的应用程序。例如&#xff0c;在所有Kubernetes节点上运行日志代理。 这就是Daemonset发挥作用的地方。 Daemonset是一个原生的K…...

【Python机器学习实战】 | 基于决策树的药物研究分类预测

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…...

B端系统的UI框架选择,不要输在了起跑线,如何破?

所谓成也框架、败也框架&#xff0c;框架就是这么的优点和缺点鲜明&#xff0c;市面上的框架多如牛毛&#xff0c;谁家的最优秀呢&#xff1f;为何框架搞出来的UI界面同质化呢&#xff0c;如何避免这种情况&#xff0c;如何在框架的基础上进一步提升颜值和体验呢&#xff0c;本…...

RabbitMQ延迟消息(通过死信交换机实现)

延迟消息&#xff1a;生产者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间后才收到消息 通过DLX和TTL模拟出延迟队列的功能&#xff0c;即&#xff0c;消息发送以后&#xff0c;不让消费者拿到&#xff0c;而是等待过期时间&#xff0…...

Java - 分支结构 - if…else/switch

Java 分支结构 - if…else/switch if语句语法 if...else 语句语法实例 if...else if...else 语句语法实例 嵌套的 if…else 语句语法实例 switch 语句语法实例 顺序结构只能顺序执行&#xff0c;不能进行判断和选择&#xff0c;因此需要分支结构。 Java有两种分支结构&#xf…...

web安全渗透测试十大常规项(一):web渗透测试之XML和XXE外部实体注入

#详细点: XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。等同于JSON传输。XXE漏洞XML External Entity Injection,即xml外部实体注入漏洞,XXE漏洞发…...

任务3.8.2 利用RDD计算总分与平均分

实战&#xff1a;使用RDD 计算学生成绩的总分与平均分 项目背景 本项目旨在利用 Apache Spark 的强大数据处理能力&#xff0c;对存储在 HDFS 上的学生成绩文件进行处理&#xff0c;计算每个学生的总分和平均分。 项目目标 读取存储在 HDFS 上的成绩文件。计算每个学生的总…...

探索磁力搜索引擎:互联网资源获取的新视角

在当今数字化社会中&#xff0c;寻找和获取网络资源变得更加便捷和多样化。磁力搜索引擎作为这一趋势的一部分&#xff0c;提供了一种新颖而有效的方法来定位和获取用户所需的文件、媒体和其他数字内容。本文将深入探讨磁力搜索引擎的工作原理、使用场景及其在网络文化中的影响…...

立创开源学习篇(一)

1.机壳地 外面包围的一圈是机壳地&#xff0c;和金属外壳相连与电路板的GND不相连&#xff1a;&#xff08;大疆很多产品有此设计&#xff09; 屏蔽和接地&#xff1a;通过在电路板周围打孔&#xff0c;并连接到机壳地&#xff0c;可以形成有效的电磁屏蔽层&#xff08;形成金…...

2024/6/18 英语每日一段

While refusing to attribute various problems to specific labs in order to protect the investigators’ sources, the Gladstone AI team told The Washington Times that it found various assessments of security issues were “totally untethered to reality” about…...

时隔一年,SSD大涨价?

同样产品&#xff0c;2T&#xff0c;去年400多到手&#xff0c;今年700。 去年 今年...

【TB作品】MSP430G2553,单片机,口袋板,流量积算仪设计

题9 流量积算仪设计 某型流量计精度为0.1%, 满刻度值为4L/s&#xff0c;流量计输出为4—20 mA。 设计基于MSP430及VFC32的流量积算仪。 具体要求 (1) 积算仪满刻度10000 L&#xff0c;精度0.1 L; 计满10000 L&#xff0c;自动归零并通过串口&#xff08;RS232&#xff09;向上位…...

九、数据结构(并查集)

文章目录 1.并查集操作的简单实现2.解决问题3. 并查集优化3.1 合并的优化3.2查询优化3.3查询优化2 通常用“帮派”的例子来说明并查集的应用背景&#xff1a;在一个城市中有 n ( n < 1 0 6 ) n(n < 10^6) n(n<106)个人&#xff0c;他们分成不同的帮派&#xff0c;给出…...

大模型开发技术基础

大模型&#xff08;Large Model&#xff09;的开发涉及多个技术基础和领域&#xff0c;涵盖了机器学习、深度学习、自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;、数据工程等方面。以下是一些关键的技术基础&#xff1a; 1. 机器学习和深度…...

芯片验证分享9 —— 芯片调试

大家好&#xff0c;我是谷公子&#xff0c;之前的课程给大家讲了验证原则、激励设计和代码审查&#xff0c;今天我们来讲芯片调试。 芯片调试是执行一次成功的验证之后要进行的工作。记住&#xff0c;所谓成功的验证&#xff0c;是指它可以证明芯片没有实现预期的功能。调试主…...

java 面试题--基础

文章目录 基础java SE 、 EE 、 ME 的区别jdk 和 jre 区别&#xff1f;java 的日志级别基本数据类型 特性关键字finalabstractsuperswitchfortry catch 接口和抽象类的区别接口抽象类适用场景 类的加载循序静态代码块 传参问题访问修饰符运算符 反射java 里的应用为什么反射的性…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...