Browse Source

New playbooks for k8s service and examples

- kubedns moved to playbooks dir
- new ansible playbooks added for kubedash and kube-dashboard
- examples for k8s deployments and services added
Aleksandr Didenko 9 years ago
parent
commit
39dd4c1aaa
9 changed files with 77 additions and 3 deletions
  1. 2
      Vagrantfile
  2. 2
      bootstrap-master.sh
  3. 2
      deploy-k8s.kargo.sh
  4. 18
      examples/kubernetes/external-nginx/README.md
  5. 24
      examples/kubernetes/external-nginx/nginx-backends.yaml
  6. 22
      examples/kubernetes/external-nginx/nginx-frontend.yaml
  7. 5
      playbooks/kubedash.yaml
  8. 5
      playbooks/kubedashboard.yaml
  9. 0
      playbooks/kubedns.yaml

2
Vagrantfile

@ -92,7 +92,7 @@ Vagrant.configure("2") do |config|
if master if master
config.vm.provision "deploy-k8s", type: "file", source: "deploy-k8s.kargo.sh", destination: "~/deploy-k8s.kargo.sh" config.vm.provision "deploy-k8s", type: "file", source: "deploy-k8s.kargo.sh", destination: "~/deploy-k8s.kargo.sh"
config.vm.provision "custom.yaml", type: "file", source: "custom.yaml", destination: "~/custom.yaml" config.vm.provision "custom.yaml", type: "file", source: "custom.yaml", destination: "~/custom.yaml"
config.vm.provision "kubedns.yaml", type: "file", source: "kubedns.yaml", destination: "~/kubedns.yaml"
config.vm.provision "playbooks", type: "file", source: "playbooks", destination: "~/playbooks"
config.vm.provision "nodes", type: "file", source: "nodes", destination: "~/nodes" config.vm.provision "nodes", type: "file", source: "nodes", destination: "~/nodes"
config.vm.provision "bootstrap", type: "shell", path: "bootstrap-master.sh" config.vm.provision "bootstrap", type: "shell", path: "bootstrap-master.sh"
else else

2
bootstrap-master.sh

@ -16,7 +16,7 @@ sudo sh -c 'cd /root/kargo-cli && python setup.py install'
# k8s deploy script and configs # k8s deploy script and configs
sudo sh -c 'cp -a ~vagrant/deploy-k8s.kargo.sh /root/ && chmod 755 /root/deploy-k8s.kargo.sh' sudo sh -c 'cp -a ~vagrant/deploy-k8s.kargo.sh /root/ && chmod 755 /root/deploy-k8s.kargo.sh'
sudo cp -a ~vagrant/custom.yaml /root/custom.yaml sudo cp -a ~vagrant/custom.yaml /root/custom.yaml
sudo cp -a ~vagrant/kubedns.yaml /root/kubedns.yaml
sudo cp -a ~vagrant/playbooks /root/playbooks
# SSH keys and config # SSH keys and config
sudo rm -rf /root/.ssh sudo rm -rf /root/.ssh

2
deploy-k8s.kargo.sh

@ -22,5 +22,5 @@ deploy_res=$?
if [ "$deploy_res" -eq "0" ]; then if [ "$deploy_res" -eq "0" ]; then
echo "Setting up kubedns..." echo "Setting up kubedns..."
ansible-playbook -i $INVENTORY kubedns.yaml
ansible-playbook -i $INVENTORY playbooks/kubedns.yaml
fi fi

18
examples/kubernetes/external-nginx/README.md

@ -0,0 +1,18 @@
Nginx example with external IPs
===============================
* Edit `nginx-frontend.yaml` and update `externalIPs` to the list of external IPs of your k8s minions
* Deploy:
```bash
kubectl create -f nginx-backends.yaml
kubectl create -f nginx-frontend.yaml
```
* Check:
```bash
curl $ANY_MINION_EXTERNAL_IP
```

24
examples/kubernetes/external-nginx/nginx-backends.yaml

@ -0,0 +1,24 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-backend
spec:
replicas: 3
template:
metadata:
labels:
app: nginx-backend
tier: backend
spec:
containers:
- name: nginx
image: nginx
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
ports:
- containerPort: 80

22
examples/kubernetes/external-nginx/nginx-frontend.yaml

@ -0,0 +1,22 @@
apiVersion: v1
kind: Service
metadata:
name: nginx-frontend
labels:
app: nginx-frontend
tier: frontend
spec:
externalIPs:
- 10.210.0.12
- 10.210.0.13
- 10.210.0.14
- 10.210.0.15
- 10.210.0.16
- 10.210.0.17
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx-backend

5
playbooks/kubedash.yaml

@ -0,0 +1,5 @@
- hosts: kube-master
tasks:
- name: setup-kubedns
shell: kpm deploy kube-system/kubedash --namespace=kube-system
run_once: true

5
playbooks/kubedashboard.yaml

@ -0,0 +1,5 @@
- hosts: kube-master
tasks:
- name: setup-kubedns
shell: kpm deploy kube-system/kubernetes-dashboard --namespace=kube-system
run_once: true

kubedns.yaml → playbooks/kubedns.yaml

Loading…
Cancel
Save