最近在看有关k8s的一些知识,想手动搭建一套环境来体验一下,本文详细记录一下搭建的过程。
环境
三台Ubuntu系统的虚拟机,其中一台作为master,另外两台作为worker节点
步骤1:安装虚拟机
我的笔记本是一台Macbook Pro,首选安装一个虚拟机软件Vmware Fusion,过程略。
- 下载好Ubuntu镜像,我选择的是
19.04
版本。
- 打开Fusion,选择New,然后选择“Install from disk or image”,continue
- 设置好用户名和密码,中间还可以修改使用的硬盘空间等等,这个过程就不详述了。
- 安装好之后,进入系统,找到“terminal”,安装net-tools和ssh server
sudo apt install net-tools ssh
步骤2:安装docker
- 更新包列表:
sudo apt update
- 让apt支持https方式
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- 添加GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 添加docker源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
- 再次更新apt
sudo apt update
- 确保从Docker repo安装而不是默认的Ubuntu repo
apt-cache policy docker-ce
- 开始安装docker
sudo apt install docker-ce
- 接受所有ip的数据包转发
找到ExecStart,在这上面加入下面一行vi /lib/systemd/system/docker.service
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
- 重启
sudo systemctl daemon-reload sudo service docker restart
步骤3:系统设置
-
关闭防火墙
ufw disable
-
设置系统转发参数
cat <<EOF > /etc/sysctl.d/k8s.conf net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.conf.all.rp_filter = 0 EOF
sysctl -p /etc/sysctl.d/k8s.conf
-
安装ntp服务,同步时钟
sudo apt install ntp
步骤4:复制虚拟机
使用fusion的复制功能,复制出另外两台虚拟机
关掉刚装好的虚拟机,选择Fusion菜单Virtual Machine下面的Create Full Clone,Fusion就会clone出一个一模一样的虚拟机出来,是不是很方便
步骤5:设置免登陆和hosts文件
-
打开三台虚拟机,进入terminal,执行
ifconfig
找到各自的ip地址
-
打开Mac的terminal,输入下面的命令生成ssh公钥
ssh-keygen -t rsa
-
将公钥分别拷贝到三台虚拟机上
scp .ssh/id_rsa.pub user@xxx.xxx.xxx.xxx:
user是虚拟机上的用户名,xxx代表各自的ip地址
-
在虚拟机上将公钥追加到.ssh/authorized_keys文件,并修改权限
cat id_rsa.pub >> .ssh/authorized_keys chmod 600 authorized_keys
-
分别修改每台虚拟机上的hosts文件,用vim编辑器打开/etc/hosts,添加三台虚拟机的hosts信息,下面是我自己的host信息:
192.168.32.131 server01 192.168.32.132 server02 192.168.32.133 server03
ok,到现在为止,基本的安装环境应该是准备好了。