Skip to content

Commit

Permalink
Init Vagrant Kubernetes Cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
clifinger committed Nov 22, 2016
0 parents commit 59e2cbb
Show file tree
Hide file tree
Showing 5 changed files with 203 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.vagrant
config.rb
81 changes: 81 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Vagrant Centos kubernetes cluster
- Centos 7.2 amd64
- docker 1.10
- kubeadm 1.5
```
NAME READY STATUS RESTARTS AGE
dummy-2088944543-36vp6 1/1 Running 0 1h
etcd-master 1/1 Running 0 1h
kube-apiserver-master 1/1 Running 0 1h
kube-controller-manager-master 1/1 Running 0 1h
kube-discovery-1150918428-dkdke 1/1 Running 0 1h
kube-dns-654381707-a4yey 3/3 Running 0 1h
kube-proxy-moijj 1/1 Running 0 1h
kube-proxy-pwjfw 1/1 Running 0 1h
kube-proxy-vicnd 1/1 Running 0 1h
kube-scheduler-master 1/1 Running 0 1h
kubernetes-dashboard-3203700628-stzjl 1/1 Running 0 1h
weave-net-01aay 2/2 Running 0 1h
weave-net-eurrr 2/2 Running 0 1h
weave-net-ph7l3 2/2 Running 0 1h
```

## plugins
- weave-net
- dashboard

## Prerequisites
- Vagrant 1.8 (with NFS support)

#### Note for Windows

- The vagrant-winnfsd plugin will be installed in order to enable NFS shares.
- The project will run some bash script under the VirtualMachines. These scripts line ending need to be in LF. Git for windows set ```core.autocrlf``` true by default at the installation time. When you clone this project repository, this parameter (set to true) ask git to change all line ending to CRLF. This behavior need to be changed before cloning the repository (or after for each files by hand). We recommand to turn this to off by running ```git config --global core.autocrlf false``` and ```git config --global core.eol lf``` before cloning. Then, after cloning, do not forget to turn the behavior back if you want to run other windows projects: ```git config --global core.autocrlf true``` and ```git config --global core.eol crlf```.

## Installation
```bash
git pull https://github.com/JulienLenne/vagrant-centos-kubernetes.git
cd vagrant-centos-kubernetes/
vagrant up
```
## Clean-up
```bash
vagrant destroy
```

## Configuration
config.rb
```ruby
# If you change, Keep the structure with the dot. [0-9 a-f]
$token = "56225f.9096af3559800a6a"
# Total memory of master
$master_memory = 1536
# Increment to have more nodes
$worker_count = 2
# Total memory of nodes
$worker_memory = 1536
```

### Basic usage
```bash
# Note : You need to have kubectl on the host
# http://kubernetes.io/docs/user-guide/prereqs/
# Or use ssh (vagrant ssh master)
# If you use SSH to connect on master you should remove
# "--kubeconfig admin.conf" argument
# Cluster info
kubectl cluster-info --kubeconfig admin.conf
# Get nodes
kubectl get nodes --kubeconfig admin.conf
# Get system pods
kubectl get pods --namespace=kube-system --kubeconfig admin.conf
# Go to dashboard (require kubectl on the host, or use master
# ip address to access to the ui)
kubectl proxy --kubeconfig admin.conf # http://localhost:8001/ui on host
## Full documentation : http://kubernetes.io/docs/
```

### Next features
- Can add more master
- Can add more etcd
- Include flocker with full support of ZFS
54 changes: 54 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

# -*- mode: ruby -*-
# vi: set ft=ruby :

load 'config.rb'

def workerIP(num)
return "172.16.78.#{num+250}"
end

VAGRANTFILE_API_VERSION = "2"

ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

if Vagrant.has_plugin?("vagrant-cachier")
config.cache.scope = :box
end
ip = "172.16.78.250"
config.vm.box = "centos/7"
config.vm.synced_folder ".", "/shared", type: "nfs"
config.vm.define "master" do |master|
master.vm.network :private_network, :ip => "#{ip}"
master.vm.hostname = "master"
master.vm.provider "virtualbox" do |v|
v.memory = $master_memory
end
master.vm.provision :shell, :inline => "sed 's/127.0.0.1.*master/#{ip} master/' -i /etc/hosts"
master.vm.provision :shell do |s|
s.inline = "sh /vagrant/install.sh $1 $2 $3 $4"
s.args = ["-master", "#{ip}", "none", "#{$token}"]
end
end
(1..$worker_count).each do |i|
config.vm.define vm_name = "node-%d" % i do |node|
node.vm.network :private_network, :ip => "#{workerIP(i)}"
node.vm.hostname = vm_name
node.vm.provider "virtualbox" do |v|
v.memory = $worker_memory
end
node.vm.provision :shell, :inline => "sed 's/127.0.0.1.*node-#{i}/#{workerIP(i)} node-#{i}/' -i /etc/hosts"
node.vm.provision :shell do |s|
s.inline = "sh /vagrant/install.sh $1 $2 $3 $4"
if i == $worker_count
s.args = ["-node", "#{ip}", "-last", "#{$token}"]
else
s.args = ["-node", "#{ip}", "none", "#{$token}"]
end
end
end
end

end
27 changes: 27 additions & 0 deletions admin.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRFMk1URXlNakE1TkRRME5sb1hEVEkyTVRFeU1EQTVORFEwTmxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTjZVCkFFUFk5ZXpUVUwyQXJncmpQcWFGckNZMStlYkVkY0FCWmRRSFV1OWxqSTEyaktwTFlQdFRQR01ROW1YczNwWlIKcTZnMzNHYnJ1TkhyUHdzNzgxS2FxMlVwT2dUVW5FOHJqSU9KUCthdENydTFYcERNZ1lpdWVOTWtSaHJacElsUgpmVkVwWlI0cjNjdVBoSW9IR2ZDVHR0M2RWMnFzUldpSWJrTHk1b0xjaFl1WWh0WmhnU2dwd0tvcVFLNFpQM3ZaCmhOaHdXd3B4Tkc2ejBRS0JiSlRVa29vK0tNYjhnMENRdThYS2FzRGdjaG55a2JFL1JiU1Q0Sm9zTzEyamQ1b3EKSUZtWHBpZ1JMSTFTRFZCYmVxQ1VNeWJpdWhuSnlteFByQnZIaURoc3ppNThQcHBFcmZMZ3VtaXZ5NWFBUkhBQwp2Wk5RRjVyL2pHc1kwMDBnUnE4Q0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFMMWZuRUJMSkdSVWZ2emlBTU5FRFhjV2ZQY0UKWEM5WU1ZVjBGSzNZWm83cWlGQkdUMlZCbCtUSGdmV1pLYWxpUkNINlFSU0ZPTCtkcWZaYmNPS2Rua2ZZRVhNSApxRVBjdzI2dy9Sb0EzNG1FMC8yL0ZPT1dwUk1mZ0orS3lZdVFTRWFiQlltM09ZQ2hnaTVpMDV2Q1ZoRWR2WEtBClVxVlpLTndGWlhiUjNsZVdrSlFsZUt6c2NkL3ZBZldFUHJsUkp3REhmZG01UVJoRzVPUms0TlRQQkhkSm5qd0cKQUtSamRWMU1KT29nbmdTRmQ3b1R5c3RKQmo3WHR2WW1MVVFpdGVXQjFjd1JOMGNNay9DZ0hteGxDL2d3MzRpWApIb2M3Yi9SWThBcTR0WTRVOHdOampFZk40dkhPTHF0UlJWQVJzVG84cUEvd1RQeDZLV2szVWdVeTFJbz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
server: https://172.16.78.250:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: admin
name: admin@kubernetes
- context:
cluster: kubernetes
user: kubelet
name: kubelet@kubernetes
current-context: admin@kubernetes
kind: Config
preferences: {}
users:
- name: admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM0ekNDQWN1Z0F3SUJBZ0lJV1I2VjJTcFF6SFl3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TmpFeE1qSXdPVFEwTkRaYUZ3MHhOekV4TWpJd09UUTBORGhhTUJzeApHVEFYQmdOVkJBTVRFR3QxWW1WeWJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRFpxazk5dFhaQUZ0MGJ0cFpuUHB4L1pFaHh5cG1qNnd3emxtV01ZbG96dEZsWDNpSFcKa2xFazhRT2VxY3VrWFVDUzRwTExVRnpSNjRPczJ2OVozOWZ0Ylc3UVltaG9JcGxpdnd2N0JPUFIydSt3T2xVVgpKZWhYTnFUOG9YZ09HWlZiVTdNZzFPcllMMG1UU3YrdUViVklsVWk5SVI5dURNc0gvTlhPem5vcEJYZWZBUFh6CmxZTWRJbW9BSEV1SGVxZmFGa2tTZEMvT0xGdEpWQ0Z3VXNwVHlQekJ5MWl5RWhYbHNLYVMyeFdDMms1TW9MbzUKUWI1TDk0UVpqMkdKcitSK1lERDJvSmlmUDVPaVM2NVoxckdoT2RZWkFZQmpZRDlFbjFMUmpJS0pNSEJROUFRSApKYTIvcHYwTFBkS3d0YlhLU1hRYnVWeEY3S05EQzRHNXM2aFhBZ01CQUFHak1UQXZNQTRHQTFVZER3RUIvd1FFCkF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUwKQlFBRGdnRUJBTFpRN3JCV1N3dU9mYlBiQlpYWW5XR0d0NkhKWTI4amNndFZ3cUtvNjdzM3JOdVBPbWU0YjVXawpzWEJhc3F0bENXMWM2Q0tPc0tNNUxiMG5oZjI2TWRBbmZHYjVLS0NZeUM3WllWLzVIczU2Skc1bjFQaHpmVitPClNwYmR6SXRsL3lYK0h0bGR6bFRFMFFZNHN0SjJQb016QTBOOEd1OWZYeHh1OC9yT3ZVa1NSTjI1MWVMYmFkeHQKY2E1ekpacndsU09TUFNtTEZrd2JYUERML1A3dDBVWGZjSTY1aEtsUHgzcEZ4MzUvelA5MUhnbXVDektwWkt3Mwo3dGNQODkyMWl0MklqQ2tEUmpzdTc1SVUzRU11WlpRZEhtdzRQQUZjVjY4K1o1cTNaRnpWWmVtc1kvaE9tYW5RCnJrOC8wSzl1c3N5bnNob2htZnQvR3lPUVMwbVoxOE09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMmFwUGZiVjJRQmJkRzdhV1p6NmNmMlJJY2NxWm8rc01NNVpsakdKYU03UlpWOTRoCjFwSlJKUEVEbnFuTHBGMUFrdUtTeTFCYzBldURyTnIvV2QvWDdXMXUwR0pvYUNLWllyOEwrd1RqMGRydnNEcFYKRlNYb1Z6YWsvS0Y0RGhtVlcxT3pJTlRxMkM5Smswci9yaEcxU0pWSXZTRWZiZ3pMQi96VnpzNTZLUVYzbndEMQo4NVdESFNKcUFCeExoM3FuMmhaSkVuUXZ6aXhiU1ZRaGNGTEtVOGo4d2N0WXNoSVY1YkNta3RzVmd0cE9US0M2Ck9VRytTL2VFR1k5aGlhL2tmbUF3OXFDWW56K1Rva3V1V2RheG9UbldHUUdBWTJBL1JKOVMwWXlDaVRCd1VQUUUKQnlXdHY2YjlDejNTc0xXMXlrbDBHN2xjUmV5alF3dUJ1Yk9vVndJREFRQUJBb0lCQUFRUmkrVFVwSDQwTHpQYQphTnRMTDArdVJ6QmhVaGZmUjk0YS9KRHdNYkZ2dUkvTTVpTUZueUNxcEordG10SGFzRjlPZnVId0Fad200OUl5ClViMlRVb3pzazdxdmJEWXVGMkhpSWs0eDNEUksvRm4xN1NzMUJ5L0NKTGxZSjA5VUtSZUk2L3M4SDV1azNxSXoKTDY1SVJIUXozaVV5M2t5SFRyQTZpS0NSK1hTVXpiODhobndvUU9NTU55emRydFhqOUtsMVh3V3dTenIrSnkxQwpaM1ZPVy8zQ2NtYkdGVnRNaHlwUTBjWVF6Y2piZVN4aW9KemV3U05qNityL0M2STdpZHRNbnFJOU1xc2ZGdENTCitVQ1VZNjhaYzZZTWN5djc1STB2RnNqNU41Z3dKeG9BamY5clNiMFc1RUVFeEFkNEFsV0tVUlFOb1JSYWZTOEgKT3Bpcy92a0NnWUVBNGNkZ1hMcUFDaEpFZDF0dUQzVXJGV0IxN3FtaHdoV2M1SUkwVnJXVmFiZ0IvbEg1bytDagptamt1MzVVS0Qrd0pCSiswM3ZuUE5ZdERTR2N4WlhVbHo2bytGc0p1UHZicnJWQU1UZG1hbDdreE1vaUR4OVhQCmh1OENsUjZacjJMd3M4VmQyUHdKdDdpZVZkdFlzVG4ybVJCdUlCVHZ4QkNHeVIyeTFNWFBZb01DZ1lFQTlzenAKbHpNVUFEQjJQMUpmVFlHSUZ4Y3dxRmlxSE1reTJiOTZ3YzNMaHA0eGlqS3lINGJabDdXMGltbFIvbGg4Mm9jagpQSWRDZDVZUFNLdXYrMlVyWlJ4WE1ubWM4dnRYNGpaSjNMcG43b3VpNnlQTkZrdE9KeFBiMi96dFJjdGxTdFAzCkluc1FCQ2pCdkxzU1FxU0JTNkd3Smk3RGdhUjB5VkhGMTJVK2FwMENnWUI1M0xBaFBMU1JPd3pqVTJFVFRNMkYKU3p3OEppamQ1ZVo1MitFK0QrSm1YbUFORWRmcFlQMU01NkpxSVRwK0g0czZpSzBLVU5GTGVEQkhxeE1aVE9Lcwp0Sm13bFI4R015WS90RjMvd3Z6UythMFpObC9TZzQvd3A1N0FOL1VCbWlpTEQzTTVBOGlHOWtuWDAzMktvdHQ4CkFFZEFYNnlPS2RGbVNmWlZLN05rMndLQmdRQ2ZrcUkrRnRLSnhNdlA2V3loYW0wWnNPN1BDblVESTd2ek9uRWUKdWZjc1ZVQm13SnlXOGRQaTJhT2dFclRuSlVPazc5ZUNuVm9HaEVuaGpOQytWUTJYMUprMGs1azlLZklLMjFzcQprb1A4b3VCMTlMSDRCanpEMjMwK1llendRYkIrajBxdFNyQnlYLy9VRFlpaStrWjNKbFlFZWh3Q3lOaVNDb05HCjM3bFpxUUtCZ0RSQUxnNVZHSDhnd1J5L3Z2Z2c4SHlVZzA1eVp4bVlqVndDK2Y5MWZSY2RTVTBtRGRvNUZJK2EKWHBDa0ZYWG1MYjY2NnUzSFpKN3gwaGZQbldqYlBCL2s0MkErdjJ3aUUzV2pldzkwaE54Uk5VSDB5MFNXYThqaAptQ3pySklWTk5jbW1QZ0M0NmlpR2pFRkpJMG9QM0RRc1dsNlg0YWdYTUVzZzd3aUV1TUk3Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
- name: kubelet
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM0ekNDQWN1Z0F3SUJBZ0lJS0MremdZNGZuMk13RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TmpFeE1qSXdPVFEwTkRaYUZ3MHhOekV4TWpJd09UUTBORGhhTUJzeApHVEFYQmdOVkJBTVRFR3QxWW1WeWJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRQ1dWdnhBcU1BdTdrS0dtQU1kT1BZZ0dSSVJYdW8vMmlGMVh1c3BqejBRbSs0SWI2ZUwKVEFVNTdxZThwVHZPZEdUM05TMWtIaGhhSlZ3R21PUXdTd1VHc0dqMkJoZ0s0N09neGhwOERGQ3VaZWRGbkF5dgphOGJaNWxNZm40N2dWOXExakthc3dNRUp4d0ZDWHAyQWlmVjFxaVhwNzVVZCtwUzNVSmFJcGEzNXBLVW9KTFR2Clp3OEJyT2RXTmxTS1RUS2tjMUJvQXBWalVIREcxbEFtWHBpTU01VzFLd1dOaUxpbXYvYW95dnV3ejdKemJXeTAKNkJvYzJIV09zQ2NvQ1hLTm95S0daS3k3S1dwSHpGUnZFNFlyZXFZOFNERzJ0c3dZUjVTUVMrZThMOUVMbUhwZApmM1BGL1ZIN2NuVzc2dXFBWjhCa0VoVTlqa0pxbzdFRGdwREhBZ01CQUFHak1UQXZNQTRHQTFVZER3RUIvd1FFCkF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUwKQlFBRGdnRUJBTlE0aFoxTXhHRnNmT0F5TVdBS1daZXBNSUhsRFJCVEVCVlFWTXVHTkx2R3VQQTRleCt0RzVFQQpNKzdoYjMwdGZoak1NREhCaVhCSC9DVm1TeE8rV2xHd2RUTWxaSGtpcmVlUXZ3bnFHcjU5K284QWEwdFpEbmdzCnM0SWtXNXVlVHowc01lTnBiM3dRTDV0YU43Z3ZrdGdxYjJraFNsQWdzS0l0eTUvVVFiVGtUckpCSFJTcjA5cUYKRytpd2JBWXNZZC9WcHZsbythRGxKUU9JZnR0RnQ5ZHBITEV3OC8yK2NGdkNsbklpNG0vMlN1WDBXNUY1WnFIbQpEZ3lOS3U4V3pFNEhLd3B5Q05TaDZWWDVFMDF5ZzlOQTBwSnZkU3FqZHJLamNUVnFud3BEOFlzTHFaYXNzWkRCClBTZHExQUd4RzVqdGlkZFpKSWdSMnFEenhGdFZUWFU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBbGxiOFFLakFMdTVDaHBnREhUajJJQmtTRVY3cVA5b2hkVjdyS1k4OUVKdnVDRytuCmkwd0ZPZTZudktVN3puUms5elV0WkI0WVdpVmNCcGprTUVzRkJyQm85Z1lZQ3VPem9NWWFmQXhRcm1YblJad00KcjJ2RzJlWlRINStPNEZmYXRZeW1yTURCQ2NjQlFsNmRnSW4xZGFvbDZlK1ZIZnFVdDFDV2lLV3QrYVNsS0NTMAo3MmNQQWF6blZqWlVpazB5cEhOUWFBS1ZZMUJ3eHRaUUpsNllqRE9WdFNzRmpZaTRwci8ycU1yN3NNK3ljMjFzCnRPZ2FITmgxanJBbktBbHlqYU1paG1Tc3V5bHFSOHhVYnhPR0szcW1QRWd4dHJiTUdFZVVrRXZudkMvUkM1aDYKWFg5enhmMVIrM0oxdStycWdHZkFaQklWUFk1Q2FxT3hBNEtReHdJREFRQUJBb0lCQUdOMGVmM2daUHJtL2JXQwpmSlRwYU5GRkpKRy9RNklvRUhoUDZhd2RxUjBDdW81MEp0ZGMzQncrQ0ZNZzBCYTlJMG55c091SmlUeWhlR2FZCjRHUWVUTjNtK0JqQllVaGE2Q3NVd3RLTFp4aG9LMzMrUk5vTHA0bmc5OTUwdEpVdktXMXU5WmhWRDU4RE9vOEkKZnBOWk1MdTlhc1YrakJ3LzkvL3BYUnhhMW1QT0J5N1RMWitWa0FrVU9VRDdQVlo5aHJZTVVlTU44UWVlSDNRdQptME8wQlpkMHMwakE2ZE9PMmtKNk1hcS9HeGNSMEtZczJUaEthZDNpZlhaQUF4SGpsMG9nb2xhR09rNFpaUmUwCmtBSDQ3Y2xOa2tpUXIza2xNbzNnSFY5OGF5NDNRYnhnSHZkTFBCS2xsbnUzRDJwaFFQLzFUZ1hVcEphSjFmTTcKTzc2bGE2RUNnWUVBeFJZNmJOQVRTMGZyVkdmZ3ZDeDhiQ3hTN0U1MU41NVZGMlFSS3BDMm1NNjhza3pnZFdkdgpONlhFaW9EYVhBRjVqdG1DNEVmaURORHdubTJ0cUd0YS9zSklka05jOWhsbDB6TTUrT3gvdk1pSStkcVdDdWdrCjE1Y2ZncVRqWFdwZm9kL2dOeUJ3UEs4UWYwOHBtM0ZhS01NeHJQS0FoREtPdjFpb3VQdCtBcGNDZ1lFQXcwZUMKcHFFUEpGUkxJUGxsbk9RZW9NbW5NTklpcVVhbUpqVW4xNGNybEJhRW1jUkdMYWVzMVl2RHN0ZU4zSytNczFXZgovSytianh4R29Ja0dYRnczdklsWWRqYitNS2hGMTNpUWlsM3V6MFdzRUppWHF5bWtFUk8rWDZucUNnU0VnT1VCClpaRHo2bGlxSU0xKzIwOW94NHJPZTduMzlzOWhuMHpuRlBRVkdWRUNnWUFOQ3VDSTdPZ3A5ak56bllBNDA3VFUKTDhhNURxUWhMeUF3Y1JYVnZFZnBLdDAvNjJoN1BJSVdxNmlyQmNYdGlzZHhsYUZjbUVVMFZldG1nSm1hYUtoWAo3YUYvK2dzLzJnUnNDcHJPaDFBWXZTaWJhRVMvcWdjdUlUa2JteS9Vc2NKc1l2VmlrSW44NmhUc1o5KzRBck5WCnVUMGpWZFQ5YXA4WnVKTkowcExQTndLQmdRQzlLOFllSTBIbTRKMlRDT1p0c1BNV3NhSjhBZVMvOVFlNVZaOE8KQkF5c1BaQWc0V2xXaXVzOFIxUENLVnhzMzhhK1o0RS9xT0phSlhzcHd2UGRmeHdqVVMzWC92Z0pMTW5UclNEZwpXWlNoU0E0aVdaLzdtTEF1TnVFaURSa0NzVk9uQmJGdnNaY0lldkg4S3ZYc0FDWXh2MzY5anU3dU1nR1E3MCtnCkZiOW1zUUtCZ0c3bEVXSllKUThkQkpLUGVQSTMrdW9Gbk84RE1sSHdsZ1hmajY1Nlo3VmErdkt0YWhNOVMwNWQKaGd0TU1TZkQwUEtVZjZ4eDNBTjgwZnFvTW0zWkszOGhNRXphSjl4T0d1UW8yTjB4WlQvM3FYOTliZTIzM2NSVwpWK2lQMU9wK09qa2xyM2lyMDROeTd4akNrWUtMZnNzYWZ3dmVhU1NGamtxQmsyVVpKU0pRCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
39 changes: 39 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/sh

TOKEN=$4
echo 'INSTALL KUBERNETES'
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y docker kubelet kubeadm kubectl kubernetes-cni wget ntp
systemctl start ntpd
systemctl enable ntpd
wget http://stedolan.github.io/jq/download/linux64/jq
chmod +x ./jq
cp jq /usr/bin
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
if [ "$1" == "-master" ]; then
kubeadm init --api-advertise-addresses=$2 --token=$TOKEN
kubectl -n kube-system get ds -l 'component=kube-proxy' -o json \
| jq '.items[0].spec.template.spec.containers[0].command |= .+ ["--proxy-mode=userspace"]' \
| kubectl apply -f - && kubectl -n kube-system delete pods -l 'component=kube-proxy'
cp /etc/kubernetes/admin.conf /shared
elif [ "$1" == "-node" ]; then
echo "I AM A NODE"
rm -Rf /etc/kubernetes/*
kubeadm join $2 --token=$TOKEN
if [ "$3" == "-last" ]; then
kubectl --kubeconfig /shared/admin.conf apply -f https://git.io/weave-kube
kubectl --kubeconfig /shared/admin.conf create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
fi
fi
echo "Wait 10.00s" && sleep 10

0 comments on commit 59e2cbb

Please sign in to comment.