mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			150 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# Copyright 2016 The Kubernetes Authors.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
# Should keep target in cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml
 | 
						|
# in sync with this file.
 | 
						|
 | 
						|
# Warning: This is a file generated from the base underscore template file: kubedns-controller.yaml.base
 | 
						|
 | 
						|
apiVersion: extensions/v1beta1
 | 
						|
kind: Deployment
 | 
						|
metadata:
 | 
						|
  name: kube-dns
 | 
						|
  namespace: kube-system
 | 
						|
  labels:
 | 
						|
    k8s-app: kube-dns
 | 
						|
    kubernetes.io/cluster-service: "true"
 | 
						|
spec:
 | 
						|
  # replicas: not specified here:
 | 
						|
  # 1. In order to make Addon Manager do not reconcile this replicas parameter.
 | 
						|
  # 2. Default is 1.
 | 
						|
  # 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.
 | 
						|
  strategy:
 | 
						|
    rollingUpdate:
 | 
						|
      maxSurge: 10%
 | 
						|
      maxUnavailable: 0
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      k8s-app: kube-dns
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        k8s-app: kube-dns
 | 
						|
      annotations:
 | 
						|
        scheduler.alpha.kubernetes.io/critical-pod: ''
 | 
						|
        scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
 | 
						|
    spec:
 | 
						|
      containers:
 | 
						|
      - name: kubedns
 | 
						|
        image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.10.1
 | 
						|
        resources:
 | 
						|
          # TODO: Set memory limits when we've profiled the container for large
 | 
						|
          # clusters, then set request = limit to keep this container in
 | 
						|
          # guaranteed class. Currently, this container falls into the
 | 
						|
          # "burstable" category so the kubelet doesn't backoff from restarting it.
 | 
						|
          limits:
 | 
						|
            memory: 170Mi
 | 
						|
          requests:
 | 
						|
            cpu: 100m
 | 
						|
            memory: 70Mi
 | 
						|
        livenessProbe:
 | 
						|
          httpGet:
 | 
						|
            path: /healthcheck/kubedns
 | 
						|
            port: 10054
 | 
						|
            scheme: HTTP
 | 
						|
          initialDelaySeconds: 60
 | 
						|
          timeoutSeconds: 5
 | 
						|
          successThreshold: 1
 | 
						|
          failureThreshold: 5
 | 
						|
        readinessProbe:
 | 
						|
          httpGet:
 | 
						|
            path: /readiness
 | 
						|
            port: 8081
 | 
						|
            scheme: HTTP
 | 
						|
          # we poll on pod startup for the Kubernetes master service and
 | 
						|
          # only setup the /readiness HTTP server once that's available.
 | 
						|
          initialDelaySeconds: 3
 | 
						|
          timeoutSeconds: 5
 | 
						|
        args:
 | 
						|
        - --domain=$DNS_DOMAIN.
 | 
						|
        - --dns-port=10053
 | 
						|
        - --config-map=kube-dns
 | 
						|
        - --v=2
 | 
						|
        env:
 | 
						|
        - name: PROMETHEUS_PORT
 | 
						|
          value: "10055"
 | 
						|
        ports:
 | 
						|
        - containerPort: 10053
 | 
						|
          name: dns-local
 | 
						|
          protocol: UDP
 | 
						|
        - containerPort: 10053
 | 
						|
          name: dns-tcp-local
 | 
						|
          protocol: TCP
 | 
						|
        - containerPort: 10055
 | 
						|
          name: metrics
 | 
						|
          protocol: TCP
 | 
						|
      - name: dnsmasq
 | 
						|
        image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.10.1
 | 
						|
        livenessProbe:
 | 
						|
          httpGet:
 | 
						|
            path: /healthcheck/dnsmasq
 | 
						|
            port: 10054
 | 
						|
            scheme: HTTP
 | 
						|
          initialDelaySeconds: 60
 | 
						|
          timeoutSeconds: 5
 | 
						|
          successThreshold: 1
 | 
						|
          failureThreshold: 5
 | 
						|
        args:
 | 
						|
        - --cache-size=1000
 | 
						|
        - --no-resolv
 | 
						|
        - --server=127.0.0.1#10053
 | 
						|
        - --log-facility=-
 | 
						|
        ports:
 | 
						|
        - containerPort: 53
 | 
						|
          name: dns
 | 
						|
          protocol: UDP
 | 
						|
        - containerPort: 53
 | 
						|
          name: dns-tcp
 | 
						|
          protocol: TCP
 | 
						|
        # see: https://github.com/kubernetes/kubernetes/issues/29055 for details
 | 
						|
        resources:
 | 
						|
          requests:
 | 
						|
            cpu: 150m
 | 
						|
            memory: 10Mi
 | 
						|
      - name: sidecar
 | 
						|
        image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.10.1
 | 
						|
        livenessProbe:
 | 
						|
          httpGet:
 | 
						|
            path: /metrics
 | 
						|
            port: 10054
 | 
						|
            scheme: HTTP
 | 
						|
          initialDelaySeconds: 60
 | 
						|
          timeoutSeconds: 5
 | 
						|
          successThreshold: 1
 | 
						|
          failureThreshold: 5
 | 
						|
        args:
 | 
						|
        - --v=2
 | 
						|
        - --logtostderr
 | 
						|
        - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.$DNS_DOMAIN,5,A
 | 
						|
        - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.$DNS_DOMAIN,5,A
 | 
						|
        ports:
 | 
						|
        - containerPort: 10054
 | 
						|
          name: metrics
 | 
						|
          protocol: TCP
 | 
						|
        resources:
 | 
						|
          requests:
 | 
						|
            memory: 20Mi
 | 
						|
            cpu: 10m
 | 
						|
      dnsPolicy: Default  # Don't use cluster DNS.
 |