• Kubernetes的流行程度就不说了,前两天关注了另一个产品Rancher。使用它可以快速部署与接管Kubernetes。而且Rancher的部署非常简单,只需要跑一个容器就完事了。
  • 既然这么简单,那我们就使用Vagrant与Ansible让它更简单。

    安装Vagrant + VirtualBox

具体安装不表了,不是本文知识。相信大家多半都使用过,如果没有使用过,赶紧学习起来。

导入Vagrant Box。这里使用的是Centos 7.5

centos75-with-boxadditions.box下载链接: https://pan.baidu.com/s/1U-kJhbY2JirHgw0eP9TBXw 密码: 1a6b

1
vagrant box add centos/75 centos75-with-boxadditions.box

或者安装vagrant插件

1
$ vagrant plugin install vagrant-disksize vagrant-ignition vagrant-vbguest

定义Vagrantfile,设置好虚拟机的配置,具体的配置可根据情况调整。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

RANCHER_SERVER_IP = "192.168.50.100"
RANCHER_AGENT_IP_1 = "192.168.50.101"

Vagrant.configure("2") do |config|

config.vm.box = "centos/75"

config.vm.define "server" do |server|
server.vm.hostname = "server.rancher.local.com"
server.vm.network "public_network", ip: RANCHER_SERVER_IP
server.vm.provider "virtualbox" do |v|
v.name = "server"
v.memory = 2048
v.cpus = 1
end
end

config.vm.define "agent1" do |agent|
agent.vm.hostname = "agent1.rancher.local.com"
agent.vm.network "public_network", ip: RANCHER_AGENT_IP_1
agent.vm.provider "virtualbox" do |v|
v.name = "agent1"
v.memory = 2048
v.cpus = 1
end
end

config.vm.provision "ansible_local" do |ansible|
ansible.playbook = "ansible/playbook.yml"
ansible.groups = {
"servers" => ["server"],
"agents" => ["agent1"]
}
end
end

编写ansible/playbook.yml

这里的过程很简单:

  1. 安装docker
  2. 设置docker的镜像代理
  3. 关闭selinux
  4. 启动docker
  5. 部署rancher2.0

    这里将完整的代码分享,供参考

Rancher Vagrant:https://gitee.com/xhua/rancher-vagrant.git
说明:agent虚拟机只是自动安装了docker及设置了docker代理,在上面部署k8s还需要通过rancher生成对应的docker命令后在上面运行。
Rancher登录界面展示.PNG