使用vagrant创建centos7集群+搭建k8s集群

链接:https://www.jianshu.com/p/58978fa73551
来源:简书

工具准备

1. 安装 VirtualBox

2. 安装 Vagrant

Vagrantfile

  1. 初始化一个工作目录

比如:~/Document/vagrant

使用命令:vagrant init初始化,会自动生成Vagrantfile文件

  1. 下载centos系统

vagrant box add centos/7

Vagrant Box的中央仓库地址

  1. 配置Vagrantfile文件,创建一个3个节点的虚拟机
Vagrant.configure("2") do |config|
   (1..3).each do |i|
        config.vm.define "node#{i}" do |node|
            # 设置虚拟机的Box
            node.vm.box = "centos/7"

            # 设置虚拟机的主机名
            node.vm.hostname="node#{i}"

            # 设置虚拟机的IP
            node.vm.network "private_network", ip: "192.168.56.#{100+i}"

            # 设置主机与虚拟机的共享目录
            # node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"

            # VirtaulBox相关配置
            node.vm.provider "virtualbox" do |v|
                # 设置虚拟机的名称
                v.name = "node#{i}"
                # 设置虚拟机的内存大小
                v.memory = 2048
                # 设置虚拟机的CPU个数
                v.cpus = 1    ##如果搭建k8s集群此处最小设置为2
            end
        end
   end
end

启动虚拟机
之前介绍的,就是本地搭建集群所需掌握的 Vagrantfile 文件格式的基本内容了。下面介绍如何从这个配置文件来启动这组虚拟机。

将上面的文件保存为 Vagranfile,然后在 Vagranfile 文件所在目录执行:

vagrant up

这时候整个集群启动完毕了。

使用虚拟机
前面说过要连接虚拟机,是要使用虚拟机的 hostname,比如:

vagrant ssh node1

这句命令会以 vagrant 的用户登录到 deploy 虚拟机节点,然后可以用 sudo su 命令获得 root 权限。

用一下指令可以查看虚拟机的 ssh 配置详细情况:

vagrant ssh-config

当我们想暂时关闭虚拟机时可以:

vagrant halt
这个命令会关掉整组虚拟机,要是我们只想关掉 deploy 可以用:

vagrant halt node1
当我们玩腻了,想要删掉虚拟机可以:

vagrant destroy
Vagrant 会每台机子询问一遍,你需要打 3 个 y 来删除这四台机子。

。。。。。
免密登陆
具体请查看最开始的链接

搭建k8s集群

搭建k8s集群
https://blog.csdn.net/qq_30062181/article/details/110095133

补充:

创建一个简单的虚拟机
vagrant创建虚拟机-较详细

1. 安装VirtualBox
2. 安装Vagrant
3. 创建虚拟机
mkdir vagrant-ubuntu
cd vagrant-ubuntu
vagrant box add ubuntu/trusty64
vagrant init ubuntu/trusty64
vagrant up --provider virtualbox
vagrant ssh
vagrant box add: 下载创建虚拟机所依赖的box
vagrant init: 生成创建虚拟机的所依赖的Vagrantfile
vagrant up: 创建虚拟机
vagrant ssh: SSH登陆虚拟机
不妨查看一下Vagrant自动生成的Vagrantfile, 我删除了所有注释:

Vagrant.configure(2) do |config|
   config.vm.box = "ubuntu/trusty64"
end
Vagrantfile的内容非常简单,仅定义虚拟机所依赖的Box为ubuntu/trusty64。Box相当于虚拟机所依赖的镜像文件。因此,这里创建的虚拟机是ubuntu trusty(14.04)。如果你需要创建其他Linux发行版例如Debian或者CentOS,可以在这里搜索对应的Box.

Vagrant虚拟机的默认配置:

用户/密码: vagrant/vagrant
共享目录: 主机上的vagrant-ubuntu目录与虚拟机内的/vagrant目录内容实时同步
内存:512MB
CPU: 1
默认配置并不一定满足开发需求,下一小节将介绍如何进行自定义配置。

之后操作

vagrant登陆后,切换到root账号,设置root的密码

 sudo -i
 passwd

修改 /etc/ssh/sshd_config 文件,(注意,vagrant用户下这个文件是只读的,可能什么也看不见)
修改 ssd_config 里 PermitRootLogin属性 改为yes ,


ssh密码校验开启,可以如下操作:

vi /etc/ssh/sshd_config
开启如下配置:
PasswordAuthentication yes
systemctl restart sshd

还可以免密登陆ssh-keygen
ssh-copy-id

ssh-keygen 产生公钥与私钥对.

ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, 
~./ssh ,和 ~/.ssh/authorized_keys的权利


第一步:生成——在本地机器上使用ssh-keygen产生公钥私钥对 $ ssh-keygen -t rsa

第二步:复制——用ssh-copy-id将公钥复制到远程机器中 $  ssh-copy-id -i .ssh/id_rsa.pub  用户名字@192.168.x.xxx

注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key文件中

最后: 验证——登录到远程机器不用输入密码 $  ssh 用户名字@192.168.x.xxx    Last login: Sun Nov. 16 17:22:33 2008 from 192.168.1.2

vim /etc/hosts
xxxxx node1
xxxxx node2
xxxxx node3
ssh-copy-id -i xx.pub root@node2

你可能感兴趣的:(使用vagrant创建centos7集群+搭建k8s集群)