Build etcdctl and fleetctl:
go get github.com/coreos/etcd/etcdctl
go get github.com/coreos/fleet/fleetctl
Build kubecfg:
git clone https://github.com/GoogleCloudPlatform/kubernetes
make
cp ./_output/local/bin/darwin/amd64/kubecfg ~/bin
Google Cloud SDK: https://cloud.google.com/sdk/
gcloud compute instances create control \
--image-project coreos-cloud \
--image coreos-alpha-494-0-0-v20141108 \
--boot-disk-size 200GB \
--machine-type n1-standard-1 \
--can-ip-forward \
--scopes compute-rw \
--metadata-from-file user-data=control.yaml \
--zone us-central1-a
gcloud compute instances list
ssh -f -nNT -L 4001:127.0.0.1:4001 core@<control-external-ip>
ssh -f -nNT -L 8080:127.0.0.1:8080 core@<control-external-ip>
export FLEETCTL_TUNNEL="<control-external-ip>"
sed -i -e 's/CONTROL-NODE-INTERNAL-IP/<control-internal-ip>/g' *.{json,yaml,service}
etcdctl --no-sync set /coreos.com/network/config '{"Network":"10.244.0.0/16"}'
gcloud compute instances create node1 node2 node3 node4 node5 \
--image-project coreos-cloud \
--image coreos-alpha-494-0-0-v20141108 \
--boot-disk-size 200GB \
--machine-type n1-standard-1 \
--can-ip-forward \
--metadata-from-file user-data=node.yaml \
--zone us-central1-a
gcloud compute instances list
fleetctl list-machines
etcdctl --no-sync ls / --recursive
gcloud compute ssh core@node1
docker run -t -i busybox /bin/sh -c 'ifconfig eth0 && nc -l -p 80'
gcloud compute ssh core@node2
Replace eth0-ip with the ip address from above.
docker run -t -i busybox /bin/sh -c 'nc <eth0-ip>:80'
etcdctl --no-sync set /logentries.com/token <token>
fleetctl start journal-2-logentries.service
fleetctl list-units
gcloud compute ssh core@node1
/usr/bin/toolbox
yum install tcpdump
ip addr show flannel0
tcpdump -i flannel0
gcloud compute ssh core@node2
ping <node1-flannel0-ip>
fleetctl start kube-kubelet.service
fleetctl start kube-proxy.service
fleetctl start kube-apiserver.service
fleetctl start kube-controller-manager.service
fleetctl start kube-scheduler.service
fleetctl start kube-register.service
fleetctl list-units
kubecfg list minions
cat hello-stable-controller.json
kubecfg -c hello-stable-controller.json create replicationControllers
kubecfg list replicationControllers
kubecfg list pods
Edit: hello-stable-controller.json
"replicas": 4
kubecfg -c hello-stable-controller.json update replicationControllers/helloStableController
kubecfg list pods
cat hello-service.json
kubecfg -c hello-service.json create services
gcloud compute firewall-rules create default-allow-hello --allow tcp:80
gcloud compute instances list
cat hello-canary-controller.json
kubecfg -c hello-canary-controller.json create replicationControllers
kubecfg list pods
gcloud compute instances list
while true; do curl http://<node-external-ip>; echo; sleep 2; done
while true; do curl http://<node-external-ip>; echo; sleep 2; done
kubecfg --image "quay.io/kelseyhightower/hello:2.0.0" rollingupdate helloStableController
watch kubecfg list pods