NAT/

directory
v0.10.1-0...-dbf77f2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2015 License: Apache-2.0

README

This file describes steps to quickly reproduce ExMB environment used to HotNets
submission. 

Below are useful commands for operation.


Install CoreOS on the server via Ubuntu Live install. Run following command
after running terminal on Live CD:

$ sudo ./coreos_install.sh -d /dev/sda -C stable -c cloud-config.yaml

Setup CoreOS static networking
https://coreos.com/docs/cluster-management/setup/network-config-with-networkd/

Docker image creation

Build docker image from Dockerfile in the local folder (.)
$ sudo docker build -t knodir/nat .

Boot new Docker and get to its shell
$ sudo docker run -t -i knodir/nat /bin/bash

Push new Docker image after changes
$ sudo docker commit -m "modified NAT" -a "Nodir Kodirov" 0b2616b0e5a8
knodir/nat 
$ sudo docker push knodir/nat

You can get ID of the Docker by running 
$ sudo docker ps 

Get the list of Docker images with their latest build time.
$ sudo docker images

Remove Docker image 
$ sudo docker rmi <image_id>

Mount the current folder inside docker container and run the firewall in 
interactive mode 
$ sudo docker run --privileged -v /home/core/kubernetes/VMC/NAT:/run/:rw -t -i
knodir/nat /bin/bash

$ sudo docker run --privileged -v /home/core/devel/kubernetes/VMC/NAT:/run/:rw
-t -i golang:1.4 /bin/bash

To run Kubernetes on your machine you can follow instructions here
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-kubernetes-on-top-of-a-coreos-cluster

or take a shortcut by directly copying ready (old) binaries
Steps:
- copy peterbinaries to /opt/bin
- $ sudo systemctl enable *


Create Kubernetes services:
$ kubectl create -f echo-filtered-service.json --server=192.168.56.210:8080
$ kubectl create -f echo-server-controller.json --server=192.168.56.210:8080
$ kubectl create -f echo-server-service.json --server=192.168.56.210:8080
$ kubectl create -f nat-controller.json --server=192.168.56.210:8080

Get list of running pods, services and replication controllers:
$ kubectl get pods --server=192.168.56.210:8080
$ kubectl get services --server=192.168.56.210:8080
$ kubectl get rc --server=192.168.56.210:8080

Stop Kubernetes services:
$ kubectl stop pods --server=192.168.56.210:8080
$ kubectl stop services --server=192.168.56.210:8080
$ kubectl stop rc --server=192.168.56.210:8080

Continuously output pod's log message
$ kubectl log -f firewallcontroller-nv42v --server=192.168.56.210:8080

Get into pod's running shell
$ kubectl exec -p firewallcontroller-nv42v --server=192.168.56.210:8080 -it --
bash -il

Resize k8s replication controller
$ kubectl resize --replicas=1 rc firewallcontroller --server=192.168.56.210:8080

Send messages with echo client
./echoclient --dst=198.162.52.126:3333 --total=10
OR
$ echo "hello" | nc 198.162.52.217 3333

Copy stress tool binary from remote host to pod container (while inside a pod)
$ scp knodir@lamport.cs.ubc.ca:/home/knodir/devel/kubernetes/NODIRSTUFF/monitoring/stress stresstool

Run stress tool
$ stress --io 2 --vm 1

Mount VMs filesystem to the local folder for code developlment
$ sshfs core@192.168.56.210:/home/core/devel/kubernetes/VMC ~/remmount

Copy files from Pod to remote machine 
$ scp file_name.txt knodir@lamport.cs.ubc.ca:/home/knodir/devel/temp/experiment_data/


Kubernetes resource monitoring

Currently, Kubernetes supports only CPU and RAM based resource limitation.
"memory" is in bytes and "cpu" is in milli-cores. Current support is in a
container level, not Pod level. Source.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL