diff --git a/docs/getting-started-guides/docker-multinode.md b/docs/getting-started-guides/docker-multinode.md
index f4bbb10fe1d..135ae4a86e0 100644
--- a/docs/getting-started-guides/docker-multinode.md
+++ b/docs/getting-started-guides/docker-multinode.md
@@ -48,6 +48,7 @@ Please install Docker 1.6.2 or Docker 1.7.1.
- [Bootstrap Docker](#bootstrap-docker)
- [Master Node](#master-node)
- [Adding a worker node](#adding-a-worker-node)
+- [Deploy a DNS](#deploy-a-dns)
- [Testing your cluster](#testing-your-cluster)
## Prerequisites
@@ -106,6 +107,10 @@ cd kubernetes/docs/getting-started-guides/docker-multinode/
See [here](docker-multinode/worker.md) for detailed instructions explanation.
+## Deploy a DNS
+
+See [here](docker-multinode/deployDNS.md) for instructions.
+
## Testing your cluster
Once your cluster has been created you can [test it out](docker-multinode/testing.md)
diff --git a/docs/getting-started-guides/docker-multinode/deployDNS.md b/docs/getting-started-guides/docker-multinode/deployDNS.md
new file mode 100644
index 00000000000..7d6bb84a09c
--- /dev/null
+++ b/docs/getting-started-guides/docker-multinode/deployDNS.md
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
PLEASE NOTE: This document applies to the HEAD of the source tree
+
+If you are using a released version of Kubernetes, you should
+refer to the docs that go with that version.
+
+
+The latest 1.0.x release of this document can be found
+[here](http://releases.k8s.io/release-1.0/docs/getting-started-guides/docker-multinode/deployDNS.md).
+
+Documentation for other releases can be found at
+[releases.k8s.io](http://releases.k8s.io).
+
+--
+
+
+
+
+
+## Deploy DNS
+
+### Get the template file
+
+First of all, download the template dns rc and svc file from
+
+[skydns-rc template](skydns-rc.yaml.in)
+
+[skydns-svc template](skydns-svc.yaml.in)
+
+### Set env
+
+Then you need to set `DNS_REPLICAS` , `DNS_DOMAIN` , `DNS_SERVER_IP` , `KUBE_SERVER` ENV.
+
+```
+$ export DNS_REPLICAS=1
+
+$ export DNS_DOMAIN=cluster.local # specify in startup parameter `--cluster-domain` for containerized kubelet
+
+$ export DNS_SERVER_IP=10.0.0.10 # specify in startup parameter `--cluster-dns` for containerized kubelet
+
+$ export KUBE_SERVER=10.10.103.250 # your master server ip, you may change it
+```
+
+### Replace the correponding value in the template.
+
+```
+$ sed -e "s/{{ pillar\['dns_replicas'\] }}/${DNS_REPLICAS}/g;s/{{ pillar\['dns_domain'\] }}/${DNS_DOMAIN}/g;s/{kube_server_url}/${KUBE_SERVER}/g;" skydns-rc.yaml.in > ./skydns-rc.yaml
+
+$ sed -e "s/{{ pillar\['dns_server'\] }}/${DNS_SERVER_IP}/g" skydns-svc.yaml.in > ./skydns-svc.yaml
+```
+
+### Use `kubectl` to create skydns rc and service
+
+
+```
+$ kubectl -s "$KUBE_SERVER:8080" --namespace=kube-system create -f ./skydns-rc.yaml
+
+$ kubectl -s "$KUBE_SERVER:8080" --namespace=kube-system create -f ./skydns-svc.yaml
+```
+
+### Test if DNS works
+
+Follow [this link](../../../cluster/addons/dns/#how-do-i-test-if-it-is-working) to check it out.
+
+
+
+
+
+
+[]()
+
diff --git a/docs/getting-started-guides/docker-multinode/master.md b/docs/getting-started-guides/docker-multinode/master.md
index 2f61adba241..ea219ed9185 100644
--- a/docs/getting-started-guides/docker-multinode/master.md
+++ b/docs/getting-started-guides/docker-multinode/master.md
@@ -160,9 +160,11 @@ systemctl start docker
Ok, now that your networking is set up, you can startup Kubernetes, this is the same as the single-node case, we will use the "main" instance of the Docker daemon for the Kubernetes components.
```sh
-sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.21.2 /hyperkube kubelet --api-servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=127.0.0.1 --config=/etc/kubernetes/manifests-multi
+sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube kubelet --api-servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=127.0.0.1 --config=/etc/kubernetes/manifests-multi --cluster-dns=10.0.0.10 --cluster-domain=cluster.local
```
+> Note that `--cluster-dns` and `--cluster-domain` is used to deploy dns, feel free to discard them if dns is not needed.
+
### Also run the service proxy
```sh
@@ -196,7 +198,7 @@ If all else fails, ask questions on IRC at [#google-containers](http://webchat.f
### Next steps
-Move on to [adding one or more workers](worker.md)
+Move on to [adding one or more workers](worker.md) or [deploy a dns](deployDNS.md)
diff --git a/docs/getting-started-guides/docker-multinode/master.sh b/docs/getting-started-guides/docker-multinode/master.sh
index 6dcad323327..74e41324d0a 100755
--- a/docs/getting-started-guides/docker-multinode/master.sh
+++ b/docs/getting-started-guides/docker-multinode/master.sh
@@ -135,7 +135,7 @@ start_k8s(){
sleep 5
# Start kubelet & proxy, then start master components as pods
- docker run --net=host --privileged --restart=always -d -v /sys:/sys:ro -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v${K8S_VERSION} /hyperkube kubelet --api-servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=127.0.0.1 --config=/etc/kubernetes/manifests-multi
+ docker run --net=host --privileged --restart=always -d -v /sys:/sys:ro -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v${K8S_VERSION} /hyperkube kubelet --api-servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=127.0.0.1 --config=/etc/kubernetes/manifests-multi --cluster-dns=10.0.0.10 --cluster-domain=cluster.local
docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v${K8S_VERSION} /hyperkube proxy --master=http://127.0.0.1:8080 --v=2
}
diff --git a/docs/getting-started-guides/docker-multinode/skydns-rc.yaml.in b/docs/getting-started-guides/docker-multinode/skydns-rc.yaml.in
new file mode 100644
index 00000000000..845af9bf947
--- /dev/null
+++ b/docs/getting-started-guides/docker-multinode/skydns-rc.yaml.in
@@ -0,0 +1,92 @@
+apiVersion: v1
+kind: ReplicationController
+metadata:
+ name: kube-dns-v8
+ namespace: kube-system
+ labels:
+ k8s-app: kube-dns
+ version: v8
+ kubernetes.io/cluster-service: "true"
+spec:
+ replicas: {{ pillar['dns_replicas'] }}
+ selector:
+ k8s-app: kube-dns
+ version: v8
+ template:
+ metadata:
+ labels:
+ k8s-app: kube-dns
+ version: v8
+ kubernetes.io/cluster-service: "true"
+ spec:
+ containers:
+ - name: etcd
+ image: gcr.io/google_containers/etcd:2.0.9
+ resources:
+ limits:
+ cpu: 100m
+ memory: 50Mi
+ command:
+ - /usr/local/bin/etcd
+ - -data-dir
+ - /var/etcd/data
+ - -listen-client-urls
+ - http://127.0.0.1:2379,http://127.0.0.1:4001
+ - -advertise-client-urls
+ - http://127.0.0.1:2379,http://127.0.0.1:4001
+ - -initial-cluster-token
+ - skydns-etcd
+ volumeMounts:
+ - name: etcd-storage
+ mountPath: /var/etcd/data
+ - name: kube2sky
+ image: gcr.io/google_containers/kube2sky:1.11
+ resources:
+ limits:
+ cpu: 100m
+ memory: 50Mi
+ args:
+ # command = "/kube2sky"
+ - -domain={{ pillar['dns_domain'] }}
+ - -kube_master_url=http://{kube_server_url}:8080
+ - name: skydns
+ image: gcr.io/google_containers/skydns:2015-03-11-001
+ resources:
+ limits:
+ cpu: 100m
+ memory: 50Mi
+ args:
+ # command = "/skydns"
+ - -machines=http://localhost:4001
+ - -addr=0.0.0.0:53
+ - -domain={{ pillar['dns_domain'] }}.
+ ports:
+ - containerPort: 53
+ name: dns
+ protocol: UDP
+ - containerPort: 53
+ name: dns-tcp
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8080
+ scheme: HTTP
+ initialDelaySeconds: 30
+ timeoutSeconds: 5
+ - name: healthz
+ image: gcr.io/google_containers/exechealthz:1.0
+ resources:
+ limits:
+ cpu: 10m
+ memory: 20Mi
+ args:
+ - -cmd=nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} localhost >/dev/null
+ - -port=8080
+ ports:
+ - containerPort: 8080
+ protocol: TCP
+ volumes:
+ - name: etcd-storage
+ emptyDir: {}
+ dnsPolicy: Default # Don't use cluster DNS.
diff --git a/docs/getting-started-guides/docker-multinode/skydns-svc.yaml.in b/docs/getting-started-guides/docker-multinode/skydns-svc.yaml.in
new file mode 100644
index 00000000000..242c8871eec
--- /dev/null
+++ b/docs/getting-started-guides/docker-multinode/skydns-svc.yaml.in
@@ -0,0 +1,20 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: kube-dns
+ namespace: kube-system
+ labels:
+ k8s-app: kube-dns
+ kubernetes.io/cluster-service: "true"
+ kubernetes.io/name: "KubeDNS"
+spec:
+ selector:
+ k8s-app: kube-dns
+ clusterIP: {{ pillar['dns_server'] }}
+ ports:
+ - name: dns
+ port: 53
+ protocol: UDP
+ - name: dns-tcp
+ port: 53
+ protocol: TCP
diff --git a/docs/getting-started-guides/docker-multinode/worker.md b/docs/getting-started-guides/docker-multinode/worker.md
index 8b79b8c2183..d662f104358 100644
--- a/docs/getting-started-guides/docker-multinode/worker.md
+++ b/docs/getting-started-guides/docker-multinode/worker.md
@@ -146,7 +146,7 @@ systemctl start docker
Again this is similar to the above, but the `--api-servers` now points to the master we set up in the beginning.
```sh
-sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.21.2 /hyperkube kubelet --api-servers=http://${MASTER_IP}:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=$(hostname -i)
+sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube kubelet --api-servers=http://${MASTER_IP}:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=$(hostname -i) --cluster-dns=10.0.0.10 --cluster-domain=cluster.local
```
#### Run the service proxy
diff --git a/docs/getting-started-guides/docker-multinode/worker.sh b/docs/getting-started-guides/docker-multinode/worker.sh
index 6cf7e76f275..14b1310d00c 100755
--- a/docs/getting-started-guides/docker-multinode/worker.sh
+++ b/docs/getting-started-guides/docker-multinode/worker.sh
@@ -133,9 +133,8 @@ start_k8s() {
sleep 5
# Start kubelet & proxy in container
- sudo docker run --net=host --privileged --restart=always -d -v /sys:/sys:ro -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v${K8S_VERSION} /hyperkube kubelet --api-servers=http://${MASTER_IP}:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=$(hostname -i)
+ sudo docker run --net=host --privileged --restart=always -d -v /sys:/sys:ro -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v${K8S_VERSION} /hyperkube kubelet --api-servers=http://${MASTER_IP}:8080 --v=2 --address=0.0.0.0 --enable-server --hostname-override=$(hostname -i) --cluster-dns=10.0.0.10 --cluster-domain=cluster.local
sudo docker run -d --net=host --privileged --restart=always gcr.io/google_containers/hyperkube:v${K8S_VERSION} /hyperkube proxy --master=http://${MASTER_IP}:8080 --v=2
-
}
echo "Detecting your OS distro ..."