OpenShift 4 - 使用辅助安装器安装单节点 OpenShift
文章目录
- 单节点 OpenShift 和 OpenShift 辅助安装器
- 单节点 OpenShift
- OpenShift 辅助安装器
- 使用辅助安装器安装单节点 OpenShift
- 本文使用的安装环境
- 准备环境
- 在宿主机上安装 KVM 环境
- 创建 SSH 证书
- 根据集群配置,用辅助安装器生成 Discovery ISO
- 用 Discovery ISO 启动 VM,完成安装过程
- 后续配置和操作
- 安装并设置 DNS 服务
- 访问集群
- 登陆访问 OpenShift 节点
- 启动和关闭集群
- 启动处理
- 关闭集群
- 演示视频
- 参考
单节点 OpenShift 和 OpenShift 辅助安装器
单节点 OpenShift
单节点 OpenShift 指的是 OpenShift 集群只有一个节点,Master 和 Worker 都运行在该节点上。单节点 OpenShift 的运行方式比较适合边缘计算中 Far Edge 环境,另外还可以在 Development 或 Testing 环境中使用。
我们可以在虚机或裸机上安装单节点 OpenShift,其中在 Far Edge 环境中运行更适合裸机部署单节点 OpenShift,而 Development 或 Testing 环境可以用虚机部署单节点 OpenShift。在虚机中安装好的单节点 OpenShift 同红帽的 OpenShift Local 环境非常相近,它们都是运行在虚机中,而且都是只有一个节点。
OpenShift 辅助安装器
OpenShift 辅助安装器是一个可帮助用户简化在线安装 OpenShift 的工具。用户在 RedHat 网站 OpenShift 辅助安装器的向导中提供适当的集群信息后便可得到一个包含安装配置+RHCOS 的 ISO 文件。当我们使用这个 ISO 启动节点后,节点会自动连接到 RedHat 网站并完成后续安装步骤。这样就能比较方便快捷地安装好一个 OpenShift 环境。
OpenShift 辅助安装器既可用来安装单节点 OpenShift,也可用来安装标准的多节点 OpenShift 集群。
使用辅助安装器安装单节点 OpenShift
本文使用的安装环境
本文将使用 KVM 虚机部署单节点 OpenShift,以下是运行 KVM 的宿主机配置:
- 裸机硬件:8 vCPU + 16 G 内存
- OS 软件:RHEL 7(或 CentOS 7)+ 桌面环境 + KVM 虚拟化环境 + 版本较新的 Chrome 或 Edge 浏览器
- OS IP:固定 IP - 192.168.1.41/24,Gateway - 192.168.1.1,DNS - 192.168.1.1
说明:如果要直接在裸机上运行 OpenShift,需在后续步骤中先使用下载的 ISO 文件制作启动盘,然后启动裸机完成安装。
准备环境
在宿主机上安装 KVM 环境
在宿主机上执行命令即可安装 KVM 环境。
$ sudo yum install -y virt-* libvirt qemu-img
创建 SSH 证书
在宿主机上执行命令生成 SSH 证书密钥对,其中 id_rsa.pub 是公钥。该证书用来远程登陆访问运行 OpenShift 的节点。
$ ssh-keygen -N ''
$ more ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKQh4w4FBEPs5wk/0tVZVZ/l8+AwJCWMWZOdp8geXRCaMztSpYNGrPZWLm/bAT7qUUlbLSohkY5ItpsC5Llh9goYv48Ii1cVYqsdnL5vrqZyuR4FkzCJl5gxuZpXHBIMNVfe6tLYFMV6gLQ5P28ESBRkW51plO8MDqybSt+Ny+ypViyGKuEr4gcl3nGwLGtElfeqd3tw6aG9ZBQi0EOrwXLNYDhlu/XbKXmXaQVEauN1nO3UBo5fnqMa7AJuUAh1XaJdqPxym7qwaEszob5zL35/2syQWfqjGD3Os3fi3AuXOGkpBoV+hmoTUDkxgRTm0CeQJvuL7Kr1gvFLKymfpj dawnsky@x1
根据集群配置,用辅助安装器生成 Discovery ISO
- 使用红帽用户登陆并访问 https://console.redhat.com/openshift/assisted-installer/clusters,然后点击 Create Clusters。
- 在 Install OpenShift with the Assisted Installer 页面的第 1 步中按下图提供或选择以下配置,然后点击 Next。
Cluster name
Base domain
OpenShift version
Install single node OpenShift (SNO)
DHCP only
- 在 Install OpenShift with the Assisted Installer 页面的第 2 步中直接点击 Next。说明:选装安装附加功能需要更多 CPU 和内存,本文的硬件不能选装这些附加功能。
- 在 Install OpenShift with the Assisted Installer 页面的第 3 步中点击 Add host。
- 在下图 Add host 窗口中填入前面步骤生成的 SSH 公钥,然后点击 Generate Discovery ISO,
- 下载 Discovery ISO 文件,将其保存到宿主机的 /var/lib/libvirt/images/ 目录下。
用 Discovery ISO 启动 VM,完成安装过程
- 在宿主机中执行以下命令运行 Virt Manager,然后在 Virt Manager 中创建一个新的虚拟机。
$ virt-manager
- 在 Create a new virtual machine 的第 1 步中选择 Local install media (ISO image or CDROM) 作为操作系统安装源。
- 在 Create a new virtual machine 的第 2 步中选择 Use ISO image,然后点击 Browse。
- 在 Choose Storage Volume 窗口选中 default 文件系统目录的 xxxx-discovery.iso 文件,然后点击 Choose Volume。
- 在 Create a new virtual machine 的第 2 步中点击 Forward。
- 在 Create a new virtual machine 的第 3 步按下图配置所需的最低 Memory 和 CPUs。
- 在 Create a new virtual machine 的第 4 步分配虚拟机使用的存储空间。
- 在 Create a new virtual machine 的第 5 步提供虚拟机名称,同时使用 Virtual network ‘default’ : NAT 作为网络配置。
- 完成后可看到以下 VM 的窗口。
- (可选)如果在前面生成 Discovery ISO 时选择了 Install Logical Volume Manager Storage,需按下图为 VM 创建第 2 个存储设备。
- 完成 VM 创建后启动它,启动完成后会看到下图窗口。
- 在宿主机上运行以下命令,可以看到上图 VM 操作系统的网络是运行在 virbr0 网桥所用网段。
$ ip a show type bridge
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 52:54:00:3f:46:8d brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
后续配置和操作
- 在 Install OpenShift with the Assisted Installer 页面的第 3 步中等待在 Host inventory 中出现主机。
- 在 Install OpenShift with the Assisted Installer 页面的第 4 步查看主机的存储配置。
- 在 Install OpenShift with the Assisted Installer 页面的第 6 步确认所有配置,然后点击 Install cluster。
- 此时在节点开始安装 OpenShift。可以通过进程条了解安装进度,还可点击 View Cluster Events 来查看安装过程中的详细事件。
- 安装完成后将看到下图,其中 Web Console URL 是访问 OpenShift 控制台的地址。此时由于还不能解析该地址对应的域名而无法打控制台开页面。
安装并设置 DNS 服务
- 点开上图 Not enable to access the Web Console 连接,将显示以下提示。说明:可以用以下 2 种方法将 OpenShift 所用域名和 IP 地址对应起来,本文介绍第二种实现方法。
- 执行命令列出 connection 和对应的设备,其中上图的 IP 地址属于 virbr0 网桥网段。
$ nmcli connection
NAME UUID TYPE DEVICE
ChinaNet-YSHQ-5G 688a8258-4742-447d-9931-771b35b5a7b1 wifi wlp0s20f3
virbr0 6d1b3b66-a015-4969-9747-c067b0a5de09 bridge virbr0
vnet0 4863eb9f-51e1-4b1e-8999-54cfbf51f627 tun vnet0
- 创建 dns-sno.sh 文件,内容如下(可根据情况修改前 5 个变量内容)。该配置会在宿主机上安装配置 DNS 服务,然后将宿主机的 DNS 指向自己节点的 IP - 192.168.1.41。DNS 服务将解析单节点 OpenShift 使用的域名,其他域名将转发给 114.114.114.114 和 8.8.8.8 解析。
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
OCP_CLUSTER_NAME=ocp-sno
BASE_DOMAIN=ocp.com
CONNECTION_NAME=ChinaNet-YSHQ-5G
DNS_IP=192.168.1.41
OCP_IP=192.168.122.63
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
yum -y install bind bind-utils
systemctl enable named --nowcp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
cp /etc/named.conf /etc/named.conf.baksed -i -e "s/listen-on port.*/listen-on port 53 { any; };/" /etc/named.conf
sed -i -e "s/allow-query.*/allow-query { any; };/" /etc/named.conf
sed -i '/recursion yes;/a \forward first; \forwarders { 114.114.114.114; 8.8.8.8; };' /etc/named.conf
sed -i -e "s/dnssec-enable.*/dnssec-enable no;/" /etc/named.conf
sed -i -e "s/dnssec-validation.*/dnssec-validation no;/" /etc/named.conf#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cat >> /etc/named.rfc1912.zones << EOFzone "${OCP_CLUSTER_NAME}.${BASE_DOMAIN}" IN {type master;file "${OCP_CLUSTER_NAME}.${BASE_DOMAIN}.zone";allow-transfer { any; };
};EOF#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cat > /var/named/${OCP_CLUSTER_NAME}.${BASE_DOMAIN}.zone << EOF
\$ORIGIN ${OCP_CLUSTER_NAME}.${BASE_DOMAIN}.
\$TTL 1D
@ IN SOA ${OCP_CLUSTER_NAME}.${BASE_DOMAIN}. admin.${OCP_CLUSTER_NAME}.${BASE_DOMAIN}. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum@ IN NS dns.${BASE_DOMAIN}.
api IN A ${OCP_IP}
api-int IN A ${OCP_IP}
*.apps IN A ${OCP_IP}EOF#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
nmcli connection modify ${CONNECTION_NAME} ipv4.dns ${DNS_IP}
systemctl restart NetworkManager
systemctl restart named
rndc reload
- 执行 dns-sno.sh 命令,然后可进行测试。
$ ./dns-sno.sh
$ ping www.redhat.com
$ ping api.sno.ocp.com
$ ping oauth-openshift.apps.sno.ocp.com
$ ping console-openshift-console.apps.sno.ocp.com
$ ping grafana-openshift-monitoring.apps.sno.ocp.com
$ ping thanos-querier-openshift-monitoring.apps.sno.ocp.com
$ ping prometheus-k8s-openshift-monitoring.apps.sno.ocp.com
$ ping alertmanager-main-openshift-monitoring.apps.sno.ocp.com
访问集群
说明:上一节为宿主机配置的 DNS 是将访问 OpenShift 的域名解析到该宿主机的 virbr0 网桥网段,进而从网桥进入到 VM 中。由于该 virbr0 网桥网段只在宿主机上效,因此只能从宿主机通过域名直接访问 OpenShift 控制台,而从宿主机以外无法通过域名直接访问到 OpenShift 控制台。
- 在宿主机中用浏览器中访问下图的 https://console-openshift-console.apps.sno.ocp.com。
- 点击上图 Download kubeconfig,下载文件保并将其保存为 ~/.kube/config 文件。
- 使用上图的 Username 和 Password 登陆 OpenShift Console。
- 根据下图,在下拉菜单中进入 “命令行工具”。
- 下载 oc for Linux 客户端程序到宿主机。
- 在宿主机上执行以下命令,为 oc 设置执行环境。最后确认可以通过 oc 获取到 OpenShift 集群中的项目信息。
$ tar -xvf oc.tar
$ sudo mv oc /usr/bin/
$ oc get project
NAME DISPLAY NAME STATUS
assisted-installer Active
default Active
kube-node-lease Active
kube-public Active
kube-system Active
openshift Active
......
登陆访问 OpenShift 节点
在宿主机上执行命令,可进入运行 OpenShift 的 VM 操作系统内部。
$ ssh -i ~/.ssh/id_rsa core@192.168.122.63
The authenticity of host '192.168.122.63 (192.168.122.63)' can't be established.
ECDSA key fingerprint is SHA256:uBLlWdC4pmdJ8jUs5ie9snpoXkhC7kzZ4CJoVKQzVfk.
ECDSA key fingerprint is MD5:d5:b8:c8:c9:48:22:d5:60:6a:1b:b0:a7:70:a3:43:a9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.122.63' (ECDSA) to the list of known hosts.
Red Hat Enterprise Linux CoreOS 412.86.202301311551-0Part of OpenShift 4.12, RHCOS is a Kubernetes native operating systemmanaged by the Machine Config Operator (`clusteroperator/machine-config`).WARNING: Direct SSH access to machines is not recommended; instead,
make configuration changes via `machineconfig` objects:https://docs.openshift.com/container-platform/4.12/architecture/architecture-rhcos.html---
启动和关闭集群
启动处理
启动 VM 就会自动运行 OpenShift。有些时候,在 VM 启动后 OpenShift 可能有新的 CSR(certificate signing requests) 需要处理,只有在处理完后 OpenShift 才能启动完成。
- 执行命令,查看当前是否有未处理的 CSR,如果有就 approve。
$ oc get csr
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION
csr-2kzc6 9m34s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending
csr-4n8vq 24m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending
csr-jrrtd 27m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
- 在 OpenShift 启动完后,确认所有 ClusterOperator 状态为 Available。
$ oc get co
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
authentication 4.12.2 True False False 3d3h
baremetal 4.12.2 True False False 3d3h
cloud-controller-manager 4.12.2 True False False 3d3h
cloud-credential 4.12.2 True False False 3d4h
cluster-autoscaler 4.12.2 True False False 3d3h
config-operator 4.12.2 True False False 3d4h
console 4.12.2 True False False 3d3h
control-plane-machine-set 4.12.2 True False False 3d3h
csi-snapshot-controller 4.12.2 True False False 3d4h
dns 4.12.2 True False False 3d3h
etcd 4.12.2 True False False 3d4h
image-registry 4.12.2 True False False 3d3h
ingress 4.12.2 True False False 3d3h
insights 4.12.2 True False False 3d3h
kube-apiserver 4.12.2 True False False 3d3h
kube-controller-manager 4.12.2 True False False 3d3h
kube-scheduler 4.12.2 True False False 3d3h
kube-storage-version-migrator 4.12.2 True False False 3d4h
machine-api 4.12.2 True False False 3d3h
machine-approver 4.12.2 True False False 3d3h
machine-config 4.12.2 True False False 3d3h
marketplace 4.12.2 True False False 3d4h
monitoring 4.12.2 True False False 3d3h
network 4.12.2 True False False 3d4h
node-tuning 4.12.2 True False False 3d3h
openshift-apiserver 4.12.2 True False False 3d3h
openshift-controller-manager 4.12.2 True False False 3d3h
openshift-samples 4.12.2 True False False 3d3h
operator-lifecycle-manager 4.12.2 True False False 3d3h
operator-lifecycle-manager-catalog 4.12.2 True False False 3d3h
operator-lifecycle-manager-packageserver 4.12.2 True False False 3d3h
service-ca 4.12.2 True False False 3d4h
storage 4.12.2 True False False 3d3h
关闭集群
在宿主机上执行以下两段命令均可关闭 OpenShift 集群运行。
方法 1:
$ ssh -i ~/.ssh/id_rsa core@192.168.122.63
$ sudo shutdown -h now
方法 2:
$ oc get node
$ oc debug node/XXX
sh-4.4# chroot /host
sh-4.4# shutdown -h now
演示视频
视频
参考
https://cloud.redhat.com/blog/how-to-use-the-openshift-assisted-installer
https://jameswilkins.co.uk/install-openshift/
https://cloud.redhat.com/blog/meet-the-new-agent-based-openshift-installer-1
相关文章:
OpenShift 4 - 使用辅助安装器安装单节点 OpenShift
文章目录单节点 OpenShift 和 OpenShift 辅助安装器单节点 OpenShiftOpenShift 辅助安装器使用辅助安装器安装单节点 OpenShift本文使用的安装环境准备环境在宿主机上安装 KVM 环境创建 SSH 证书根据集群配置,用辅助安装器生成 Discovery ISO用 Discovery ISO 启动 …...
Allegro如何快速锁定整板测试点操作指导
Allegro如何快速锁定整板测试点操作指导 在做PCB设计的时候,会需要给整板添加测试点,用于飞针测试,如下图 在测试点添加好之后,文件输出之前需要把测试点全部锁定,避免因为测试点模具开好,测试点被移动的情况出现 如果逐个锁定Via,容易遗漏 Allegro支持快速锁定整板测…...
系统分析师---知识产权标准化思维导图
保护范围以及对象(3星) 著作权法:不用申请,作品完整即保护绘画摄影作品,原件持有人只是所有权与展览权,著作权归原作者 专利法:专利权需要申请商标法:商标权需要申请反不正当竞争法…...
HiEV洞察 | 特斯拉HW4.0再爆猛料,高精定位、雷达均有变动
作者 | 查理斯 编辑 | 王博特斯拉 HW4.0 消息传出后,有人爆料说在硬件层面发生了巨大变化,引发行业轰动。大家都在猜测HW4.0 具体做了哪些改动。 2月16日,Twitter用户greentheonly爆出HW4.0的主板拆解照片。2月18日又爆出毫米波雷达的拆解照片…...
潜伏的 Linux Rootkit:Syslogk
Rootkit 是非常危险的恶意软件,一旦侵入就很难被发现。开发 Rootkit 通常更加困难,很多攻击者都倾向于重用开源项目。 Adore-Ng 是一个相对较老的、开源的 Linux 内核 Rootkit,最初针对内核 2.x 版本开发,但目前已更新为针对内核…...
JVM总结
1. 内存结构 线程私有区 程序计算器 作用:是一块较小的内存空间,存储的是当前线程所执行的字节码文件的序号特点:线程私有,不会出现内存空间溢出 虚拟机栈 虚拟机栈是管理JAVA方法执行的内存模型,每个方法执行时都…...
AOF:redis宕机,如何避免数据丢失
由于redis是基于内存的数据库,一旦宕机,数据就会丢失?如何解决? 目前,Redis 的持久化主要有两大机制,即 AOF(Append Only File)日志和 RDB(Redis DataBase) 快照。 AO…...
LC-3—MIO、MMIO、Caller Save、Callee Save
LC-3—MMIO、Caller Save、Callee SaveMMIOCaller Save、Callee Save举个例子MMIO MMIO(Memory Mapped I/O)是一种在系统内存中映射I/O端口的技术,它允许设备直接访问内存中的特定地址,从而实现I/O操作。MMIO技术可以提高I/O操作…...
SQL注入报错注入之floor()报错注入原理分析
简介 对于SQL注入的报错注入通常有三个函数需要我们掌握: extractValue(xml_frag, xpath_expr)updateXML(xml_target, xpath_expr,new_xml)floor() 对于extractValue和updateXML函数来说比较好理解,就不做解释了,这里只对floor函数的报错注…...
2023CS双非保研985经验分享(南大、华科、中科大科学岛、国防科大、西交、中南、深圳大学、北邮、中科院等)
前言: 2022保研以来,因为自己的双非背景,要与985、211的排名靠前的计科大佬竞争,不自信、焦虑无时无刻的包围着我;所幸,一路以受到了许多学长、学姐耐心的帮助,也有很多保研的同学一路互相支撑。…...
Shell中的IFS
IFS是shell的内置变量,IFS是一个字符串,里面的每一个字符都会用来作为分隔符进行单词分割。 IFS变量只在当前shell起作用。 一、对$*的影响 先做参数替换把$*替换成参数列表。相当于args[] 然后下面分两种情况: (1)…...
Java学习线路图--书籍推荐
----基础---- 《Java从入门到精通》 ----进阶---- 一 《Java项目开发全程实录》《Java开发实例大全(基础篇)》《Java开发实例大全(提高篇)》 二 《Java Web从入门到精通》《Java Web项目开发全程实录》《Java Web开发实例大…...
【GO】k8s 管理系统项目23[前端部分–工作负载-Pod]
k8s 管理系统项目[前端部分–工作负载-Deployment] 1. 代码部分 1.1 准备工作 由于Pod页面和Deployment内容差不多.那么就直接把Deployment的内容复制过来.再做修改. 替换Deployment为Pod替换Deploy为Pod替换deployment为pod替换deploy为pod禁用新增的按钮,删除新增方法,表…...
rabbitmq在linux系统下安装步骤
第一步:登录官网 官网地址:www.rabbitmq.com,点击Get Started 重要信息:RabbitMQ Tutorials手册,描述了工作模式 第二步:点击Download Installation下载 重要信息:rabbitmq是用erlang语言开发的࿰…...
阿里测试员晒薪资条,看完真的扎心了...
前几天,有位老粉私信我,说看到某95后学弟晒出阿里的工资单,他是真酸了…想狠补下技术,努力冲一把大厂。 为了帮到他,也为了大家能在最短的时间内做面试复习,我把软件测试面试系列都汇总在这一篇文章了。 …...
内网渗透辅助工具集Yasso
目录 介绍 工具优势 程序功能模块 目前已有用功能模块 使用例子 工具下载</...
Spring笔记(1):概述
1、什么是Spring? Spring是最受欢迎的企业级Java应用程序开发框架,使用它创建性能好、易于测试、可重用的代码。Spring是一种轻量级的框架。Spring框架的核心特性是开发任何Java应用程序,其目标是使得J2EE开发变得更容易,通过启用…...
工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪
焊接已发展为制造业中的一种重要的加工方法,广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂,焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时,…...
使用linux部署项目步骤
文章目录前言一、服务器环境配置二、数据库导入三、项目打包1、修改项目中的访问路径2、修改db.properties的数据库访问路径3、打包4、修改配置,启动服务四、测试总结前言 今天学习了在服务器中部署项目,记录一下 一、服务器环境配置 首先要安装VMware&…...
pt02-list-tuple-dir
容器类型 通用操作 数学运算符 (1) 用于拼接两个容器 (2) 用原容器与右侧容器拼接,并重新绑定变量 (3) * 重复生成容器元素 (4) * 用原容器生成重复元素, 并重新绑定变量 (5) !:依次比较两个容器中元素,一但不同则返回比较结果。< < > > 意…...
高端电器新十年,求解「竞速突围」
竞争激烈的高端电器品牌们,平时王不见王,但也有例外。海尔、博西、海信、创维、方太、老板等等近乎中国电器行业所有一线品牌副总裁级别以上高层,2月22日都现身于上海,来参加一场由红星美凯龙攒起来的高端电器局,2023中…...
[Android Studio] Android Studio使用keytool工具读取Debug 调试版数字证书以及release 发布版数字证书
🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…...
2023年金三银四必备软件测试常见面试题1500问!!!【测试思维篇】
五、测试思维5.1 打电话功能怎么去测?我们会从几个方面去测试:界面、功能、兼容性、易用性、安全、性能、异常。1)界面我们会测试下是否跟界面原型图一致,考虑浏览器不同显示比例,屏幕分辨率。2)功能&#…...
推荐四款自用的电脑神器
作为一个经常鼓捣电脑的小编来说,无论是写文章、截图、办公方面都缺少不了一些好用的软件,今天就给大家盘点一些我推荐用的办公效率工具,让你的效率事半功倍。 写文章神器 以前写文章一直是在公众号编辑上直接写的,缺点就是格式有…...
CSDN 竞赛 32 期
CSDN 竞赛 32 期1、题目名称:传奇霸业2、题目名称:严查枪火3、题目名称:蚂蚁家族4、题目名称:运输石油小结1、题目名称:传奇霸业 传奇霸业,是兄弟就来干。 小春(HP a)遇到了一只黄金哥布林(HP x)。 小春每…...
【路径规划】基于前向动态规划算法在地形上找到最佳路径(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
spring boot maven打包jar包太大,怎么办?这个方法解决你的烦恼
在springboot maven项目中,有两种打包方式,一种是war包,一种是jar,今天我们讲一下jar的打包方式。但是在jar包打包只要我们发现,我们的项目jar太大了,每次上传到服务器的时候非常的慢,接下来我们…...
Spring之AOP理解及使用
文章目录AOP是什么AOPSpring的通知类型1.Before通知2. AfterReturning通知3.AfterThrowing通知4. After通知5. Around通知动态代理JDK动态代理CGLib动态代理动态代理的代码展示AOP使用切面类的配置最后大家好,我是Leo!今天给大家带来的是关于Spring AOP的…...
微信小程序和webview使用postMessage交互
小程序和webview能交互,但是没有你想的那个完美小程序向webview传递参数只能使用url携带参数webview向小程序传递参数可以使用postMessage, 但是注意了,postMessage只会在特定的时机执行,请看官方文档由此可见,如果你想点击webvie…...
pytorch-自动求导机制,构建计算图进行反向传播,需要注意inplace操作导致的报错,梯度属性变化
PyTorch 作为一个深度学习平台,在深度学习任务中比 NumPy 这个科学计算库强在哪里呢?一是 PyTorch 提供了自动求导机制,二是对 GPU 的支持。由此可见,自动求导 (autograd) 是 PyTorch,乃至其他大部分深度学习框架中的重…...
上海做oocl船的公司网站/网络黄页推广软件
转载:https://www.jqhtml.com/11084.html既然已经有像 Scrapy 这样优秀的爬虫框架,为何还要造轮子呢?嗯,其实最主要的还是想要将学习到 Python 知识综合起来,提高一下自己。推荐下我自己创建的Python学习交流群9604104…...
网站建设与管理设计/网络推广和运营的区别
在阅读代码时,遇到了非常早之前用过的fseek(),非常久没实用了,有点陌生,写出来以便下次查阅。 函数功能是把文件指针指向文件的开头,须要包括头文件stdio.h fseek 函数名: fseek 功 能: 重定位流上的文件指针 用 法: int fs…...
北京最牛计算机培训机构/搜索引擎营销优化
若有收获,点个在看、转发朋友圈,让更多朋友一起学习! 本文内容 为什么需要用代理 jdk动态代理玩法详解 cglib代理常见的各种玩法详解 代理spring中用到的挺多的,比如上篇文章中的lookup-method和replaced-method,以及…...
物流公司网站制作模板/建立一个企业网站需要多少钱
try catch-当try块里发生错误时,catch块就会被执行 finally-用来执行一些清理代码,无论是否有错误发生 catch块-对错误进行处理/重新抛出异常 finally块总是会被执行 可以有多个catch,每个catch会捕获特定类型的异常 catch子句指定了要捕获…...
joomla 做 企业网站/深圳关键词优化平台
1.基础概念理解 首先,python里有包和模块,对应到我们熟知的windows系统里来,就是文件夹与py文件,也即python的包是一个文件夹,但这个文件夹下必须要有一个__init__.py的文件,而python的模块对应的是一个py文…...
做旅行网站多少钱/seo网站
我正在尝试使用Python的Tfidf来转换文本语料库.但是,当我尝试fit_transform它时,我得到一个值错误ValueError:空词汇;也许这些文件只包含停用词.In [69]: TfidfVectorizer().fit_transform(smallcorp)------------------------------------------------------------…...