mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			151 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 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.
 | |
| 
 | |
| # __MACHINE_GENERATED_WARNING__
 | |
| 
 | |
| 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=__PILLAR__DNS__DOMAIN__.
 | |
|         - --dns-port=10053
 | |
|         - --config-map=kube-dns
 | |
|         - --v=2
 | |
|         __PILLAR__FEDERATIONS__DOMAIN__MAP__
 | |
|         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.__PILLAR__DNS__DOMAIN__,5,A
 | |
|         - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,A
 | |
|         ports:
 | |
|         - containerPort: 10054
 | |
|           name: metrics
 | |
|           protocol: TCP
 | |
|         resources:
 | |
|           requests:
 | |
|             memory: 20Mi
 | |
|             cpu: 10m
 | |
|       dnsPolicy: Default  # Don't use cluster DNS.
 |