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

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

  1. 使用红帽用户登陆并访问 https://console.redhat.com/openshift/assisted-installer/clusters,然后点击 Create Clusters。
    在这里插入图片描述
  2. 在 Install OpenShift with the Assisted Installer 页面的第 1 步中按下图提供或选择以下配置,然后点击 Next。
    Cluster name
    Base domain
    OpenShift version
    Install single node OpenShift (SNO)
    DHCP only
    在这里插入图片描述
  3. 在 Install OpenShift with the Assisted Installer 页面的第 2 步中直接点击 Next。说明:选装安装附加功能需要更多 CPU 和内存,本文的硬件不能选装这些附加功能。
    在这里插入图片描述
  4. 在 Install OpenShift with the Assisted Installer 页面的第 3 步中点击 Add host。
    在这里插入图片描述
  5. 在下图 Add host 窗口中填入前面步骤生成的 SSH 公钥,然后点击 Generate Discovery ISO,
    在这里插入图片描述
  6. 下载 Discovery ISO 文件,将其保存到宿主机的 /var/lib/libvirt/images/ 目录下。
    在这里插入图片描述

用 Discovery ISO 启动 VM,完成安装过程

  1. 在宿主机中执行以下命令运行 Virt Manager,然后在 Virt Manager 中创建一个新的虚拟机。
$ virt-manager
  1. 在 Create a new virtual machine 的第 1 步中选择 Local install media (ISO image or CDROM) 作为操作系统安装源。
    在这里插入图片描述
  2. 在 Create a new virtual machine 的第 2 步中选择 Use ISO image,然后点击 Browse。
    在这里插入图片描述
  3. 在 Choose Storage Volume 窗口选中 default 文件系统目录的 xxxx-discovery.iso 文件,然后点击 Choose Volume。
    在这里插入图片描述
  4. 在 Create a new virtual machine 的第 2 步中点击 Forward。
    在这里插入图片描述
  5. 在 Create a new virtual machine 的第 3 步按下图配置所需的最低 Memory 和 CPUs。
    在这里插入图片描述
  6. 在 Create a new virtual machine 的第 4 步分配虚拟机使用的存储空间。
    在这里插入图片描述
  7. 在 Create a new virtual machine 的第 5 步提供虚拟机名称,同时使用 Virtual network ‘default’ : NAT 作为网络配置。
    在这里插入图片描述
  8. 完成后可看到以下 VM 的窗口。
    在这里插入图片描述
  9. (可选)如果在前面生成 Discovery ISO 时选择了 Install Logical Volume Manager Storage,需按下图为 VM 创建第 2 个存储设备。
    在这里插入图片描述
  10. 完成 VM 创建后启动它,启动完成后会看到下图窗口。
    在这里插入图片描述
  11. 在宿主机上运行以下命令,可以看到上图 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

后续配置和操作

  1. 在 Install OpenShift with the Assisted Installer 页面的第 3 步中等待在 Host inventory 中出现主机。
    在这里插入图片描述
  2. 在 Install OpenShift with the Assisted Installer 页面的第 4 步查看主机的存储配置。
    在这里插入图片描述
  3. 在 Install OpenShift with the Assisted Installer 页面的第 6 步确认所有配置,然后点击 Install cluster。
    在这里插入图片描述
  4. 此时在节点开始安装 OpenShift。可以通过进程条了解安装进度,还可点击 View Cluster Events 来查看安装过程中的详细事件。
    在这里插入图片描述
  5. 安装完成后将看到下图,其中 Web Console URL 是访问 OpenShift 控制台的地址。此时由于还不能解析该地址对应的域名而无法打控制台开页面。
    在这里插入图片描述

安装并设置 DNS 服务

  1. 点开上图 Not enable to access the Web Console 连接,将显示以下提示。说明:可以用以下 2 种方法将 OpenShift 所用域名和 IP 地址对应起来,本文介绍第二种实现方法。
    在这里插入图片描述
  2. 执行命令列出 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     
  1. 创建 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
  1. 执行 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 控制台。

  1. 在宿主机中用浏览器中访问下图的 https://console-openshift-console.apps.sno.ocp.com。
    在这里插入图片描述
  2. 点击上图 Download kubeconfig,下载文件保并将其保存为 ~/.kube/config 文件。
  3. 使用上图的 Username 和 Password 登陆 OpenShift Console。
    在这里插入图片描述
  4. 根据下图,在下拉菜单中进入 “命令行工具”。
    在这里插入图片描述
  5. 下载 oc for Linux 客户端程序到宿主机。
    在这里插入图片描述
  6. 在宿主机上执行以下命令,为 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 才能启动完成。

  1. 执行命令,查看当前是否有未处理的 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
  1. 在 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 证书根据集群配置&#xff0c;用辅助安装器生成 Discovery ISO用 Discovery ISO 启动 …...

Allegro如何快速锁定整板测试点操作指导

Allegro如何快速锁定整板测试点操作指导 在做PCB设计的时候,会需要给整板添加测试点,用于飞针测试,如下图 在测试点添加好之后,文件输出之前需要把测试点全部锁定,避免因为测试点模具开好,测试点被移动的情况出现 如果逐个锁定Via,容易遗漏 Allegro支持快速锁定整板测…...

系统分析师---知识产权标准化思维导图

保护范围以及对象&#xff08;3星&#xff09; 著作权法&#xff1a;不用申请&#xff0c;作品完整即保护绘画摄影作品&#xff0c;原件持有人只是所有权与展览权&#xff0c;著作权归原作者 专利法&#xff1a;专利权需要申请商标法&#xff1a;商标权需要申请反不正当竞争法…...

HiEV洞察 | 特斯拉HW4.0再爆猛料,高精定位、雷达均有变动

作者 | 查理斯 编辑 | 王博特斯拉 HW4.0 消息传出后&#xff0c;有人爆料说在硬件层面发生了巨大变化&#xff0c;引发行业轰动。大家都在猜测HW4.0 具体做了哪些改动。 2月16日&#xff0c;Twitter用户greentheonly爆出HW4.0的主板拆解照片。2月18日又爆出毫米波雷达的拆解照片…...

潜伏的 Linux Rootkit:Syslogk

Rootkit 是非常危险的恶意软件&#xff0c;一旦侵入就很难被发现。开发 Rootkit 通常更加困难&#xff0c;很多攻击者都倾向于重用开源项目。 Adore-Ng 是一个相对较老的、开源的 Linux 内核 Rootkit&#xff0c;最初针对内核 2.x 版本开发&#xff0c;但目前已更新为针对内核…...

JVM总结

1. 内存结构 线程私有区 程序计算器 作用&#xff1a;是一块较小的内存空间&#xff0c;存储的是当前线程所执行的字节码文件的序号特点&#xff1a;线程私有&#xff0c;不会出现内存空间溢出 虚拟机栈 虚拟机栈是管理JAVA方法执行的内存模型&#xff0c;每个方法执行时都…...

AOF:redis宕机,如何避免数据丢失

由于redis是基于内存的数据库&#xff0c;一旦宕机&#xff0c;数据就会丢失?如何解决&#xff1f; 目前&#xff0c;Redis 的持久化主要有两大机制&#xff0c;即 AOF&#xff08;Append Only File&#xff09;日志和 RDB&#xff08;Redis DataBase&#xff09; 快照。 AO…...

LC-3—MIO、MMIO、Caller Save、Callee Save

LC-3—MMIO、Caller Save、Callee SaveMMIOCaller Save、Callee Save举个例子MMIO MMIO&#xff08;Memory Mapped I/O&#xff09;是一种在系统内存中映射I/O端口的技术&#xff0c;它允许设备直接访问内存中的特定地址&#xff0c;从而实现I/O操作。MMIO技术可以提高I/O操作…...

SQL注入报错注入之floor()报错注入原理分析

简介 对于SQL注入的报错注入通常有三个函数需要我们掌握&#xff1a; extractValue(xml_frag, xpath_expr)updateXML(xml_target, xpath_expr,new_xml)floor() 对于extractValue和updateXML函数来说比较好理解&#xff0c;就不做解释了&#xff0c;这里只对floor函数的报错注…...

2023CS双非保研985经验分享(南大、华科、中科大科学岛、国防科大、西交、中南、深圳大学、北邮、中科院等)

前言&#xff1a; 2022保研以来&#xff0c;因为自己的双非背景&#xff0c;要与985、211的排名靠前的计科大佬竞争&#xff0c;不自信、焦虑无时无刻的包围着我&#xff1b;所幸&#xff0c;一路以受到了许多学长、学姐耐心的帮助&#xff0c;也有很多保研的同学一路互相支撑。…...

Shell中的IFS

IFS是shell的内置变量&#xff0c;IFS是一个字符串&#xff0c;里面的每一个字符都会用来作为分隔符进行单词分割。 IFS变量只在当前shell起作用。 一、对$*的影响 先做参数替换把$*替换成参数列表。相当于args[] 然后下面分两种情况&#xff1a; &#xff08;1&#xff09…...

Java学习线路图--书籍推荐

----基础---- 《Java从入门到精通》 ----进阶---- 一 《Java项目开发全程实录》《Java开发实例大全&#xff08;基础篇&#xff09;》《Java开发实例大全&#xff08;提高篇&#xff09;》 二 《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系统下安装步骤

第一步&#xff1a;登录官网 官网地址&#xff1a;www.rabbitmq.com,点击Get Started 重要信息&#xff1a;RabbitMQ Tutorials手册&#xff0c;描述了工作模式 第二步&#xff1a;点击Download Installation下载 重要信息&#xff1a;rabbitmq是用erlang语言开发的&#xff0…...

阿里测试员晒薪资条,看完真的扎心了...

前几天&#xff0c;有位老粉私信我&#xff0c;说看到某95后学弟晒出阿里的工资单&#xff0c;他是真酸了…想狠补下技术&#xff0c;努力冲一把大厂。 为了帮到他&#xff0c;也为了大家能在最短的时间内做面试复习&#xff0c;我把软件测试面试系列都汇总在这一篇文章了。 …...

内网渗透辅助工具集Yasso

目录 介绍 工具优势 程序功能模块 目前已有用功能模块 使用例子 工具下载</...

Spring笔记(1):概述

1、什么是Spring&#xff1f; Spring是最受欢迎的企业级Java应用程序开发框架&#xff0c;使用它创建性能好、易于测试、可重用的代码。Spring是一种轻量级的框架。Spring框架的核心特性是开发任何Java应用程序&#xff0c;其目标是使得J2EE开发变得更容易&#xff0c;通过启用…...

工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪

焊接已发展为制造业中的一种重要的加工方法&#xff0c;广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂&#xff0c;焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时&#xff0c;…...

使用linux部署项目步骤

文章目录前言一、服务器环境配置二、数据库导入三、项目打包1、修改项目中的访问路径2、修改db.properties的数据库访问路径3、打包4、修改配置&#xff0c;启动服务四、测试总结前言 今天学习了在服务器中部署项目&#xff0c;记录一下 一、服务器环境配置 首先要安装VMware&…...

pt02-list-tuple-dir

容器类型 通用操作 数学运算符 (1) 用于拼接两个容器 (2) 用原容器与右侧容器拼接,并重新绑定变量 (3) * 重复生成容器元素 (4) * 用原容器生成重复元素, 并重新绑定变量 (5) !&#xff1a;依次比较两个容器中元素,一但不同则返回比较结果。< < > > 意…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...