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
This commit is contained in:
Aleksandr Didenko 2016-06-22 18:43:39 +02:00
parent 9c5c0f2697
commit 39dd4c1aaa
9 changed files with 77 additions and 3 deletions

2
Vagrantfile vendored
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
```

View file

@ -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

View file

@ -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 Normal file
View file

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

View file

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