硬件
cpu i5-8500
内存 24gb
目标
搭建三节点集群一个控制节点二个工作节点
网络使用 hostonly + nat 双网卡
hostonly 宿主机可通过ssh连接虚拟机
nat 可联外网
| 节点 | nat ip | hostonly ip | cpu数 | 内存 | 磁盘大小 |
|---|---|---|---|---|---|
| 控制节点 master1 | 10.0.2.51 | 192.168.56.51 | 4 | 2G | 20G |
| 工作节点1 node1 | 10.0.2.61 | 192.168.56.61 | 4G | 40G | |
| 工作节点2 node2 | 10.0.2.62 | 192.168.56.62 | 4G | 40G |
注:本文使用外部etcd只设置一个控制节点。 如果使用内部etcd需要三个以上的控制节点
安装VirtualBox
略
下载ubuntu
服务器版本 cn.ubuntu.com/download/se…
创建网络
管理 > 工具 > network manager
创建两个网络如下图
创建虚拟机
注意:网卡顺序 网卡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 ~/.zshrc 或 vim ~/.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