c12s-kubespray/README.md

162 lines
3 KiB
Markdown
Raw Normal View History

2016-06-16 10:36:58 +00:00
vagrant-k8s
===========
Scripts to create libvirt lab with vagrant and prepare some stuff for `k8s` deployment with `kargo`.
Requirements
2016-07-01 14:02:47 +00:00
------------
2016-06-16 10:36:58 +00:00
2016-06-16 15:50:44 +00:00
* `libvirt`
* `vagrant`
2016-06-20 14:12:18 +00:00
* `vagrant-libvirt` plugin (`vagrant plugin install vagrant-libvirt`)
2016-06-16 15:50:44 +00:00
* `$USER` should be able to connect to libvirt (test with `virsh list --all`)
2016-06-16 10:36:58 +00:00
Vargant lab preparation
-----------------------
2016-06-20 14:12:18 +00:00
* Change default IP pool for vagrant networks if you want:
2016-06-16 10:36:58 +00:00
```bash
export VAGRANT_POOL="10.100.0.0/16"
2016-06-20 14:12:18 +00:00
```
2016-06-30 13:47:28 +00:00
* Clone this repo
```bash
git clone https://github.com/adidenko/vagrant-k8s
cd vagrant-k8s
```
2016-06-20 14:12:18 +00:00
* Prepare the virtual lab:
```bash
2016-06-16 10:36:58 +00:00
vagrant up
```
Deployment on a lab
-------------------
* Login to master node and sudo to root:
2016-06-16 10:36:58 +00:00
```bash
vagrant ssh $USER-k8s-00
2016-06-16 10:36:58 +00:00
sudo su -
```
* Clone this repo
```bash
git clone https://github.com/adidenko/vagrant-k8s ~/mcp
```
2016-07-13 14:01:43 +00:00
* Install required software and pull needed repos:
```bash
cd ~/mcp
./bootstrap-master.sh
```
2016-07-13 14:01:43 +00:00
* Check `nodes` list and make sure you have SSH access to them
```bash
cd ~/mcp
cat nodes
2016-07-08 15:23:43 +00:00
ansible all -m ping -i nodes_to_inv.py
```
* Deploy k8s using kargo playbooks
```bash
cd ~/mcp
2016-06-16 10:36:58 +00:00
./deploy-k8s.kargo.sh
```
2016-06-27 15:57:29 +00:00
* Deploy OpenStack CCP:
2016-06-27 15:57:29 +00:00
```bash
cd ~/mcp
2016-07-12 15:20:58 +00:00
# Build CCP images
ansible-playbook -i nodes_to_inv.py playbooks/ccp-build.yaml
# Deploy CCP
ansible-playbook -i nodes_to_inv.py playbooks/ccp-deploy.yaml
2016-06-27 15:57:29 +00:00
```
2016-07-13 14:48:11 +00:00
* Wait for CCP deployment to complete
```bash
# On k8s master node
# Check CCP pods, all should become running
kubectl --namespace=openstack get pods -o wide
# Check CCP jobs status, wait until all complete
kubectl --namespace=openstack get jobs
```
2016-07-13 14:01:43 +00:00
* Check Horizon:
```bash
# On k8s master node check nodePort of Horizon service
HORIZON_PORT=$(kubectl --namespace=openstack get svc/horizon -o go-template='{{(index .spec.ports 0).nodePort}}')
echo $HORIZON_PORT
# Access Horizon via nodePort
curl -i -s $ANY_K8S_NODE_IP:$HORIZON_PORT
```
2016-06-30 15:19:21 +00:00
Working with kubernetes
-----------------------
2016-06-30 15:16:33 +00:00
2016-07-13 14:08:02 +00:00
* Login to one of your kube-master nodes and run:
2016-06-30 15:16:33 +00:00
```bash
# 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
```bash
# Get logs from pod
kubectl --namespace=openstack logs $POD_NAME
# Exec command from pod
2016-07-08 15:23:43 +00:00
kubectl --namespace=openstack exec $POD_NAME -- cat /etc/resolv.conf
kubectl --namespace=openstack exec $POD_NAME -- curl http://etcd-client:2379/health
2016-06-30 15:16:33 +00:00
# Run a container
docker run -t -i 127.0.0.1:31500/mcp/neutron-dhcp-agent /bin/bash
```
2016-07-01 13:59:21 +00:00
2016-07-01 14:02:47 +00:00
* Network checker
2016-07-01 13:59:21 +00:00
2016-07-01 13:57:41 +00:00
```bash
cd ~/mcp
./deploy-netchecker.sh
# or in openstack namespace
./deploy-netchecker.sh openstack
2016-07-01 13:59:21 +00:00
```
* CCP
```bash
# Run a bash in one of containers
docker run -t -i 127.0.0.1:31500/mcp/nova-base /bin/bash
# Inside container export credentials
export OS_USERNAME=admin
export OS_PASSWORD=password
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://keystone:35357
# Run CLI commands
openstack service list
neutron agent-list
```