diff --git a/cluster/addons/dns/skydns-rc.yaml.base b/cluster/addons/dns/skydns-rc.yaml.base index fecc1c7c1a3..84114ae86d3 100644 --- a/cluster/addons/dns/skydns-rc.yaml.base +++ b/cluster/addons/dns/skydns-rc.yaml.base @@ -12,14 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This file should be kept in sync with cluster/images/hyperkube/dns-rc.yaml - # TODO - At some point, we need to rename all skydns-*.yaml.* files to kubedns-*.yaml.* # __MACHINE_GENERATED_WARNING__ -apiVersion: v1 -kind: ReplicationController +apiVersion: extensions/v1beta1 +kind: Deployment metadata: name: kube-dns-v19 namespace: kube-system @@ -30,8 +28,9 @@ metadata: spec: replicas: __PILLAR__DNS__REPLICAS__ selector: - k8s-app: kube-dns - version: v19 + matchLabels: + k8s-app: kube-dns + version: v19 template: metadata: labels: diff --git a/cluster/addons/dns/skydns-rc.yaml.in b/cluster/addons/dns/skydns-rc.yaml.in index 5133f5d1ea7..e872377ea2c 100644 --- a/cluster/addons/dns/skydns-rc.yaml.in +++ b/cluster/addons/dns/skydns-rc.yaml.in @@ -12,14 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This file should be kept in sync with cluster/images/hyperkube/dns-rc.yaml - # TODO - At some point, we need to rename all skydns-*.yaml.* files to kubedns-*.yaml.* # Warning: This is a file generated from the base underscore template file: skydns-rc.yaml.base -apiVersion: v1 -kind: ReplicationController +apiVersion: extensions/v1beta1 +kind: Deployment metadata: name: kube-dns-v19 namespace: kube-system @@ -30,8 +28,9 @@ metadata: spec: replicas: {{ pillar['dns_replicas'] }} selector: - k8s-app: kube-dns - version: v19 + matchLabels: + k8s-app: kube-dns + version: v19 template: metadata: labels: diff --git a/cluster/addons/dns/skydns-rc.yaml.sed b/cluster/addons/dns/skydns-rc.yaml.sed index 2e9da4d4f04..a6a2f63c42c 100644 --- a/cluster/addons/dns/skydns-rc.yaml.sed +++ b/cluster/addons/dns/skydns-rc.yaml.sed @@ -12,14 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This file should be kept in sync with cluster/images/hyperkube/dns-rc.yaml - # TODO - At some point, we need to rename all skydns-*.yaml.* files to kubedns-*.yaml.* # Warning: This is a file generated from the base underscore template file: skydns-rc.yaml.base -apiVersion: v1 -kind: ReplicationController +apiVersion: extensions/v1beta1 +kind: Deployment metadata: name: kube-dns-v19 namespace: kube-system @@ -30,8 +28,9 @@ metadata: spec: replicas: $DNS_REPLICAS selector: - k8s-app: kube-dns - version: v19 + matchLabels: + k8s-app: kube-dns + version: v19 template: metadata: labels: diff --git a/cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml b/cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml index aa83e8a4380..e3decaae4c0 100644 --- a/cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml +++ b/cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml @@ -1,23 +1,27 @@ -apiVersion: v1 -kind: ReplicationController +apiVersion: extensions/v1beta1 +kind: Deployment metadata: - name: kube-dns-v15 + name: kube-dns-v19 namespace: kube-system labels: k8s-app: kube-dns - version: v15 + version: v19 kubernetes.io/cluster-service: "true" spec: replicas: ${DNS_REPLICAS} selector: - k8s-app: kube-dns - version: v15 + matchLabels: + k8s-app: kube-dns + version: v19 template: metadata: labels: k8s-app: kube-dns - version: v15 + version: v19 kubernetes.io/cluster-service: "true" + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' + scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' spec: containers: - name: kubedns @@ -63,7 +67,7 @@ spec: name: dns-tcp-local protocol: TCP - name: dnsmasq - image: gcr.io/google_containers/dnsmasq:1.1 + image: gcr.io/google_containers/kube-dnsmasq-amd64:1.3 args: - --cache-size=1000 - --no-resolv @@ -76,18 +80,23 @@ spec: name: dns-tcp protocol: TCP - name: healthz - image: gcr.io/google_containers/exechealthz-amd64:1.0 + image: gcr.io/google_containers/exechealthz-amd64:1.1 resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 10m - memory: 20Mi + memory: 50Mi requests: cpu: 10m - memory: 20Mi + # Note that this container shouldn't really need 50Mi of memory. The + # limits are set higher than expected pending investigation on #29688. + # The extra memory was stolen from the kubedns container to keep the + # net memory requested by the pod constant. + memory: 50Mi args: - - -cmd=nslookup kubernetes.default.svc.${DNS_DOMAIN} 127.0.0.1 >/dev/null + - -cmd=nslookup kubernetes.default.svc.${DNS_DOMAIN} 127.0.0.1 >/dev/null && nslookup kubernetes.default.svc.${DNS_DOMAIN} 127.0.0.1:10053 >/dev/null - -port=8080 + - -quiet ports: - containerPort: 8080 protocol: TCP diff --git a/cluster/juju/layers/kubernetes/templates/kubedns-rc.yaml b/cluster/juju/layers/kubernetes/templates/kubedns-rc.yaml index 4feae0355b0..01c09f1f209 100644 --- a/cluster/juju/layers/kubernetes/templates/kubedns-rc.yaml +++ b/cluster/juju/layers/kubernetes/templates/kubedns-rc.yaml @@ -12,30 +12,32 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This file should be kept in sync with cluster/images/hyperkube/dns-rc.yaml - # Warning: This is a file generated from the base underscore template file: skydns-rc.yaml.base -apiVersion: v1 -kind: ReplicationController +apiVersion: extensions/v1beta1 +kind: Deployment metadata: - name: kube-dns-v18 + name: kube-dns-v19 namespace: kube-system labels: k8s-app: kube-dns - version: v18 + version: v19 kubernetes.io/cluster-service: "true" spec: replicas: {{ pillar['dns_replicas'] }} selector: - k8s-app: kube-dns - version: v18 + matchLabels: + k8s-app: kube-dns + version: v19 template: metadata: labels: k8s-app: kube-dns - version: v18 + version: v19 kubernetes.io/cluster-service: "true" + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' + scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' spec: containers: - name: kubedns @@ -96,15 +98,19 @@ spec: name: dns-tcp protocol: TCP - name: healthz - image: gcr.io/google_containers/exechealthz-{{ arch }}:1.0 + image: gcr.io/google_containers/exechealthz-{{ arch }}:1.1 resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 10m - memory: 20Mi + memory: 50Mi requests: cpu: 10m - memory: 20Mi + # Note that this container shouldn't really need 50Mi of memory. The + # limits are set higher than expected pending investigation on #29688. + # The extra memory was stolen from the kubedns container to keep the + # net memory requested by the pod constant. + memory: 50Mi args: - -cmd=nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} 127.0.0.1 >/dev/null && nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} 127.0.0.1:10053 >/dev/null - -port=8080