k8s 安装部署
一,准备3台机器,安装docker,kubelet、kubeadm、kubectl
firewall-cmd --state
使用下面命令改hostname的值:(改为k8s-master01)另外两台改为相应的名字。
172.188.32.43
hostnamectl set-hostname k8s-master01
172.188.32.44
hostnamectl set-hostname k8s-node01
172.188.32.40
hostnamectl set-hostname k8s-node02
部署k8s
# 关防火墙
systemctl stop firewalld # 临时
systemctl disable firewalld # 永久
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久关闭
setenforce 0 # 临时关闭
# 关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久关闭
# 在master节点添加hosts
cat >> /etc/hosts << EOF
172.188.32.43 k8s-master01
172.188.32.44 k8s-node01
172.188.32.40 k8s-node02
EOF
# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl --system
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
1 安装docker&k8s:
yum -y install gcc # 安装gcc
yum -y install gcc-c++ #安装gcc++
# 安装软件包
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装指定版本
yum install docker-ce-18.06.1.ce-3.el7 docker-ce-cli-18.06.1.ce-3.el7 containerd.io
# 启动docker
systemctl enable docker
systemctl start docker
# 查看版本
docker version
# 配置k8s软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 安装kubelet、kubeadm、kubectl,同时指定版本 全部节点
yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4
# 设置开机启动
systemctl enable kubelet
# 安装kubelet、kubeadm、kubectl,同时指定版本 全部节点
yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4
# 设置开机启动
systemctl enable kubelet
部署Kubernetes Master(仅master节点):
kubeadm init --apiserver-advertise-address=172.188.32.43 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
如果出现[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.的错误,如下图所示,原因是Docker是用yum安装的,docker的cgroup驱动程序默认设置为system。默认情况下Kubernetes cgroup为systemd,我们需要更改Docker cgroup驱动,解决方法如下:
出现错误:
解决方法
vi /etc/docker/daemon.json
# 修改为下面形式 node节点也要修改
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
# 重启docker
systemctl restart docker
# 重新初始化
kubeadm reset # 先重置
kubeadm init --apiserver-advertise-address=172.188.32.43 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
在node节点运行下面代码,将node加入master:
kubeadm join 172.188.32.43:6443 --token 6ad1uz.zmr0o8dio0kirp7x \
--discovery-token-ca-cert-hash sha256:ae8196e0fec0b3fe3295210904d579076b5ebf12efe295984dba39d62c800857
如果出现上面的错误,说明token过期,重新生成token。或是因为master的防火墙没关。。。
kubeadm reset # 先重置
# 重新初始化
kubeadm reset # 先重置
kubeadm init --apiserver-advertise-address=172.188.32.43 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
# 关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
[root@localhost ~]# systemctl disable firewalld --now
# 使用kubectl工具 【master节点操作】
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 执行kubectl get node查看节点信息:
安装网络插件,否则 node 是 NotReady 状态(master节点跑)
# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 如果出错
vi /etc/hosts # 编辑hosts
185.199.108.133 raw.githubusercontent.com # 加入
# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 如果上面的插件安装失败,可以选用 Weave,下面的命令二选一就可以了。
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
kubectl apply -f http://static.corecore.cn/weave.v2.8.1.yaml
# 更多其他网路插件查看下面介绍,自行网上找 yaml 安装 https://blog.csdn.net/ChaITSimpleLove/article/details/117809007
再重新下载。运行kubectl get nodes,查看运行的节点
查看状态 kubectl get pods -n kube-system
安装 k8s dashboard
tips: 在master机器执行
# 部署
curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml -O
kubectl apply -f recommended.yaml
# 设置访问端口 `type: ClusterIP` 修改为 `type: NodePort`
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
# 查看服务端口
kubectl get svc -A |grep kubernetes-dashboard
通过谷歌浏览器无法正常访问,然后换了个火狐浏览器正常访问
创建账号
echo 'apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard' > user.yaml
kubectl apply -f user.yaml
获取访问令牌
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
2 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:
# 下载nginx 【会联网拉取nginx镜像】
kubectl create deployment nginx --image=nginx
# 查看状态
kubectl get pod
下面我们就需要将端口暴露出去,让其它外界能够访问
# 暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看一下对外的端口
kubectl get pod,svc
如下图所示,记下PORT(S)下的31660,在本机浏览器输入任意节点IP:31600。
如图,出现下面页面,即为成功。如果访问不了,把防火墙关闭
http://172.188.32http://172.188.32http://172.188.32.43http://
http://172.178.32.40:32231/
jar包
阿里云接口 (推送到阿里云镜像,不懂的可以私信)
kubectl create deployment tea --image=registry.cn-hangzhou.aliyuncs.com/wmzhyf/work:v1
kubectl expose deployment tea --port=20018 --type=NodePort
kubectl -n logs platform-help-96f5ffc9-q8fpd
kubectl delete pods business
kubectl delete deployment business
kubectl delete svc business
kubectl expose deployment business --port=20028 --type=NodePort
kubectl get pods -o wide
kubectl delete deployment business
kubectl get pod,svc
kubectl create deployment test --image=business
kubectl expose deployment test--port=20019 --type=NodePort
http://172.188.32http://
http://172.188.32.40:30992/time
查看pod详细信息
kubectl -n describe pod platform-help-96f5ffc9-q8fpd
查看pod日志
kubectl -n logs platform-help-96f5ffc9-q8fpd
kubectl create deployment java-demo --image=lizhenliang/java-demo --dry-run -o yaml
kubectl expose deployment business --port=20018 --type=NodePort
附:kubectl 命令
基础命令
create 通过文件名或标准输入创建资源;
expose 为Deployment,Pod创建Service;
run 在集群中运行一个特定的镜像;
set 在对象上设置特定的功能;
explain 文档参考资料;
get 显示一个或多个资源;
edit 使用系统编辑器编辑一个资源;
delete 通过文件名,标准输入,资源名称或标签选择器来删除资源
部署命令
rollout 管理Deployment,Daemonset资源的发布(例如状态、发布记录、回滚等);
rolling-update 滚动升级,仅限ReplicationController;
scale 对Deployment、ReplicaSet、RC或Job资源扩容或缩容Pod数量;
autoscale 为Deploy,RS,RC配置自动伸缩规则(依赖metrics-server和hpa)
集群管理命令
certificate 修改证书资源;
cluster-info 显示集群信息;
top 查看资源利用率(依赖metrics-server);
cordon 标记节点不可调度;
uncordon 标记节点可调度;
drain 驱逐节点上的应用,准备下线维护;
taint 修改节点taint标记
create
kubectl create deployment NAME --image=image -- [COMMAND] [args...] //格式
[root@master ~]# kubectl create deployment test1 --image busybox
deployment.apps/test1 created //使用busybox镜像创建一个test1的pod
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
test1-78d64fd9b9-4ihbm 0/1 CrashLoopBackOff 3 114s //可以看到处于退出状态,因为busybox使用的是sh,没有任务就会退出
[root@master ~]# kubectl create deployment test2 --image busybox -- sleep 60
deployment.apps/test2 created
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
test2-7c95bf5bcb-wdf2 1/1 Running 0 17s //正在运行
[root@master ~]# kubectl create deployment web --image nginx --replicas 3 // 创建使用nginx镜像创建三个pod,名字为web
deployment.apps/web created
[root@master ~]# kubectl get pod
web-96d5df5c8-2kqfx 1/1 Running 0 57s
web-96d5df5c8-ld842 1/1 Running 0 57s
web-96d5df5c8-vtwks 1/1 Running 0 57s
[root@master ~]# kubectl get pods -o wide //查看pod运行的节点位置
web-96d5df5c8-2kqfx 1/1 Running 0 2m2s 10.244.2.3 node2.example.com <none> <none>
web-96d5df5c8-ld842 1/1 Running 0 2m2s 10.244.1.6 node1.example.com <none> <none>
web-96d5df5c8-vtwks 1/1 Running 0 2m2s 10.244.2.4 node2.example.com <none> <none>
[root@master ~]# kubectl create deployment web01 --image nginx --port=80 //暴露80端口号
run
// 启动一个 nginx pod
[root@master ~]# kubectl run nginx --image nginx
pod/nginx created
[root@master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 36s 10.244.1.7 node1.example.com <none> <none>
[root@master ~]# kubectl delete pods nginx //删除nginx的pod
pod "nginx" deleted
[root@master ~]# kubectl run nginx --images nginx --port 80 // 暴露容器的80端口号
// 在容器中设置标签“app=nginx”和“env=prod”
[root@master ~]# kubectl run nginx --image nginx --labels "app=nginx,env=prod"
pod/nginx created
[root@master ~]# kubectl describe pod nginx //描述nginx信息
// 测试运行
[root@master ~]# kubectl run nginx --image nginx --dry-run server //不会真正运行
W1219 01:41:21.786495 157488 helpers.go:553] --dry-run is deprecated and can be replaced with --dry-run=client.
pod/nginx created (dry run)
Delete
[root@master ~]# kubectl delete deployment test1 // 删除test1,使用deployment类型,因为我们当时创建的时候使用的是deployment类型
deployment.apps "test1" deleted
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-thr6q 1/1 Running 0 4h2m
test2-7c95bf5bcb-tqgn5 0/1 Terminating 8 32m
web-96d5df5c8-2kqfx 1/1 Running 0 30m
web-96d5df5c8-ld842 1/1 Running 0 30m
web-96d5df5c8-vtwks 1/1 Running 0 30m
[root@master ~]# kubectl delete deployment test2
deployment.apps "test2" deleted
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-thr6q 1/1 Running 0 4h2m
web-96d5df5c8-2kqfx 1/1 Running 0 31m
web-96d5df5c8-ld842 1/1 Running 0 31m
web-96d5df5c8-vtwks 1/1 Running 0 31m
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 29h
nginx NodePort 10.99.74.11 <none> 80:31173/TCP 28h
web ClusterIP 10.109.101.12 <none> 8080/TCP 12m
// 删除service类型的pod
[root@master ~]# kubectl delete svc nginx
'service "nginx" deleted
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 29h
web ClusterIP 10.109.101.12 <none> 8080/TCP 15m
[root@master ~]# kubectl delete pods --all //删除所有pod
[root@master ~]# kubectl delete pod foo --force //强制删除pod节点
附:
Docker 制作jar 包对应的镜像
制作jar 镜像
1.准备jar包和Dockerfile文件
Dockerfile文件 命令1
# 拉取jdk8作为基础镜像
FROM java:8
# 作者
MAINTAINER wmzhyf <181398981@163.com>
# 添加jar到镜像并命名为user.jar
ADD iot-business.jar business.jar
# 镜像启动后暴露的端口
EXPOSE 20018
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","business.jar"]
Dockerfile文件 命令2
#环境
FROM openjdk:8
#作者信息
MAINTAINER wmzhyf <181398981@163.com>
#将本地文件挂载到容器
EXPOSE 10018 20018
#拷贝
COPY business.jar /business.jar
#执行命令
CMD ["sh", "-c", "java -jar /business.jar > /business.log 2>&1"]
2.准备镜像
然后使用docker命令打包:
docker build -t business .
user表示镜像名称
最后的.表示Dockerfile在当前目录
打包完成后使用docker images查看镜像
使用docker run命令创建并运行容器:
docker run -d --name user -p 8001:8001 business
docker run -d --name business -p 20018:20018 business
命令解释如下:
命令 | 功能 |
docker run | 创建并启动容器 |
–name | 指定一个容器名称 |
-d | 后台运行容器,并返回容器ID |
-p | 指定端口 |
user | 需要启动的镜像(名称+版本)不指定版本默认最新版本 |
: | 符号左边为宿主机,右边为容器空间 |
docker logs -f -t business
jar日志启动成功,查看容器:
docker ps
我这里是openjdk8
创建并运行容器(直接基于jdk镜像创建容器):
docker run -d --name user -p 8001:8001 -v /opt/java_app_docker/app:/app java:8 /usr/bin/java -jar /app/user.jar
docker run -d --name user -p 8001:8001 -v /opt/java_app_docker/app:/app openjdk:8 java -jar /app/user.jar
docker run -d --name business -p 20018:20018 -v /home/matrix/app:/app openjdk:8 java -jar /home/matrix/app/business.jar
相关文章:

k8s 安装部署
一,准备3台机器,安装docker,kubelet、kubeadm、kubectl firewall-cmd --state 使用下面命令改hostname的值:(改为k8s-master01)另外两台改为相应的名字。 172.188.32.43 hostnamectl set-hostname k8s-master01 172.188.32.4…...
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
文章目录 前言一、应用层二.传输层三.网络层:四.数据链路层五.物理层:六.OSI七层模型:1.物理层(Physical Layer):2.数据链路层(Data Link Layer):3.网络层(Ne…...

STM32串口接收不定长数据(空闲中断+DMA)
玩转 STM32 单片机,肯定离不开串口。串口使用一个称为串行通信协议的协议来管理数据传输,该协议在数据传输期间控制数据流,包括数据位数、波特率、校验位和停止位等。由于串口简单易用,在各种产品交互中都有广泛应用。 但在使用串…...
LeetCode56. Merge Intervals
文章目录 一、题目二、题解 一、题目 Given an array of intervals where intervals[i] [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input. Example 1: Input: interva…...
【华为OD题库-083】玩牌高手-Java
题目 给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 1.在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的…...

ARM day3
题目:实现3盏灯的流水 代码: .text .global _start _start: 设置RCC寄存器使能 LDR R0,0X50000A28 LDR R1,[R0] ORR R1,R1,#(0X1<<4) ORR R1,R1,#(0X1<<5) STR R1,[R0]设置PE10管脚为输出模式 LDR R0,0X50006000 LDR R1,[R0] BIC R1,R1,…...

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-2稳定性分析Stability
本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-2稳定性分析Stability 0. 序言1. 稳定的分类2. 稳定的对象3. 稳定的系统4. 系统稳定性的讨论5. 补充内容——Transfer Function(传递函数) - nonzero Initial Condition(非零初始…...

Android Audio实战——音频链路分析(二十五)
在 Android 系统的开发过程当中,音频异常问题通常有如下几类:无声、调节不了声音、爆音、声音卡顿和声音效果异常(忽大忽小,低音缺失等)等。尤其声音效果这部分问题通常从日志上信息量较少,相对难定位根因。想要分析此类问题,便需要对声音传输链路有一定的了解,能够在链…...
PHP基础 - 常量字符串
常量 在PHP中,常量是一个简单值的标识符,定义后默认是全局变量,可以在整个运行的脚本的任何地方使用。常量由英文字母、下划线和数字组成,但数字不能作为首字母出现。 PHP中定义常量的方式是使用define()函数,其语法如下: bool define( string $name, mixed $value [,…...

Linux查看命令的绝对路径
linux查看命令的绝对路径 在Linux中,可以使用以下命令来查看命令的绝对路径: 1、which 命令名 例如,要查看chronyc命令的绝对路径,可以运行: which chronyc 2、whereis 命令名 例如,要查看chronyc命令…...

Docker build 无法解析域名
### 报错 Docker build 无法解析域名 报错:ERROR [ 2/12] RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 解决Docker build无法解析域名 # 追加到 etc/docker/daemon.json,注意JSON的格式 {"dn…...

退稿论文重复率太高会怎么样【保姆教程】
大家好,今天来聊聊退稿论文重复率太高会怎么样,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 退稿论文重复率太高会怎么样 在学术出版领域,论文的重复率是衡量其原创性和学术诚…...
Flask 最佳实践(一)
Flask是一个轻量级而强大的Python Web框架,它的简洁性和灵活性使其成为许多开发者的首选。然而,为了确保项目的可维护性和可扩展性,我们需要遵循一些最佳实践。本文将探讨Flask中一些关键的最佳实践。 1. 项目结构 构建一个清晰的项目结构是…...

直流电和交流电
直流电(Direct Current,简称DC)和交流电(Alternating Current,简称AC)是电流的两种基本形式。 1. 直流电 直流电是指电流方向始终保持不变的电流。在直流电中,电子只能沿着一个方向移动。直流电…...

『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器安装Prometheus数据可视化监控
授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器(Elastic Compute Cloud)是亚马…...
15、SQL注入——Sqlmap
文章目录 一、Sqlmap简介1.1 sqlmap可以对URL干嘛?1.2 Sqlmap支持的注入技术1.3 SQLmap检测注入漏洞的流程1.4 Sqlmap的误报检测机制 二、sqlmap基本使用 一、Sqlmap简介 sqlmap使用教程 1.1 sqlmap可以对URL干嘛? 判断可注入的参数判断可以使用哪一种…...

OSPF路由协议
随着Internet技术在全球范围的飞速发展,OSPF已成为目前应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作组提出的,是一种基于SPF算法的…...

设计模式-门面模式(Facade)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、定义二、结构 前言 在组件构建过程中,某些接口之间直接依赖会带来很多问题,甚至无法直接实现。采用一层间接接口,来隔离…...

语音识别从入门到精通——1-基本原理解释
文章目录 语音识别算法1. 语音识别简介1.1 **语音识别**1.1.1 自动语音识别1.1.2 应用 1.2 语音识别流程1.2.1 预处理1.2.2 语音检测和断句1.2.3 音频场景分析1.2.4 识别引擎(语音识别的模型)1. 传统语音识别模型2. 端到端的语音识别模型基于Transformer的ASR模型基于CNN的ASR模…...

语音识别功能测试:90%问题,可以通过技术解决
现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互;另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...