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

学习笔记十三:云服务器通过Kubeadm安装k8s1.25,供后续试验用

Kubeadm安装k8s1.25

  • k8s环境规划:
  • 初始化安装k8s集群的实验环境
  • 先建生产环境服务器,后面可以通过生成镜像克隆node环境
      • 修改主机名
      • 配置yum源
      • 关闭防火墙
      • 关闭selinux
      • 配置时间同步
      • 配置主机 hosts 文件,相互之间通过主机名互相访问 **192.168.40.180**为你的内网IP
      • 修改机器内核参数
      • 重启后模块会失效,配置开机自动加载模块的脚本
      • 配置安装k8s组件需要的阿里云的repo源
      • 安装基础软件包
      • 备注:docker也要安装,docker跟containerd不冲突,安装docker是为了能基于dockerfile构建镜像
      • 安装containerd服务
      • 修改/etc/crictl.yaml文件
      • 安装初始化k8s需要的软件包
      • 设置容器运行时
      • k8smaster1和k8snode1都需要上传k8s_1.25.0.tar.gz 镜像包
      • 上传calico.tar.gz到k8smaster1上
  • 关闭服务器生成镜像,克隆出node节点
  • 如果初始化有问题,k8s重新初始化
  • 添加第一个工作节点
  • 安装kubernetes网络组件-Calico
      • 可以把k8snode1的ROLES变成work
  • 测试在k8s创建pod是否可以正常访问网络

k8s环境规划:

podSubnet(pod网段) 10.244.0.0/16
serviceSubnet(service网段): 10.96.0.0/12

实验环境规划:
操作系统:centos7.5
配置: 2Gib内存/4vCPU/50G硬盘

在这里插入图片描述

初始化安装k8s集群的实验环境

先建生产环境服务器,后面可以通过生成镜像克隆node环境

修改主机名

hostnamectl set-hostname k8smaster1 && bash  #k8smaster1 为服务器名称

配置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
yum makecache

关闭防火墙

systemctl stop firewalld.service   #停止firewall
systemctl disable firewalld.service    #禁止firewall开机启动
firewall-cmd --state          #查看防火墙状态
yum install -y iptables-services     #安装iptables
service iptables stop && systemctl  disable iptables   #停用iptables并关闭开机启动iptables
service iptables status
iptables -F    #清空防火墙规则

关闭selinux

setenforce 0  
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
getenforce   #查看是否为Disabled
swapoff -a  #关闭交换分区swap,提升性能

配置时间同步

yum install -y ntpdate ntp
ntpdate cn.pool.ntp.org   
#每小时进行时间同步 
echo "* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org" >>/var/spool/cron/root
systemctl restart crond   #重启计划任务

配置主机 hosts 文件,相互之间通过主机名互相访问 192.168.40.180为你的内网IP

rm -rf /etc/hosts
cat > /etc/hosts <<EOF    
192.168.40.180 k8smaster1
192.168.40.181 k8snode1
EOF

修改机器内核参数

modprobe br_netfilter
echo "modprobe br_netfilter" >> /etc/profile
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf

重启后模块会失效,配置开机自动加载模块的脚本

cat> /etc/rc.sysinit <<EOF
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
EOF

在/etc/sysconfig/modules/目录下 新建文件如下

cat> /etc/sysconfig/modules/br_netfilter.modules <<EOF
modprobe br_netfilter
EOF
#增加权限
chmod 755 /etc/sysconfig/modules/br_netfilter.modules   
lsmod |grep br_netfilter    #重启机器模块也会自动加载

配置安装k8s组件需要的阿里云的repo源

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
EOF

安装基础软件包

yum install -y device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack telnet ipvsadm

备注:docker也要安装,docker跟containerd不冲突,安装docker是为了能基于dockerfile构建镜像

yum install yum-utils -y
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install  docker-ce  -y
systemctl enable docker --now

配置docker镜像加速器和驱动

cat> /etc/docker/daemon.json <<EOF
{"registry-mirrors":["https://vh3bm52y.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
} 
EOF
systemctl restart docker #重启docker

安装containerd服务

yum install  containerd.io-1.6.6 -y
mkdir -p /etc/containerd #生成 containerd 的配置文件
containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.toml
#把SystemdCgroup = false修改成SystemdCgroup = true
#把sandbox_image = "k8s.gcr.io/pause:3.6"修改成sandbox_image="registry.aliyuncs.com/google_containers/pause:3.7"
systemctl enable containerd  --now  #配置 containerd 开机启动,并启动 containerd

修改/etc/crictl.yaml文件

cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF

配置containerd镜像加速器,k8s所有节点均按照以下配置:

vim /etc/containerd/config.toml
#找到config_path = "",修改成如下目录:
config_path = "/etc/containerd/certs.d"
mkdir /etc/containerd/certs.d/docker.io/ -p
cat>/etc/containerd/certs.d/docker.io/hosts.toml<<EOF
[host."https://vh3bm52y.mirror.aliyuncs.com",host."https://registry.docker-cn.com"]capabilities = ["pull"]
EOF
systemctl restart containerd #重启containerd

安装初始化k8s需要的软件包

安装1.25

yum install -y kubelet-1.25.0 kubeadm-1.25.0 kubectl-1.25.0
systemctl enable kubelet

设置容器运行时

crictl config runtime-endpoint /run/containerd/containerd.sock

k8smaster1和k8snode1都需要上传k8s_1.25.0.tar.gz 镜像包

k8s_1.25.0.tar.gz链接:https://pan.baidu.com/s/1ytLFwRB3oHxTGu1DPG9YIg?pwd=r5p1
提取码:r5p1

ctr -n=k8s.io images import k8s_1.25.0.tar.gz
crictl images  #查看镜像

上传calico.tar.gz到k8smaster1上

上传calico.tar.gz到k8smaster1上,使用yaml文件安装calico 网络插件 。
链接:https://pan.baidu.com/s/17MW_un5N1-3w-yJOSNUYhw?pwd=seoz
提取码:seoz

ctr -n=k8s.io images import calico.tar.gz

关闭服务器生成镜像,克隆出node节点

使用kubeadm初始化k8s集群
在master执行,确认服务启动正常

systemctl restart docker
systemctl status docker
systemctl restart containerd
systemctl status containerd
kubeadm config print init-defaults > kubeadm.yaml

使用kubeadm初始化k8s集群
根据我们自己的需求修改配置,比如修改 imageRepository 的值,kube-proxy 的模式为 ipvs,初始化节点的时候需要指定cgroupDriver为systemd

cat> kubeadm.yaml <<EOF
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.40.180 #控制节点的 ipbindPort: 6443
nodeRegistration:criSocket: unix:///run/containerd/containerd.sockimagePullPolicy: IfNotPresentname: k8smaster1 #控制节点主机名taints: null
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:local:dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers #指定阿里云镜像仓库地址
kind: ClusterConfiguration
kubernetesVersion: 1.25.0 #k8s 版本
networking:dnsDomain: cluster.localpodSubnet: 10.244.0.0/16 #指定 pod 网段, 需要新增加这个serviceSubnet: 10.96.0.0/12  #指定 Service 网段
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
EOF

基于kubeadm.yaml初始化k8s集群

kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

出现如下截图就成功了

在这里插入图片描述

如果遗忘了节点的token可以在master节点执行下列命令获取token

kubeadm token create --print-join-command

配置kubectl的配置文件config,相当于对kubectl进行授权,这样kubectl命令可以使用这个证书对k8s集群进行管理

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 nodes

如果初始化有问题,k8s重新初始化

kubeadm reset
rm -rf /root/.kube
rm -rf /etc/cni/net.d

修改完一些配置比如kubeadm-config.yaml 后,重新初始化

kubeadm init --config kubeadm.yaml --ignore-preflight-errors=SystemVerification

添加第一个工作节点

在k8snode1服务器上修改主机名

hostnamectl set-hostname k8snode1 && bash  #k8snode1 为服务器名称

在k8snode1节点执行上面获取到的值,并添加参数–ignore-preflight-errors=SystemVerification

kubeadm join 172.27.0.10:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:5d85ecacdc1520befa8fc33dfac4f16d03893888ba65949a02c293b26336efc4  –ignore-preflight-errors=SystemVerification	

出现下列截图证明成功加入了

在这里插入图片描述

安装kubernetes网络组件-Calico

镜像已经在 “上传calico.tar.gz到k8smaster1上” 这一步上传了
仍需上传calico.yaml到k8smaster1上,使用yaml文件安装calico 网络插件 。
链接:https://pan.baidu.com/s/1MzhaKeNdaHB7gwvhPTCMOg?pwd=91vs
提取码:91vs

kubectl apply -f  calico.yaml
#注:在线下载配置文件地址是:https://docs.projectcalico.org/manifests/calico.yaml

等两分钟查看集群状态

kubectl get pod -n kube-system 
kubectl get nodes

在这里插入图片描述

#STATUS状态是Ready,说明k8s集群正常运行了

可以把k8snode1的ROLES变成work

可以看到k8snode1的ROLES角色为空,就表示这个节点是工作节点。
按照如下方法:

kubectl label node k8snode1 node-role.kubernetes.io/worker=worker

测试在k8s创建pod是否可以正常访问网络

把busybox-1-28.tar.gz上传到k8snode1、k8snode2节点,手动解压
链接:https://pan.baidu.com/s/1HdG5Zv3LThn4H5n6-bOxDQ?pwd=kyue
提取码:kyue
busybox要用指定的1.28版本,不能用最新版本,最新版本,nslookup会解析不到dns和ip

k8smaster1和k8snode1节点都需要执行

ctr -n k8s.io images import busybox-1-28.tar.gz

在k8smaster1 执行

kubectl run busybox --image docker.io/library/busybox:1.28  --image-pull-policy=IfNotPresent --restart=Never --rm -it busybox -- sh
ping www.baidu.com

相关文章:

学习笔记十三:云服务器通过Kubeadm安装k8s1.25,供后续试验用

Kubeadm安装k8s1.25 k8s环境规划&#xff1a;初始化安装k8s集群的实验环境先建生产环境服务器&#xff0c;后面可以通过生成镜像克隆node环境修改主机名配置yum源关闭防火墙关闭selinux配置时间同步配置主机 hosts 文件&#xff0c;相互之间通过主机名互相访问 **192.168.40.18…...

【Maven】Maven配置国内镜像

文章目录 1. 配置maven的settings.xml文件1.1. 先把镜像mirror配置好1.2. 再把仓库配置好 2. 在idea中引用3. 参考资料 网上配置maven国内镜像的文章很多&#xff0c;为什么选择我&#xff0c;原因是&#xff1a;一次配置得永生、仓库覆盖广、仓库覆盖全面、作者自用的配置。 1…...

ChatGPT有几个版本,哪个版本最强,如何选择适合自己的?

​ChatGPT就像内容生产界的瑞士军刀。它可以是数学导师、治疗师、职业顾问、编程助手&#xff0c;甚至是旅行指南。只要你知道如何让它做你想做的事&#xff0c;ChatGPT几乎可以提供你要的任何东西。 但重要的是&#xff0c;你知道哪个版本的ChatGPT最能满足你的需求吗&#x…...

pg_standby备库搭建

1.主库 1.1主库参数文件修改 -- 该路径也需要在从库创建 mkdir -p /postgresql/archive chown -R postgres.postgres /postgresql/archive-- 主库配置归档 wal_levelreplica archive_modeon archive_commandcp %p /postgresql/archive/%f restore_commandcp /postgresql/arch…...

RNNLSTM

文章目录 前言引言应用示例-槽填充(slot filling)-订票系统二、循环神经网络(RNN)三、Long Short-term Memory (LSTM)LSTM原理[总结](https://zhuanlan.zhihu.com/p/42717426)LSTM例子lstm的训练RNN不但可以N2NMany2One(输入是一个矢量序列,但输出只有一个矢量)Many2Ma…...

到底什么是前后端分离

目录 Web 应用的开发主要有两种模式&#xff1a; 前后端不分离 前后端分离 总结 Web 应用的开发主要有两种模式&#xff1a; 前后端不分离 前后端分离 理解它们的区别有助于我们进行对应产品的测试工作。 前后端不分离 在早期&#xff0c;Web 应用开发主要采用前后端不…...

【React】精选5题

第1题&#xff1a;简述下 React 的生命周期&#xff1f;每个生命周期都做了什么&#xff1f; React 组件的生命周期可以分为三个阶段&#xff1a;挂载阶段、更新阶段和卸载阶段。每个生命周期方法都有特定的目的和功能。 挂载阶段&#xff1a; constructor&#xff1a;组件的构…...

MUR2080CT- ASEMI二极管的特性和应用

编辑-Z 本文将详细介绍MUR2080CT二极管的特性和应用。首先&#xff0c;将介绍MUR2080CT二极管的基本结构和工作原理。然后&#xff0c;将探讨MUR2080CT二极管的特性&#xff0c;包括正向电压降、反向漏电流和反向恢复时间等。接下来&#xff0c;将介绍MUR2080CT二极管在电源、…...

安全测试国家标准解读——资源管理和内存管理

下面的系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解&#xff0c;该标准是2020年4月28日&#xff0c;由国家市场监督管理总局、国家标准化管理委员会发布&#xff0c;2020年11月01日开始实施。我们对该标准中一些常见的漏洞进行了梳理&…...

3D元宇宙游戏,或许能引爆新的文娱消费增长点

从去年开始&#xff0c;在互联网上&#xff0c;一个名为【神念无界-源起山海】的元宇宙游戏项目火了。除了可以在游戏内体验独战、团队式作战等3D古风经典游戏场景和玩法&#xff0c;还有钓鱼增加能量、情侣姻缘一线牵&#xff0c;结婚等多元化逼真效果与玩法&#xff0c;这令很…...

(学习笔记-IP)IP基础知识

基本认识 IP在TCP/IP参考模型中处于第三层&#xff0c;也就是网络层。 网络层的主要作用是&#xff1a;实现主机与主机之间的通信&#xff0c;也叫点对点的通信。 网络层与数据链路层的关系&#xff1a; MAC的作用是实现直连的两个设备之间通信&#xff0c;而IP负责没有直连的…...

神经数据库:用于使用 ChatGPT 构建专用 AI 代理的下一代上下文检索系统 — (第 2/3 部分)

书接上回理解构建LLM驱动的聊天机器人时的向量数据库检索的局限性 - &#xff08;第1/3部分&#xff09;_阿尔法旺旺的博客-CSDN博客 其中我们强调了&#xff08;1&#xff09;嵌入生成&#xff0c;然后&#xff08;2&#xff09;使用近似近邻&#xff08;ANN&#xff09;搜索…...

一文6个概念从0到1带你成功入门自动化测试【0基础也能看懂系列】

自动化测试有以下几个概念&#xff1a; 单元测试集成测试E2E 测试快照测试测试覆盖率TDD 以及 BDD 等 简述 项目开发过程中会有几个经历。 版本发布上线之前&#xff0c;会有好几个小时甚至是更长时间对应用进行测试&#xff0c;这个过程非常枯燥而痛苦代码的复杂度达到了一…...

C++OpenCV(5):图像模糊操作(四种滤波方法)

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 &#x1f506; OpenCV项目地址及源代码&#xff1a;点击这里 文章目录 图像模糊操作均值滤波高斯滤波中值滤波双边滤波 图像模糊操作 关于图片的噪声&#xff1a;指的是图片中存在的不必要或者多余的干扰数…...

关于质数筛——数论

埃式筛法 #include <bits/stdc.h> using namespace std; bool vis[100000010]; //标记数组 int n; int main(){scanf("%d",&n);vis[0]vis[1]1;for(int i2;i*i<n;i){ //优化1 if(vis[i]!1){for(int ji*i;j<n;ji){ //优化2 vis[j]1; //0是质数&#…...

Spring Boot 应用程序生命周期扩展点妙用

文章目录 前言1. 应用程序生命周期扩展点2. 使用场景示例2.1 SpringApplicationRunListener2.2 ApplicationEnvironmentPreparedEvent2.3 ApplicationPreparedEvent2.4 ApplicationStartedEvent2.5 ApplicationReadyEvent2.6 ApplicationFailedEvent2.7 ApplicationRunner 3. 参…...

【Nodejs】操作mongodb数据库

1.简介 Mongoose是一个让我们可以通过Node来操作MongoDB的模块。Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装&#xff0c;并提供了更多的功能。在大多数情况下&#xff0c;它被用来把结构化的模式应用到一个MongoDB集合&#xff0c;并…...

SQL-每日一题【619.只出现一次的最大数字】

题目 MyNumbers 表&#xff1a; 单一数字 是在 MyNumbers 表中只出现一次的数字。 请你编写一个 SQL 查询来报告最大的 单一数字 。如果不存在 单一数字 &#xff0c;查询需报告 null 。 查询结果如下例所示。 示例 1&#xff1a; 示例 2&#xff1a; 解题思路 1.题目要求我…...

紫光FPGA试用--软件篇

目录 一 软件安装启动 二 如何打开IP核&#xff1f;查看/修改现有IP核参数&#xff1f; 三 如何定义引脚&#xff1f; 四 如何下载code进入FPGA? 1. 下载到FPGA芯片内&#xff1a; 2.下载到外部FLASH中 五 如何进入在线调试模式&#xff0c;调试步骤 操作步骤&#xff…...

PDF添加水印以及防止被删除、防止编辑与打印

方法记录如下&#xff1a; 1、添加水印&#xff1b; 2、打印输出成一个新的pdf&#xff1b; 3、将pdf页面输出成一张张的图片&#xff1a;&#xff08;福昕pdf操作步骤如下&#xff09; 4、将图片组装成一个新的pdf&#xff1a;&#xff08;福昕pdf操作步骤如下&#xff09;…...

el-tree转换为表格样式的记录2

上一篇文章记录的是自己将树状数据转换为表格形式。但是出现了一个小bug&#xff0c;点击子节点时候会选中父节点&#xff0c;这个是正常需求没问题。但是我点击父节点时候取消所有子节点&#xff0c;父节点 选择也会失去&#xff0c;这是我不想要执行的。例如一个页面里面有主…...

MS1826B HDMI 1进4出 视频拼接芯片

MS1826B 是一款多功能视频处理器&#xff0c;包含 4 路独立 HDMI 音视频输出通道、1 路 HDMI 音视 频输入通道以及 1 路独立可配置为输入或者输出的 SPDIF、I2S 音频信号。支持 4 个独立的字库定 制型 OSD&#xff1b;可处理隔行和逐行视频或者图形输入信号&#xff1b;有四路独…...

Spring之注解

SpringIOC注解 组件添加标记注解&#xff1a; ​ Component&#xff1a;该注解标记类表示该类为一个普通类&#xff0c;表示为IOC中的一个组件bean ​ Repository&#xff1a;该注解用于将数据访问层&#xff08;Dao层&#xff09;的类标识为Spring中的Bean ​ Service&…...

【UniApp开发小程序】悬浮按钮+出售闲置商品+商品分类选择【基于若依管理系统开发】

文章目录 界面效果界面实现悬浮按钮实现商品分类选择界面使元素均匀分布 闲置商品描述信息填写界面价格校验 界面效果 【悬浮按钮】 【闲置商品描述信息填写界面】 【商品分类选择界面】 【分类选择完成】 界面实现 悬浮按钮实现 悬浮按钮漂浮于页面之上&#xff0c;等页面…...

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

一、目标 在Hive的ODS层建外部表&#xff0c;然后加载HDFS中的CSV文件数据 注意&#xff1a;CSV文件中含有未解析的JSON格式的字段数据&#xff0c;并且JSON字段中还有逗号 二、第一次建外部表&#xff0c;直接以&#xff0c;分隔行字段&#xff0c;结果JSON数据只显示一部分…...

rust gtk 桌面应用 demo

《精通Rust》里介绍了 GTK框架的开发&#xff0c;这篇博客记录并扩展一下。rust 可以用于桌面应用开发&#xff0c;我还挺惊讶的&#xff0c;大学的时候也有学习过 VC&#xff0c;对桌面编程一直都很感兴趣&#xff0c;而且一直有一种妄念&#xff0c;总觉得自己能开发一款很好…...

《嵌入式 - 工具》J-link读写MCU内部Flash

1 J-Link简介 J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR&#xff0c;ADS&#xff0c;KEIL&#xff0c;WINARM&#xff0c;RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真&#xff0c;是学…...

算法练习-LeetCode1071. Greatest Common Divisor of Strings

题目地址&#xff1a;LeetCode - The Worlds Leading Online Programming Learning Platform Description: For two strings s and t, we say "t divides s" if and only if s t ... t (i.e., t is concatenated with itself one or more times). Given two strin…...

Nuget不小心用sudo下载后怎么在user里使用

问题发生 协同开发的过程中&#xff0c;同时在dotnet里面添加了nuget的grpc包&#xff0c;在不清楚的情况下执行自动生成脚本&#xff0c;下载nuget包失败&#xff0c;说是权限不足&#xff0c;于是就使用了sudo进行自动生成&#xff0c;结果在下一次重新打包的过程中&#xff…...

软件测试技能大赛环境搭建及系统部署报告

环境搭建及系统部署报告 环境搭建与配置过程&#xff08;附图&#xff09; JDK环境变量配置截图 【截取JDK环境变量配置截图】 查看JDK版本信息截图 【截取使用命令查看JDK版本信息截图&#xff0c;必须截取查看信息成功截图】 root账号成功登录MySQL截图 【截取使用root账…...