当前位置: 首页 > 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;依次比较两个容器中元素,一但不同则返回比较结果。< < > > 意…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...