mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	This is the 2nd attempt. The previous was reverted while we figured out the regional mirrors (oops). New plan: k8s.gcr.io is a read-only facade that auto-detects your source region (us, eu, or asia for now) and pulls from the closest. To publish an image, push k8s-staging.gcr.io and it will be synced to the regionals automatically (similar to today). For now the staging is an alias to gcr.io/google_containers (the legacy URL). When we move off of google-owned projects (working on it), then we just do a one-time sync, and change the google-internal config, and nobody outside should notice. We can, in parallel, change the auto-sync into a manual sync - send a PR to "promote" something from staging, and a bot activates it. Nice and visible, easy to keep track of.
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| apiVersion: v1
 | |
| kind: ServiceAccount
 | |
| metadata:
 | |
|   name: node-problem-detector
 | |
|   namespace: kube-system
 | |
|   labels:
 | |
|     kubernetes.io/cluster-service: "true"
 | |
|     addonmanager.kubernetes.io/mode: Reconcile
 | |
| ---
 | |
| apiVersion: rbac.authorization.k8s.io/v1
 | |
| kind: ClusterRoleBinding
 | |
| metadata:
 | |
|   name: npd-binding
 | |
|   labels:
 | |
|     kubernetes.io/cluster-service: "true"
 | |
|     addonmanager.kubernetes.io/mode: Reconcile
 | |
| roleRef:
 | |
|   apiGroup: rbac.authorization.k8s.io
 | |
|   kind: ClusterRole
 | |
|   name: system:node-problem-detector
 | |
| subjects:
 | |
| - kind: ServiceAccount
 | |
|   name: node-problem-detector
 | |
|   namespace: kube-system
 | |
| ---
 | |
| apiVersion: extensions/v1beta1
 | |
| kind: DaemonSet
 | |
| metadata:
 | |
|   name: npd-v0.4.1
 | |
|   namespace: kube-system
 | |
|   labels:
 | |
|     k8s-app: node-problem-detector
 | |
|     version: v0.4.1
 | |
|     kubernetes.io/cluster-service: "true"
 | |
|     addonmanager.kubernetes.io/mode: Reconcile
 | |
| spec:
 | |
|   template:
 | |
|     metadata:
 | |
|       labels:
 | |
|         k8s-app: node-problem-detector
 | |
|         version: v0.4.1
 | |
|         kubernetes.io/cluster-service: "true"
 | |
|     spec:
 | |
|       containers:
 | |
|       - name: node-problem-detector
 | |
|         image: k8s.gcr.io/node-problem-detector:v0.4.1
 | |
|         command:
 | |
|         - "/bin/sh"
 | |
|         - "-c"
 | |
|         # Pass both config to support both journald and syslog.
 | |
|         - "/node-problem-detector --logtostderr --system-log-monitors=/config/kernel-monitor.json,/config/kernel-monitor-filelog.json,/config/docker-monitor.json,/config/docker-monitor-filelog.json >>/var/log/node-problem-detector.log 2>&1"
 | |
|         securityContext:
 | |
|           privileged: true
 | |
|         resources:
 | |
|           limits:
 | |
|             cpu: "200m"
 | |
|             memory: "100Mi"
 | |
|           requests:
 | |
|             cpu: "20m"
 | |
|             memory: "20Mi"
 | |
|         env:
 | |
|         - name: NODE_NAME
 | |
|           valueFrom:
 | |
|             fieldRef:
 | |
|               fieldPath: spec.nodeName
 | |
|         volumeMounts:
 | |
|         - name: log
 | |
|           mountPath: /var/log
 | |
|         - name: localtime
 | |
|           mountPath: /etc/localtime
 | |
|           readOnly: true
 | |
|       volumes:
 | |
|       - name: log
 | |
|         hostPath:
 | |
|           path: /var/log/
 | |
|       - name: localtime
 | |
|         hostPath:
 | |
|           path: /etc/localtime
 | |
|           type: "FileOrCreate"
 | |
|       serviceAccountName: node-problem-detector
 | |
|       tolerations:
 | |
|       - operator: "Exists"
 | |
|         effect: "NoExecute"
 | |
|       - key: "CriticalAddonsOnly"
 | |
|         operator: "Exists"
 |