set vm box to be hashicorp hosted trusty
I accidently left in the old download URL for coreos even after I switched the box name to be ubuntu, it worked fine for me because I already had that box locally so it didn't try to download. This should resolve this by using the official bento/ubuntu-14.04 box which is a nice minimal image. We also allow the default behaviour of sharing folder to VMs By doing this we can stage our download files in a shared location and speed up subsequent runs significantly. Finally will create more verbose documentation.
This commit is contained in:
parent
ef6a59bbd3
commit
5240465f39
3 changed files with 59 additions and 22 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
.vagrant
|
.vagrant
|
||||||
*.retry
|
*.retry
|
||||||
inventory/vagrant_ansible_inventory
|
inventory/vagrant_ansible_inventory
|
||||||
|
temp
|
||||||
|
|
57
README.md
57
README.md
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png)
|
![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png)
|
||||||
|
|
||||||
##Deploy a production ready kubernetes cluster
|
# Deploy a production ready kubernetes cluster
|
||||||
|
|
||||||
- Can be deployed on **AWS, GCE, OpenStack or Baremetal**
|
- Can be deployed on **AWS, GCE, OpenStack or Baremetal**
|
||||||
- **High available** cluster
|
- **High available** cluster
|
||||||
|
@ -10,12 +10,61 @@
|
||||||
- Support most popular **Linux distributions**
|
- Support most popular **Linux distributions**
|
||||||
- **Continuous integration tests**
|
- **Continuous integration tests**
|
||||||
|
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
To deploy the cluster you can use :
|
To deploy the cluster you can use :
|
||||||
|
|
||||||
* [**kargo-cli**](https://github.com/kubespray/kargo-cli)
|
## kargo-cli
|
||||||
* **vagrant** by simply running `vagrant up`
|
|
||||||
* **Ansible** usual commands
|
[**kargo-cli**](https://github.com/kubespray/kargo-cli)
|
||||||
|
|
||||||
|
## Vagrant
|
||||||
|
|
||||||
|
Assuming you have Vagrant (1.8+) installed with virtualbox (it may work
|
||||||
|
with vmware, but is untested) you should be able to launch a 3 node
|
||||||
|
Kubernetes cluster by simply running `$ vagrant up`.
|
||||||
|
|
||||||
|
This will spin up 3 VMs and install kubernetes on them. Once they are
|
||||||
|
completed you can connect to any of them by running
|
||||||
|
`$ vagrant ssh k8s-0[1..3]`.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ vagrant up
|
||||||
|
Bringing machine 'k8s-01' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'k8s-02' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'k8s-03' up with 'virtualbox' provider...
|
||||||
|
==> k8s-01: Box 'bento/ubuntu-14.04' could not be found. Attempting to find and install...
|
||||||
|
...
|
||||||
|
...
|
||||||
|
k8s-03: Running ansible-playbook...
|
||||||
|
|
||||||
|
PLAY [k8s-cluster] *************************************************************
|
||||||
|
|
||||||
|
TASK [setup] *******************************************************************
|
||||||
|
ok: [k8s-03]
|
||||||
|
ok: [k8s-01]
|
||||||
|
ok: [k8s-02]
|
||||||
|
...
|
||||||
|
...
|
||||||
|
PLAY RECAP *********************************************************************
|
||||||
|
k8s-01 : ok=157 changed=66 unreachable=0 failed=0
|
||||||
|
k8s-02 : ok=137 changed=59 unreachable=0 failed=0
|
||||||
|
k8s-03 : ok=86 changed=51 unreachable=0 failed=0
|
||||||
|
|
||||||
|
$ vagrant ssh k8s-01
|
||||||
|
vagrant@k8s-01:~$ kubectl get nodes
|
||||||
|
NAME STATUS AGE
|
||||||
|
k8s-01 Ready 45s
|
||||||
|
k8s-02 Ready 45s
|
||||||
|
k8s-03 Ready 45s
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Ansible
|
||||||
|
|
||||||
|
**Ansible** usual commands
|
||||||
|
|
||||||
|
# Further Reading
|
||||||
|
|
||||||
A complete **documentation** can be found [**here**](https://docs.kubespray.io)
|
A complete **documentation** can be found [**here**](https://docs.kubespray.io)
|
||||||
|
|
||||||
|
|
23
Vagrantfile
vendored
23
Vagrantfile
vendored
|
@ -11,11 +11,12 @@ CONFIG = File.join(File.dirname(__FILE__), "vagrant/config.rb")
|
||||||
$num_instances = 3
|
$num_instances = 3
|
||||||
$instance_name_prefix = "k8s"
|
$instance_name_prefix = "k8s"
|
||||||
$vm_gui = false
|
$vm_gui = false
|
||||||
$vm_memory = 1024
|
$vm_memory = 1536
|
||||||
$vm_cpus = 1
|
$vm_cpus = 1
|
||||||
$shared_folders = {}
|
$shared_folders = {}
|
||||||
$forwarded_ports = {}
|
$forwarded_ports = {}
|
||||||
$subnet = "172.17.8"
|
$subnet = "172.17.8"
|
||||||
|
$box = "bento/ubuntu-14.04"
|
||||||
|
|
||||||
host_vars = {}
|
host_vars = {}
|
||||||
|
|
||||||
|
@ -40,22 +41,7 @@ end
|
||||||
Vagrant.configure("2") do |config|
|
Vagrant.configure("2") do |config|
|
||||||
# always use Vagrants insecure key
|
# always use Vagrants insecure key
|
||||||
config.ssh.insert_key = false
|
config.ssh.insert_key = false
|
||||||
|
config.vm.box = $box
|
||||||
config.vm.box = "ubuntu-14.04"
|
|
||||||
config.vm.box_url = "https://storage.googleapis.com/%s.release.core-os.net/amd64-usr/%s/coreos_production_vagrant.json" % [$update_channel, $image_version]
|
|
||||||
|
|
||||||
["vmware_fusion", "vmware_workstation"].each do |vmware|
|
|
||||||
config.vm.provider vmware do |v, override|
|
|
||||||
override.vm.box_url = "https://storage.googleapis.com/%s.release.core-os.net/amd64-usr/%s/coreos_production_vagrant_vmware_fusion.json" % [$update_channel, $image_version]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
config.vm.provider :virtualbox do |v|
|
|
||||||
# On VirtualBox, we don't have guest additions or a functional vboxsf
|
|
||||||
# in CoreOS, so tell Vagrant that so it can be smarter.
|
|
||||||
v.check_guest_additions = false
|
|
||||||
v.functional_vboxsf = false
|
|
||||||
end
|
|
||||||
|
|
||||||
# plugin conflict
|
# plugin conflict
|
||||||
if Vagrant.has_plugin?("vagrant-vbguest") then
|
if Vagrant.has_plugin?("vagrant-vbguest") then
|
||||||
|
@ -92,7 +78,8 @@ Vagrant.configure("2") do |config|
|
||||||
"ip" => ip,
|
"ip" => ip,
|
||||||
"access_ip" => ip,
|
"access_ip" => ip,
|
||||||
"flannel_interface" => ip,
|
"flannel_interface" => ip,
|
||||||
"flannel_backend_type" => "host-gw"
|
"flannel_backend_type" => "host-gw",
|
||||||
|
"local_release_dir" => "/vagrant/temp"
|
||||||
}
|
}
|
||||||
config.vm.network :private_network, ip: ip
|
config.vm.network :private_network, ip: ip
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue