From f7779a8162b54dc85b302f7a4e21bbf09b318e4d Mon Sep 17 00:00:00 2001 From: wizard Date: Wed, 1 Jul 2015 15:59:38 +0800 Subject: [PATCH] update kubedns on ubuntu --- cluster/ubuntu/deployAddons.sh | 11 ++- cluster/ubuntu/skydns-rc.yaml.template | 106 +++++++++++++----------- cluster/ubuntu/skydns-svc.yaml.template | 30 ++++--- 3 files changed, 84 insertions(+), 63 deletions(-) diff --git a/cluster/ubuntu/deployAddons.sh b/cluster/ubuntu/deployAddons.sh index 29ca5d12afd..36f0064f08f 100755 --- a/cluster/ubuntu/deployAddons.sh +++ b/cluster/ubuntu/deployAddons.sh @@ -19,13 +19,16 @@ set -e KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. -source "config-default.sh" +source "util.sh" +detect-master +KUBE_SERVER="http:\/\/${KUBE_MASTER_IP}:8080" if [ "${ENABLE_CLUSTER_DNS}" == true ]; then echo "Deploying DNS on kubernetes" - sed -e "s/{{ pillar\['dns_replicas'\] }}/${DNS_REPLICAS}/g;s/{{ pillar\['dns_domain'\] }}/${DNS_DOMAIN}/g" skydns-rc.yaml.template > skydns-rc.yaml + 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.template > skydns-rc.yaml sed -e "s/{{ pillar\['dns_server'\] }}/${DNS_SERVER_IP}/g" skydns-svc.yaml.template > skydns-svc.yaml + # use kubectl to create skydns rc and service - "${KUBE_ROOT}/cluster/kubectl.sh" create -f skydns-rc.yaml - "${KUBE_ROOT}/cluster/kubectl.sh" create -f skydns-svc.yaml + "${KUBE_ROOT}/cluster/kubectl.sh" --namespace=kube-system create -f skydns-rc.yaml + "${KUBE_ROOT}/cluster/kubectl.sh" --namespace=kube-system create -f skydns-svc.yaml fi diff --git a/cluster/ubuntu/skydns-rc.yaml.template b/cluster/ubuntu/skydns-rc.yaml.template index b13ad7c6b79..f3a02c610e9 100644 --- a/cluster/ubuntu/skydns-rc.yaml.template +++ b/cluster/ubuntu/skydns-rc.yaml.template @@ -1,49 +1,61 @@ +apiVersion: v1 kind: ReplicationController -apiVersion: v1beta1 -id: kube-dns -namespace: kube-system -labels: - k8s-app: kube-dns - kubernetes.io/cluster-service: "true" -desiredState: - replicas: {{ pillar['dns_replicas'] }} - replicaSelector: +metadata: + name: kube-dns-v4 + namespace: kube-system + labels: k8s-app: kube-dns - podTemplate: - labels: - name: kube-dns - k8s-app: kube-dns - kubernetes.io/cluster-service: "true" - desiredState: - manifest: - version: v1beta2 - id: kube-dns - dnsPolicy: "Default" # Don't use cluster DNS. - containers: - - name: etcd - image: quay.io/coreos/etcd:v2.0.3 - command: [ - # entrypoint = "/etcd", - "-listen-client-urls=http://0.0.0.0:2379,http://0.0.0.0:4001", - "-initial-cluster-token=skydns-etcd", - "-advertise-client-urls=http://127.0.0.1:4001", - ] - - name: kube2sky - image: gcr.io/google_containers/kube2sky:1.1 - command: [ - # entrypoint = "/kube2sky", - "-domain={{ pillar['dns_domain'] }}", - ] - - name: skydns - image: gcr.io/google_containers/skydns:2015-03-11-001 - command: [ - # entrypoint = "/skydns", - "-machines=http://localhost:4001", - "-addr=0.0.0.0:53", - "-domain={{ pillar['dns_domain'] }}.", - ] - ports: - - name: dns - containerPort: 53 - protocol: UDP - + version: v4 + kubernetes.io/cluster-service: "true" +spec: + replicas: {{ pillar['dns_replicas'] }} + selector: + k8s-app: kube-dns + version: v4 + template: + metadata: + labels: + k8s-app: kube-dns + version: v4 + kubernetes.io/cluster-service: "true" + spec: + containers: + - name: etcd + image: gcr.io/google_containers/etcd:2.0.9 + command: + - /usr/local/bin/etcd + - -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 + - name: kube2sky + image: gcr.io/google_containers/kube2sky:1.10 + args: + # command = "/kube2sky" + - -domain={{ pillar['dns_domain'] }} + - -kube_master_url=kube_server_url + - name: skydns + image: gcr.io/google_containers/skydns:2015-03-11-001 + 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: + exec: + command: + - /bin/sh + - -c + - nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} localhost >/dev/null + initialDelaySeconds: 30 + timeoutSeconds: 5 + dnsPolicy: Default # Don't use cluster DNS. \ No newline at end of file diff --git a/cluster/ubuntu/skydns-svc.yaml.template b/cluster/ubuntu/skydns-svc.yaml.template index 6a76b0ac759..242c8871eec 100644 --- a/cluster/ubuntu/skydns-svc.yaml.template +++ b/cluster/ubuntu/skydns-svc.yaml.template @@ -1,14 +1,20 @@ +apiVersion: v1 kind: Service -apiVersion: v1beta1 -id: kube-dns -namespace: kube-system -protocol: UDP -port: 53 -portalIP: {{ pillar['dns_server'] }} -containerPort: 53 -labels: - k8s-app: kube-dns +metadata: name: kube-dns - kubernetes.io/cluster-service: "true" -selector: - k8s-app: 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