VirtualBox + ubuntu-22.04 搭建k8s集群(一)-准备虚拟机

727 阅读2分钟
硬件

cpu i5-8500
内存 24gb

目标

搭建三节点集群一个控制节点二个工作节点
网络使用 hostonly + nat 双网卡
hostonly 宿主机可通过ssh连接虚拟机 nat 可联外网

节点nat iphostonly ipcpu数内存磁盘大小
控制节点 master110.0.2.51192.168.56.5142G20G
工作节点1 node110.0.2.61192.168.56.614G40G
工作节点2 node210.0.2.62192.168.56.624G40G

注:本文使用外部etcd只设置一个控制节点。 如果使用内部etcd需要三个以上的控制节点

安装VirtualBox

下载ubuntu

服务器版本 cn.ubuntu.com/download/se…

创建网络

管理 > 工具 > network manager
创建两个网络如下图

image.png

image.png

创建虚拟机

image.png

注意:网卡顺序 网卡1 hostonly 对应下文 enp0s3
网卡2 nat 对应下文 enp0s8

安装 ubuntu

如上图 设置好下载的镜像文件 双击启动开始安装系统
勾选 Install OpenSsh Server

设置节点网络

安装好选择reboot 进入系统
sudo vim /etc/netplan/00-installer-config.yaml

network:
  ethernets:
    enp0s3:
      dhcp4: false
      addresses: [192.168.56.51/24]
    enp0s8:
      addresses: [10.0.2.51/24]
      routes:
        - to: "default"
          via: "10.0.2.1"
      nameservers:
        addresses: [114.114.114.114,8.8.8.8]      
  version: 2

sudo netplan apply

设置root用户密码

sudo passwd

ssh设置允许root远程登录

vim /etc/ssh/sshd_config
修改如下内容 \

#PermitRootLogin prohibit-password
PermitRootLogin yes

sudo service ssh restart

宿主机免密登录虚拟机

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.56.51
注:本人用的是linux系统 windows 可用xshell等工具

宿主机设置别名快捷登录虚拟机

vim ~/.zshrcvim ~/.xprofile

alias km1="ssh root@192.168.56.51"  
alias kn1="ssh root@192.168.56.61"  
alias kn2="ssh root@192.168.56.62"

source ~/.zshrc

接下来的可用宿主机远程连接虚拟机

修改为清华源

sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

添加k8s源

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add
echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" >> /etc/apt/sources.list
apt update

安装前装备

关闭防火墙
ufw disable
关闭swap
swapoff -a
永久关闭swap
sed -i 's#\/swap.img#\#\/swap.img#g' /etc/fstab

modprobe overlay
modprobe br_netfilter
modprobe -- ip_vs
modprobe -- ip_vs_sh
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- nf_conntrack
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 11
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sysctl --system