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

大模型学习八:‌Sealos 私有化部署之VMware 安装ubuntu22.04 虚拟机安装(实操)

一、说明

windows 11

ubuntu22.04.5

安装5个虚拟机,3个master 2个node

二、安装VMware12

三、规划虚拟机需求分析

0、服务器基本要求

  • 每个集群节点应该有不同的主机名。
  • 所有节点的时间需要同步。
  • 建议使用干净的操作系统来创建集群。不要自己装 Docker!
  • 支持大多数 Linux 发行版,例如:Ubuntu、Debian、CentOS、Rocky linux。
  • 系统内核版本在 5.4 及以上
  • 必须使用 root 用户安装!

推荐使用 Ubuntu 22.04 LTS 操作系统,内核版本在 5.4 及以上,配置如下:

操作系统内核版本CPU内存存储MastersNodes
Ubuntu 22.04 LTS≥ 5.48C16GB100GB奇数台任意

 Kubernetes 和 Sealos Cloud 的系统组件在每个 Master 节点上大约需要 2 核心 (2c) 和 2GB 内存 (2g),在每个 Node 节点上则需要大约 1 核心 (1c) 和 1GB 内存 (1g),请确保集群中每个节点都有足够的计算资源以支持系统组件的运行。

  • 所有节点之间网络互通;
  • 需要在 Kubernetes 集群的第一个 Master 节点上执行脚本,目前集群外的节点不支持集群安装
  • 所有节点之间可以互相通信。
  • 需要一个域名用于访问 Sealos 及相关服务;
  • 如果您没有域名,可以使用 nip.io 提供的免费域名服务。

Sealos 需要使用证书来保证通信安全,默认在您不提供证书的情况下我们会使用 cert-manager 来自动签发证书 

如果您能提供证书,证书需要解析下列域名 (假设您提供的域名为:cloud.example.io):

  • *.cloud.example.io
  • cloud.example.io

1、Master 节点需要开放的端口

Master 节点运行控制平面组件(如 API Server、etcd、Controller Manager、Scheduler),需要开放以下端口:

端口协议用途开放范围
6443TCPKubernetes API Server对所有 Node 和外部客户端
2379-2380TCPetcd 数据库通信仅其他 Master 节点(HA 集群)
10250TCPKubelet API(与 Pod/容器通信)集群内所有节点
10259TCPkube-scheduler 的 HTTPS 端口集群内部通信
10257TCPkube-controller-manager 的 HTTPS 端口集群内部通信

2、Node(Worker)节点需要开放的端口

Node 节点运行工作负载(Pod),需要开放以下端口:

端口协议用途开放范围
10250TCPKubelet API(与 Master 通信)集群内所有节点
30000-32767TCPNodePort 服务的外部访问对外部客户端开放
8472UDPFlannel CNI 的 VXLAN 隧道所有节点间(按 CNI 需求)
179TCPCalico CNI 的 BGP 协议所有节点间(按 CNI 需求)

3、所有节点(Master + Node)都需要开放的端口

某些端口在集群中所有节点间需要互通:

端口协议用途
22TCPSSH 管理访问
ICMP节点间网络连通性检查(ping)

4、 操作建议

  • 仅开放必要的端口,避免安全隐患。

  • 例如 2379-2380(etcd)仅在多 Master 集群中开放给其他 Master 节点。

5、分析表格

服务器名称ip开放端口说明
base192.168.1.100

22,ICMP,10250

这是一个基本虚拟机,平时不用,用来克隆其他master和node1,所以安装基本配置,开放基本端口
master1192.168.1.101

6443

2379-2380

10259

10257

80

443

通过base克隆
master2192.168.1.102

6443

2379-2380

10259

10257

通过master1克隆
master3192.168.1.103

6443

2379-2380

10259

10257

通过master1克隆
node1192.168.1.111

30000-32767

8472

179

通过base克隆
node2192.168.1.112

30000-32767

8472

179

通过node1克隆

三、安装Base虚拟机

1、新建虚拟机

打开VMware Workstation,点击 “创建新的虚拟机”

选择 “典型” 安装模式,点击下一步,

选择安装来源,点击 “安装程序光盘映像文件(iso)”,浏览并选择下载好的Ubuntu 22.04 LTS镜像(如ubuntu-22.04.4-live-server-amd64.iso)。

2、配置虚拟机参数

设置用户名和密码
  • 输入虚拟机名称(如Ubuntu-Node1)。

指定磁盘容量

  • 建议分配 60GB,选择 “将虚拟磁盘拆分成多个文件”(便于迁移)。

  • 下一步

自定义硬件配置

  • 点击 “自定义硬件”,调整以下参数:

    • 内存:分配3GB(根据宿主机总内存调整)。

    • 处理器:分配处理器数量1,内核数量为6。

    • 网络适配器:选择 桥接模式(虚拟机直接使用物理网络)或 NAT模式(虚拟机共享宿主机IP)。我们选桥接模式

  • 点击关闭后完成配置。

3、安装Ubuntu 22.04系统

启动安装向导

  • 启动虚拟机,自动加载Ubuntu安装界面。

  • 选择语言为 English(推荐,避免编码问题),回车继续

系统配置

  1. 网络配置(关键步骤)

    • 安装程序会自动检测网络连接(需宿主机已联网)。

    • 如果使用DHCP(动态IP),直接按回车跳过。

    • 如需静态IP(推荐用于集群部署):

      • 选择当前网络接口(如ens33),按回车进入配置。

      • 关闭IPv4的 “Automatic”,手动输入以下信息:

        • Subnet(子网):192.168.1.0/24(根据实际网络环境调整)

        • Address(IP地址):192.168.1.200(依次为10~13分配给4台虚拟机)

        • Gateway(网关):192.168.1.1(通常为路由器IP)

        • Name servers(DNS):8.8.8.8,8.8.4.4

      • 保存配置并返回。

存储配置

  • 选择磁盘(默认Use an entire disk),按回车确认。并把free 部分设置为home

  • 确认分区方案(默认即可),选择 Done 并提交更改。

用户名和密码

用户名的都为sealos,由于要克隆,所以每个都一样

服务器名为node1,node2,master1,master2.,master3,base

密码为123456

 SSH配置

  • 勾选 “Install OpenSSH server”(允许远程SSH连接)。

完成安装

  • 等待系统安装完成,重启虚拟机

 4、开启root用户登陆

设置root用户密码:
sudo passwd root

修改profile文件
sudo apt install vim

sudo vim /root/.profile
注释掉: mesg n 2> /dev/null || true
添加: tty -s && mesg n || true\

修改SSH配置文件
sudo vim /etc/ssh/sshd_config

找到 #PermitRootLogin prohibit-password
改为 PermitRootLogin yes

sudo systemctl restart ssh

重启
sudo reboot

启动直接root登录

5、初始化环境 

# 定期检查并应用系统和应用程序的安全补丁。Ubuntu会定期发布安全更新。确保你的系统是最新的。
apt update && apt upgrade && apt dist-upgrade && apt autoremove && apt clean && reboot
# 安装一些常用的工具和库,这些工具可以帮助你更高效地工作

apt install git curl wget htop

apt install iputils-ping

apt-get install openvswitch-switch
# 修改时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改linux参数

vim /etc/security/limits.conf
#后面添加
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536

含义如下:
soft nproc: 可打开的文件描述符的最大数(软限制)
hard nproc: 可打开的文件描述符的最大数(硬限制)
soft nofile:单个用户可用的最大进程数量(软限制)
hard nofile:单个用户可用的最大进程数量(硬限制)

6、配置网络 

前面安装时已经配置了,这里是对的

node1---------192.168.1.101

要修改ip,必须

#如果没这个问题直接创建,在后面
vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 
network: {config: disabled}

vim /etc/netplan/50-cloud-init.yaml


network:
    ethernets:
        ens33:
            addresses:
            - 192.168.1.101/24
            nameservers:
                addresses:
                - 8.8.8.8
                - 8.8.8.4
                search: []
            routes:
            -   to: default
                via: 192.168.1.1
    version: 2

#如果修改了执行下面命令

netplan apply

7、验证网络

ping baidu.com

# 如果安装了其它虚拟机,也要ping

ping 192.168.1.102 

 8、更新etc/hosts文件

更新所有节点的/etc/hosts文件,添加IP与主机名映射:

echo "192.168.1.111 node1" | tee -a /etc/hosts
echo "192.168.1.112 node2" | tee -a /etc/hosts
echo "192.168.1.101 master1" | tee -a /etc/hosts
echo "192.168.1.102 master2" | tee -a /etc/hosts
echo "192.168.1.102 master3" | tee -a /etc/hosts

 9、开放端口

前面分析表格确定需要开放22,ICMP,10250三个端口

apt-get install ufw -y

ufw enable

ufw status

ufw allow 22/tcp        # SSH
ufw allow 10250/tcp   ## 允许 Master 访问 Node 的 Kubelet

10、时间同步

apt update
apt install chrony

vim /etc/chrony/chrony.conf
添加
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst

# 重启并查看同步状态
systemctl status chrony
systemctl start chrony
systemctl enable chrony
systemctl restart chrony

11、内部参数调整

内核参数调整(所有节点)
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sudo sysctl --system

12、关闭swap

# 关闭swap
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

四、安装master虚拟机

1、关闭模板虚拟机: 

shutdown now

2、克隆虚拟机

  • 右键模板虚拟机,选择 “管理” > “克隆”

  • 选择 “创建完整克隆”,命名新虚拟机(如Ubuntu-Master1)。

  • Ubuntu-Master1为模板重复此步骤生成剩余Ubuntu-Master2和Ubuntu-Master3 两台虚拟机。

3、修改mac

双击

 

克隆后mac地址相同,同时启动会冲突,请一定要改 

4、修改克隆机的静态IP和主机名

  • 启动克隆后的虚拟机,编辑网络配置文件(vim /etc/netplan/50-cloud-init.yaml),修改IP地址(如192.168.1.102,192.168.1.103,192.168.1.104)按前面规划的来。然后netplan apply

  • 修改主机名:

    hostnamectl set-hostname master1  # 依次改为master2~3

5、开放master端口

6443
2379-2380
10259
10257

ufw allow 6443/tcp        # 允许 kubectl 和其他节点访问 API Server
ufw allow 2379:2380/tcp  # 仅多 Master 高可用集群需要
# ufw allow 10250/tcp      # 允许节点与 Master 的 Kubelet 通信
ufw allow 10259/tcp      # 调度器通信(按需开放)
ufw allow 10257/tcp      # 控制器管理器通信(按需开放)


root@master1:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
10250/tcp                  ALLOW       Anywhere
6443/tcp                   ALLOW       Anywhere
2379:2380/tcp              ALLOW       Anywhere
10259/tcp                  ALLOW       Anywhere
10257/tcp                  ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
10250/tcp (v6)             ALLOW       Anywhere (v6)
6443/tcp (v6)              ALLOW       Anywhere (v6)
2379:2380/tcp (v6)         ALLOW       Anywhere (v6)
10259/tcp (v6)             ALLOW       Anywhere (v6)
10257/tcp (v6)             ALLOW       Anywhere (v6)
 

6、再安装两台master虚拟机

这次用master1克隆

  • 克隆
  • 修改mac ,有时候感觉变了啊,不动,反正我碰到相同的
  • 启动
  • 修改ip地址:102和103
  • 修改主机名:master2和master3

五、安装Node虚拟机

 1、关闭Base虚拟机: 

shutdown now

2、克隆虚拟机

  • 右键模板虚拟机,选择 “管理” > “克隆”

  • 选择 “创建完整克隆”,命名新虚拟机(如Ubuntu-Node1)。

  • Ubuntu-Node1为模板重复此步骤生成剩余Ubuntu-Node2虚拟机。

3、修改mac

和前面相同 

4、修改克隆机的静态IP和主机名

  • 启动克隆后的虚拟机,编辑网络配置文件(vim /etc/netplan/50-cloud-init.yaml),修改IP地址(如192.168.1.111,192.168.1.112)按前面规划的来。然后netplan apply

  • 修改主机名:

    hostnamectl set-hostname node1  # 依次改为node2

 5、开放master端口

30000-32767
8472
179

# sudo ufw allow 10250/tcp          # 允许 Master 访问 Node 的 Kubelet
ufw allow 30000:32767/tcp    # 允许外部访问 NodePort 服务
ufw allow 8472/udp           # Flannel VXLAN(按需)
ufw allow 179/tcp            # Calico BGP(按需)

6、再安装一台node虚拟机

这次用node1克隆

  • 克隆
  • 修改mac ,有时候感觉变了啊,不动,反正我碰到相同的
  • 启动
  • 修改ip地址:112
  • 修改主机名:node2

六、配置SSH免密登录

全部虚拟机开机,保证虚拟机互相都能ping通,很重要,要做喔

master1,master2,master3,node1,node2

在master1执行代码

检查一下,其实每个虚拟机都一样,/root/.ssh目录下有一个空文件authorized_keys


root@master1:~# ls -a
.  ..  .bash_history  .bashrc  .cache  .profile  .ssh  .viminfo
root@master1:~# cd .ssh
root@master1:~/.ssh# ls
authorized_keys
root@master1:~/.ssh# cat authorized_keys
root@master1:~/.ssh#
 

SSH免密登录
 
#在master1虚拟机主节点生成密钥并分发到其他节点,在执行代码之前,/root/.ssh/authorized_keys里是空的
 
ssh-keygen -t rsa  #一路回车
#master1执行后,有了三个文件,其它虚拟机这时候和他无关
root@master1:~/.ssh# ls
authorized_keys  id_rsa  id_rsa.pub

 

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.102
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.103
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.111
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.112

#分别执行上面4条命令,分别键入yes和root的登录密码123456,
# 我们这时候去看
# master1 
root@master1:~/.ssh# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts  known_hosts.old

# master2

root@master2:~/.ssh# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCtnMh7FsGEdGTLqRhwbcV5GUnyy7DH3u6cGiOE4wNpvqu0tX6ZDXn/j7MaHfkigPU0a3hOoRhkxjyl/KNXDbxJgrq126al9X1dzQQg1owG3n0BewLcga7uWXNFJSCsMDp1Yl8nxt/uynvBcj0CVz7+nJLET6jojVYk04ti7iJCz6oX9yVs+g7txNrtvtYbI2erl/MLf+/rPIz84h0QmD8xrGGWVvM9AmGRe+22ppTXfhsEBXPzrifogXRkpiFQ5za0GA41SSoRWERrCYqMIBMQLz96y6OCUWWKDOT1OUvrpyCQaz72YH7sIxwIyMZtBWZKlL1Y8MWsrMRAXYiwv6JPgbo8tE1vWVGhrxRK0JeSUPNDCvk70IsKZVpUaJCzPkVxgjFMl7oeEVKjzlGHu7vUk6Js/Uc1vHMEdZtCg+bBe3pV7E9WUusaHootNihvVOjd1tjaUQQF9T20f07Mtqws75GZJEbHlHGV0Ogjcr08t0QdmijzEsx6e4m45poOsgE= root@master1

#其它几个都一样,空文件有东西了,这个就是key

master1 测试

ssh root@192.168.1.102

root@master1:~/.ssh# ssh root@192.168.1.102
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-136-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
New release '24.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Sat Apr 12 20:18:47 2025 from 192.168.1.9
root@master2:~#这里进入了master2的命令行
 

node1测试连接master1

ssh root@192.168.1.101

不行的

node1测试连接node2

ssh root@192.168.1.112

不行的

只能master1连接其它4个虚拟机,反过来不行,其它互相也不行,这个主要为了在master1中安装集群用的 

我们需要在3个master上都是做一遍,要保证3个master之间是免密互通的

所以我们继续在master2和master3上把上面的重新执行一遍

相关文章:

  • 【产品】ToB产品需求分析
  • 【Java SE】泛型详解
  • GAT-GRAPH ATTENTION NETWORKS(论文笔记)
  • 计算机组成原理笔记(十四)——3.4指令类型
  • 某益网络面经总结
  • 单链表专题(C语言)
  • 基于SpringBoot的电影订票系统(源码+数据库+万字文档+ppt)
  • 架构师面试(三十):IM 分层架构
  • 架构生命周期(高软57)
  • CSS padding(填充)学习笔记
  • C# Winform 入门(16)之图片合成
  • Linux--线程概念与控制
  • 突破边界:从 C# 到 Python 的范式跃迁与实战指南
  • 图像分割基础学习
  • vLLM部署Qwen2.5-Omni 提供API的详细步骤
  • CSE lesson2 chrony服务器
  • CSS margin(外边距)学习笔记
  • Redash 25.1.0 简配部署
  • vscode中gcc编译器中文路径调试成功方法
  • 免费送源码:Java+SpringBoot+MySQL SpringBoot网上宠物领养管理系统 计算机毕业设计原创定制
  • 国台办:提醒相关人员不要假借去第三地名义绕道赴台
  • 招商蛇口:一季度营收约204亿元,净利润约4.45亿元
  • 解放日报:持续拿出排头兵姿态先行者担当
  • 言短意长|新能源领军者密集捐赠母校
  • 直播电商行业代表呼吁:携手并肩伸出援手助力外贸企业攻坚克难
  • 王毅:妥协退缩只会让霸凌者得寸进尺