Skip to content

Instantly share code, notes, and snippets.

@2opremio
Last active December 4, 2015 22:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 2opremio/12eafc0c2485d8d13f2a to your computer and use it in GitHub Desktop.
Save 2opremio/12eafc0c2485d8d13f2a to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
if ! [ -d /Users/fons/home-vagrant/service/pki ]; then
curl -s -L https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/saltbase/salt/generate-cert/make-ca-cert.sh -o /tmp/make-ca-cert.sh
chmod +x /tmp/make-ca-cert.sh
CERT_GROUP=`id -g` CERT_DIR=/home/vagrant/k8s/local/pki /tmp/make-ca-cert.sh 10.0.0.1 DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local
fi
# Spawn new cluster
docker run --name etcd --net=host -d gcr.io/google_containers/etcd:2.0.12 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data
docker run \
--name local_k8s_kubelet \
--volume=/:/rootfs:ro \
--volume=/sys:/sys:ro \
--volume=/dev:/dev \
--volume=/var/lib/docker/:/var/lib/docker:rw \
--volume=/var/lib/kubelet/:/var/lib/kubelet:rw \
--volume=/var/run:/var/run:rw \
--net=host \
--pid=host \
--privileged=true \
-v /Users/fons/home-vagrant/service/master.json:/etc/kubernetes/manifests/master.json \
-d \
2opremio/hyperkube:81b6ac4 \
/hyperkube kubelet --containerized --hostname-override="127.0.0.1" --address="0.0.0.0" --api-servers=http://localhost:8080 --config=/etc/kubernetes/manifests --cluster-dns=10.0.0.10 --cluster-domain=cluster.local
docker run --name local_k8s_proxy -d --net=host --privileged 2opremio/hyperkube:81b6ac4 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {"name":"k8s-master"},
"spec":{
"hostNetwork": true,
"volumes": [
{
"name": "pki",
"hostPath": {
"path": "/Users/fons/home-vagrant/service/pki"
}
}
],
"containers":[
{
"name": "controller-manager",
"image": "2opremio/hyperkube:81b6ac4",
"command": [
"/hyperkube",
"controller-manager",
"--master=127.0.0.1:8080",
"--root-ca-file=/pki/ca.crt",
"--service-account-private-key-file=/pki/server.key",
"--v=2"
],
"volumeMounts": [
{
"name": "pki",
"mountPath": "/pki"
}
]
},
{
"name": "apiserver",
"image": "2opremio/hyperkube:81b6ac4",
"command": [
"/hyperkube",
"apiserver",
"--admission-control=NamespaceLifecycle,NamespaceAutoProvision,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota",
"--portal-net=10.0.0.1/24",
"--insecure-bind-address=0.0.0.0",
"--etcd-servers=http://127.0.0.1:4001",
"--cluster-name=kubernetes",
"--client-ca-file=/pki/ca.crt",
"--tls-cert-file=/pki/server.cert",
"--tls-private-key-file=/pki/server.key",
"--v=2"
],
"volumeMounts": [
{
"name": "pki",
"mountPath": "/pki"
}
]
},
{
"name": "scheduler",
"image": "2opremio/hyperkube:81b6ac4",
"command": [
"/hyperkube",
"scheduler",
"--master=127.0.0.1:8080",
"--v=2"
]
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment