- Kubernetes的流行程度就不說了,前兩天關(guān)注了另一個產(chǎn)品Rancher。使用它可以快速部署與接管Kubernetes。而且Rancher的部署非常簡單,只需要跑一個容器就完事了。
- 既然這么簡單,那我們就使用Vagrant與Ansible讓它更簡單。
安裝Vagrant + VirtualBox
具體安裝不表了,不是本文知識。相信大家多半都使用過,如果沒有使用過,趕緊學(xué)習(xí)起來。
導(dǎo)入Vagrant Box。這里使用的是Centos 7.5
centos75-with-boxadditions.box下載鏈接: https://pan.baidu.com/s/1U-kJhbY2JirHgw0eP9TBXw 密碼: 1a6b
vagrant box add centos/75 centos75-with-boxadditions.box
或者安裝vagrant插件
$ vagrant plugin install vagrant-disksize vagrant-ignition vagrant-vbguest
定義Vagrantfile,設(shè)置好虛擬機的配置,具體的配置可根據(jù)情況調(diào)整。
# 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
這里的過程很簡單:
- 安裝docker
- 設(shè)置docker的鏡像代理
- 關(guān)閉selinux
- 啟動docker
- 部署rancher2.0
這里將完整的代碼分享,供參考
Rancher Vagrant:https://gitee.com/xhua/rancher-vagrant.git
說明:agent虛擬機只是自動安裝了docker及設(shè)置了docker代理,在上面部署k8s還需要通過rancher生成對應(yīng)的docker命令后在上面運行。
Rancher登錄界面展示.PNG