mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			170 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .TH "KUBERNETES" "1" " kubernetes User Manuals" "Eric Paris" "Jan 2015"  ""
 | |
| 
 | |
| 
 | |
| .SH NAME
 | |
| .PP
 | |
| kubectl drain \- Drain node in preparation for maintenance
 | |
| 
 | |
| 
 | |
| .SH SYNOPSIS
 | |
| .PP
 | |
| \fBkubectl drain\fP [OPTIONS]
 | |
| 
 | |
| 
 | |
| .SH DESCRIPTION
 | |
| .PP
 | |
| Drain node in preparation for maintenance.
 | |
| 
 | |
| .PP
 | |
| The given node will be marked unschedulable to prevent new pods from arriving.
 | |
| Then drain deletes all pods except mirror pods (which cannot be deleted through
 | |
| the API server).  If there are DaemonSet\-managed pods, drain will not proceed
 | |
| without \-\-ignore\-daemonsets, and regardless it will not delete any
 | |
| DaemonSet\-managed pods, because those pods would be immediately replaced by the
 | |
| DaemonSet controller, which ignores unschedulable markings.  If there are any
 | |
| pods that are neither mirror pods nor managed\-\-by ReplicationController,
 | |
| ReplicaSet, DaemonSet or Job\-\-, then drain will not delete any pods unless you
 | |
| use \-\-force.
 | |
| 
 | |
| .PP
 | |
| When you are ready to put the node back into service, use kubectl uncordon, which
 | |
| will make the node schedulable again.
 | |
| 
 | |
| 
 | |
| .SH OPTIONS
 | |
| .PP
 | |
| \fB\-\-force\fP=false
 | |
|     Continue even if there are pods not managed by a ReplicationController, ReplicaSet, Job, or DaemonSet.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-grace\-period\fP=\-1
 | |
|     Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-ignore\-daemonsets\fP=false
 | |
|     Ignore DaemonSet\-managed pods.
 | |
| 
 | |
| 
 | |
| .SH OPTIONS INHERITED FROM PARENT COMMANDS
 | |
| .PP
 | |
| \fB\-\-alsologtostderr\fP=false
 | |
|     log to standard error as well as files
 | |
| 
 | |
| .PP
 | |
| \fB\-\-api\-version\fP=""
 | |
|     DEPRECATED: The API version to use when talking to the server
 | |
| 
 | |
| .PP
 | |
| \fB\-\-as\fP=""
 | |
|     Username to impersonate for the operation.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-certificate\-authority\fP=""
 | |
|     Path to a cert. file for the certificate authority.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-client\-certificate\fP=""
 | |
|     Path to a client certificate file for TLS.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-client\-key\fP=""
 | |
|     Path to a client key file for TLS.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-cluster\fP=""
 | |
|     The name of the kubeconfig cluster to use
 | |
| 
 | |
| .PP
 | |
| \fB\-\-context\fP=""
 | |
|     The name of the kubeconfig context to use
 | |
| 
 | |
| .PP
 | |
| \fB\-\-insecure\-skip\-tls\-verify\fP=false
 | |
|     If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-kubeconfig\fP=""
 | |
|     Path to the kubeconfig file to use for CLI requests.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-log\-backtrace\-at\fP=:0
 | |
|     when logging hits line file:N, emit a stack trace
 | |
| 
 | |
| .PP
 | |
| \fB\-\-log\-dir\fP=""
 | |
|     If non\-empty, write log files in this directory
 | |
| 
 | |
| .PP
 | |
| \fB\-\-log\-flush\-frequency\fP=5s
 | |
|     Maximum number of seconds between log flushes
 | |
| 
 | |
| .PP
 | |
| \fB\-\-logtostderr\fP=true
 | |
|     log to standard error instead of files
 | |
| 
 | |
| .PP
 | |
| \fB\-\-match\-server\-version\fP=false
 | |
|     Require server version to match client version
 | |
| 
 | |
| .PP
 | |
| \fB\-\-namespace\fP=""
 | |
|     If present, the namespace scope for this CLI request.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-password\fP=""
 | |
|     Password for basic authentication to the API server.
 | |
| 
 | |
| .PP
 | |
| \fB\-s\fP, \fB\-\-server\fP=""
 | |
|     The address and port of the Kubernetes API server
 | |
| 
 | |
| .PP
 | |
| \fB\-\-stderrthreshold\fP=2
 | |
|     logs at or above this threshold go to stderr
 | |
| 
 | |
| .PP
 | |
| \fB\-\-token\fP=""
 | |
|     Bearer token for authentication to the API server.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-user\fP=""
 | |
|     The name of the kubeconfig user to use
 | |
| 
 | |
| .PP
 | |
| \fB\-\-username\fP=""
 | |
|     Username for basic authentication to the API server.
 | |
| 
 | |
| .PP
 | |
| \fB\-\-v\fP=0
 | |
|     log level for V logs
 | |
| 
 | |
| .PP
 | |
| \fB\-\-vmodule\fP=
 | |
|     comma\-separated list of pattern=N settings for file\-filtered logging
 | |
| 
 | |
| 
 | |
| .SH EXAMPLE
 | |
| .PP
 | |
| .RS
 | |
| 
 | |
| .nf
 | |
| # Drain node "foo", even if there are pods not managed by a ReplicationController, ReplicaSet, Job, or DaemonSet on it.
 | |
| $ kubectl drain foo \-\-force
 | |
| 
 | |
| # As above, but abort if there are pods not managed by a ReplicationController, ReplicaSet, Job, or DaemonSet, and use a grace period of 15 minutes.
 | |
| $ kubectl drain foo \-\-grace\-period=900
 | |
| 
 | |
| 
 | |
| .fi
 | |
| .RE
 | |
| 
 | |
| 
 | |
| .SH SEE ALSO
 | |
| .PP
 | |
| \fBkubectl(1)\fP,
 | |
| 
 | |
| 
 | |
| .SH HISTORY
 | |
| .PP
 | |
| January 2015, Originally compiled by Eric Paris (eparis at redhat dot com) based on the kubernetes source material, but hopefully they have been automatically generated since!
 |