Deploy a Production Ready Kubernetes Cluster on bare metal or raw VMs - This is a clone of https://github.com/kubernetes-sigs/kubespray.git with a kitten twist.
Go to file
2016-07-01 16:24:42 +02:00
ccp Update mcp.conf according to upstream 2016-07-01 16:24:42 +02:00
examples/kubernetes Updated readme in examples 2016-06-29 12:48:21 +02:00
playbooks Fix paths in playbooks 2016-06-30 16:50:29 +02:00
vagrant-scripts Added some packages for provisioning 2016-06-30 18:01:45 +02:00
.gitignore Fix ssh config 2016-06-16 14:28:29 +02:00
bootstrap-master.sh Minor improvements in commands and readme 2016-06-30 16:56:52 +02:00
custom.yaml Fixes and improvements 2016-06-20 11:06:01 +02:00
deploy-ccp.sh Another fix in path for inventory 2016-06-30 15:56:57 +02:00
deploy-k8s.kargo.sh Fix paths to kargo 2016-06-30 15:35:00 +02:00
deploy-netchecker.sh Added deploy-netchecker.sh script 2016-07-01 15:55:57 +02:00
README.md Update README.md 2016-07-01 16:02:47 +02:00
Vagrantfile Huge refactoring 2016-06-30 15:22:39 +02:00

vagrant-k8s

Scripts to create libvirt lab with vagrant and prepare some stuff for k8s deployment with kargo.

Requirements

  • libvirt
  • vagrant
  • vagrant-libvirt plugin (vagrant plugin install vagrant-libvirt)
  • $USER should be able to connect to libvirt (test with virsh list --all)

Vargant lab preparation

  • Change default IP pool for vagrant networks if you want:
export VAGRANT_POOL="10.100.0.0/16"
  • Clone this repo
git clone https://github.com/adidenko/vagrant-k8s
cd vagrant-k8s
  • If you want to run OpenStack CCP (Containerised Control Plane) then you need to pull CCP repos and patches:
pushd ccp
./ccp-pull.sh
popd
  • Prepare the virtual lab:
vagrant up

Deployment on a lab

  • Login to master node and sudo to root:
vagrant ssh $USER-k8s-01
sudo su -
  • Clone this repo
git clone https://github.com/adidenko/vagrant-k8s ~/mcp
  • Install required software and pull needed repos (modify script if you're not running it on Vagrant lab, you'll need to create nodes list manually and clone microservices and microservices-repos repositories, see ccp-pull.sh for details)
cd ~/mcp
./bootstrap-master.sh
  • Check nodes list and make sure you have SSH access to them
cd ~/mcp
cat nodes
  • Deploy k8s using kargo playbooks
cd ~/mcp
./deploy-k8s.kargo.sh
  • Deploy OpenStack CCP:
cd ~/mcp
./deploy-ccp.sh

Working with kubernetes

  • Login to one of your kube-master nodes (see /root/kargo/inventory/inventory.cfg on master node) and run:
# List images in registry
curl -s 127.0.0.1:31500/v2/_catalog | python -mjson.tool

# Check CCP jobs status
kubectl --namespace=openstack get jobs

# Check CCP pods
kubectl --namespace=openstack get pods -o wide
  • Troubleshooting
# Get logs from pod
kubectl --namespace=openstack logs $POD_NAME

# Exec command from pod
kubectl --namespace=openstack exec $POD_NAME cat /etc/resolv.conf
kubectl --namespace=openstack exec $POD_NAME curl http://etcd-client:2379/health

# Run a container
docker run -t -i 127.0.0.1:31500/mcp/neutron-dhcp-agent /bin/bash
  • Network checker
cd ~/mcp
./deploy-netchecker.sh
# or in openstack namespace
./deploy-netchecker.sh openstack