mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #15674 from erictune/cheatsheet
Auto commit by PR queue bot
This commit is contained in:
		
							
								
								
									
										159
									
								
								docs/user-guide/kubectl-cheatsheet.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								docs/user-guide/kubectl-cheatsheet.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,159 @@
 | 
			
		||||
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
 | 
			
		||||
 | 
			
		||||
<!-- BEGIN STRIP_FOR_RELEASE -->
 | 
			
		||||
 | 
			
		||||
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
 | 
			
		||||
     width="25" height="25">
 | 
			
		||||
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
 | 
			
		||||
     width="25" height="25">
 | 
			
		||||
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
 | 
			
		||||
     width="25" height="25">
 | 
			
		||||
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
 | 
			
		||||
     width="25" height="25">
 | 
			
		||||
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
 | 
			
		||||
     width="25" height="25">
 | 
			
		||||
 | 
			
		||||
<h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>
 | 
			
		||||
 | 
			
		||||
If you are using a released version of Kubernetes, you should
 | 
			
		||||
refer to the docs that go with that version.
 | 
			
		||||
 | 
			
		||||
<strong>
 | 
			
		||||
The latest 1.0.x release of this document can be found
 | 
			
		||||
[here](http://releases.k8s.io/release-1.0/docs/user-guide/kubectl-cheatsheet.md).
 | 
			
		||||
 | 
			
		||||
Documentation for other releases can be found at
 | 
			
		||||
[releases.k8s.io](http://releases.k8s.io).
 | 
			
		||||
</strong>
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
<!-- END STRIP_FOR_RELEASE -->
 | 
			
		||||
 | 
			
		||||
<!-- END MUNGE: UNVERSIONED_WARNING -->
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
An assortment of compact kubectl examples
 | 
			
		||||
 | 
			
		||||
See also: [Kubectl overview](kubectl-overview.md) and [JsonPath guide](jsonpath.md).
 | 
			
		||||
 | 
			
		||||
## Creating Objects
 | 
			
		||||
 | 
			
		||||
```console
 | 
			
		||||
$ kubectl create -f ./file.yml                   # create resource(s) in a json or yaml file
 | 
			
		||||
 | 
			
		||||
$ kubectl create -f ./file1.yml -f ./file2.yaml  # create resource(s) in a json or yaml file
 | 
			
		||||
 | 
			
		||||
$ kubectl create -f ./dir                        # create resources in all .json, .yml, and .yaml files in dir
 | 
			
		||||
 | 
			
		||||
# Create from a URL
 | 
			
		||||
$ kubectl create -f http://www.fpaste.org/279276/48569091/raw/
 | 
			
		||||
 | 
			
		||||
# Create multiple YAML objects from stdin
 | 
			
		||||
$ cat <<EOF | kubectl create -f -
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Pod
 | 
			
		||||
metadata:
 | 
			
		||||
  name: busybox-sleep
 | 
			
		||||
spec:
 | 
			
		||||
  containers:
 | 
			
		||||
  - name: busybox
 | 
			
		||||
    image: busybox
 | 
			
		||||
    args:
 | 
			
		||||
    - sleep
 | 
			
		||||
    - "1000000"
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Pod
 | 
			
		||||
metadata:
 | 
			
		||||
  name: busybox-sleep-less
 | 
			
		||||
spec:
 | 
			
		||||
  containers:
 | 
			
		||||
  - name: busybox
 | 
			
		||||
    image: busybox
 | 
			
		||||
    args:
 | 
			
		||||
    - sleep
 | 
			
		||||
    - "1000"
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
# Create a secret with several keys
 | 
			
		||||
$ cat <<EOF | kubectl create -f -
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Secret
 | 
			
		||||
metadata:
 | 
			
		||||
  name: mysecret
 | 
			
		||||
type: Opaque
 | 
			
		||||
data:
 | 
			
		||||
  password: $(echo "s33msi4" | base64)
 | 
			
		||||
  username: $(echo "jane" | base64)
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
# TODO: kubectl-explain example
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Viewing, Finding Resources
 | 
			
		||||
 | 
			
		||||
```console
 | 
			
		||||
# Columnar output
 | 
			
		||||
$ kubectl get services                          # List all services in the namespace
 | 
			
		||||
$ kubectl get pods --all-namespaces             # List all pods in all namespaces
 | 
			
		||||
$ kubectl get pods -o wide                      # List all pods in the namespace, with more details
 | 
			
		||||
$ kubectl get rc <rc-name>                      # List a particular replication controller
 | 
			
		||||
$ kubectl get replicationcontroller <rc-name>   # List a particular RC
 | 
			
		||||
 | 
			
		||||
# Verbose output
 | 
			
		||||
$ kubectl describe nodes <node-name>
 | 
			
		||||
$ kubectl describe pods <pod-name>
 | 
			
		||||
$ kubectl describe pods/<pod-name>              # Equivalent to previous
 | 
			
		||||
$ kubectl describe pods <rc-name>               # Lists pods created by <rc-name> using common prefix
 | 
			
		||||
 | 
			
		||||
# List Services Sorted by Name
 | 
			
		||||
$ kubectl get services --sort-by=.metadata.name
 | 
			
		||||
 | 
			
		||||
# List pods Sorted by Restart Count
 | 
			
		||||
$ kubectl get pods --sort-by=.status.containerStatuses[0].restartCount
 | 
			
		||||
 | 
			
		||||
# Get the version label of all pods with label app=cassandra
 | 
			
		||||
$ kubectl get pods --selector=app=cassandra rc -o 'jsonpath={.items[*].metadata.labels.version}'
 | 
			
		||||
 | 
			
		||||
# Get ExternalIPs of all nodes
 | 
			
		||||
$ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=ExternalIP)].address}'
 | 
			
		||||
 | 
			
		||||
# List Names of Pods that belong to Particular RC
 | 
			
		||||
# "jq" command useful for transformations that are too complex for jsonpath
 | 
			
		||||
$ sel=$(./kubectl get rc <rc-name> --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')
 | 
			
		||||
$ sel=${sel%?} # Remove trailing comma
 | 
			
		||||
$ pods=$(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})`
 | 
			
		||||
 | 
			
		||||
# Check which nodes are ready
 | 
			
		||||
$ kubectl get nodes -o jsonpath='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'| tr ';' "\n"  | grep "Ready=True" 
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Modifying and Deleting Resources
 | 
			
		||||
 | 
			
		||||
```console
 | 
			
		||||
$ kubectl label pods <pod-name> new-label=awesome                  # Add a Label
 | 
			
		||||
$ kubectl annotate pods <pod-name> icon-url=http://goo.gl/XXBTWq   # Add an annotation
 | 
			
		||||
 | 
			
		||||
# TODO: examples of kubectl edit, patch, delete, replace, scale, and rolling-update commands.
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Interacting with running Pods
 | 
			
		||||
 | 
			
		||||
```console
 | 
			
		||||
$ kubectl logs <pod-name>         # dump pod logs (stdout)
 | 
			
		||||
$ kubectl logs -f <pod-name>      # stream pod logs (stdout) until canceled (ctrl-c) or timeout
 | 
			
		||||
 | 
			
		||||
$ kubectl run -i --tty busybox --image=busybox -- sh      # Run pod as interactive shell
 | 
			
		||||
$ kubectl attach <podname> -i                             # Attach to Running Container
 | 
			
		||||
$ kubectl port-forward <podname> <local-and-remote-port>  # Forward port of Pod to your local machine
 | 
			
		||||
$ kubectl port-forward <servicename> <port>               # Forward port to service
 | 
			
		||||
$ kubectl exec <pod-name> -- ls /                         # Run command in existing pod (1 container case) 
 | 
			
		||||
$ kubectl exec <pod-name> -c <container-name> -- ls /     # Run command in existing pod (multi-container case) 
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
 | 
			
		||||
[]()
 | 
			
		||||
<!-- END MUNGE: GENERATED_ANALYTICS -->
 | 
			
		||||
		Reference in New Issue
	
	Block a user