最近在看有关k8s的一些知识,想手动搭建一套环境来体验一下,本文详细记录一下搭建的过程。

环境

三台Ubuntu系统的虚拟机,其中一台作为master,另外两台作为worker节点

步骤1:安装虚拟机

我的笔记本是一台Macbook Pro,首选安装一个虚拟机软件Vmware Fusion,过程略。
1. 下载好Ubuntu镜像,我选择的是19.04版本。
2. 打开Fusion,选择New,然后选择“Install from disk or image”,continue 3. 设置好用户名和密码,中间还可以修改使用的硬盘空间等等,这个过程就不详述了。 4. 安装好之后,进入系统,找到“terminal”,安装net-tools和ssh server sudo apt install net-tools ssh

步骤2:安装docker

  1. 更新包列表:

    sudo apt update
    
  2. 让apt支持https方式

    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
  3. 添加GPG密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 添加docker源

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
    
  5. 再次更新apt

    sudo apt update
    
  6. 确保从Docker repo安装而不是默认的Ubuntu repo

    apt-cache policy docker-ce
    
  7. 开始安装docker

    sudo apt install docker-ce
    
  8. 接受所有ip的数据包转发

    vi /lib/systemd/system/docker.service
    

    找到ExecStart,在这上面加入下面一行

    ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
    
  9. 重启

    sudo systemctl daemon-reload
    sudo service docker restart
    

步骤3:系统设置

  1. 关闭防火墙

    ufw disable
    
  2. 设置系统转发参数

    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
    
  3. 安装ntp服务,同步时钟

    sudo apt install ntp
    

步骤4:复制虚拟机

使用fusion的复制功能,复制出另外两台虚拟机
关掉刚装好的虚拟机,选择Fusion菜单Virtual Machine下面的Create Full Clone,Fusion就会clone出一个一模一样的虚拟机出来,是不是很方便

步骤5:设置免登陆和hosts文件

  1. 打开三台虚拟机,进入terminal,执行

    ifconfig
    

    找到各自的ip地址

  2. 打开Mac的terminal,输入下面的命令生成ssh公钥

    ssh-keygen -t rsa
    
  3. 将公钥分别拷贝到三台虚拟机上

    scp .ssh/id_rsa.pub user@xxx.xxx.xxx.xxx:
    

    user是虚拟机上的用户名,xxx代表各自的ip地址

  4. 在虚拟机上将公钥追加到.ssh/authorized_keys文件,并修改权限

    cat id_rsa.pub >> .ssh/authorized_keys
    chmod 600 authorized_keys
    
  5. 分别修改每台虚拟机上的hosts文件,用vim编辑器打开/etc/hosts,添加三台虚拟机的hosts信息,下面是我自己的host信息:

    192.168.32.131 server01
    192.168.32.132 server02
    192.168.32.133 server03
    

ok,到现在为止,基本的安装环境应该是准备好了。