summaryrefslogtreecommitdiff
path: root/kubernetes_cheat_sheet.md
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes_cheat_sheet.md')
-rw-r--r--kubernetes_cheat_sheet.md71
1 files changed, 71 insertions, 0 deletions
diff --git a/kubernetes_cheat_sheet.md b/kubernetes_cheat_sheet.md
new file mode 100644
index 0000000..e8c4bd1
--- /dev/null
+++ b/kubernetes_cheat_sheet.md
@@ -0,0 +1,71 @@
+# Kubernetes Cheat Sheet
+
+## kubectl CLI
+
+### Context
+
+| | |
+|--------------------------------------|-----------------------------|
+|`kubectl config current-context` |Get the current context |
+|`kubectl config get-contexts` |List all context |
+|`kubectl config use-context [contextName]`|Set the current context |
+|`kubectl config delete-context [contextName]`|Delete a context from the config file|
+
+### Misc.
+
+| | |
+|--------------------------------------|-----------------------------|
+|`kubectl create -f [YAML file]` |Create an object using YAML |
+
+---
+
+### `kubectx`
+
+- Separate program that acts as an alias for `kubectl config use-context`
+ - *Fast way to switch between clusters and namespaces in kubectl*
+
+---
+
+### Declarative vs Imperative
+
+#### Declarative Example - YAML File
+
+```yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: myapp-pod
+ labels:
+ app: myapp
+ type: front-end
+spec:
+ containers:
+ name: nginx-container
+ image: nginx
+```
+
+#### Imperative Example - Series of commands
+
+```sh
+kubectl run mynginx --image=nginx --port=80
+
+kubectl create deploy mynginx --image=nginx --port=80 --replicas=3
+
+kubectl create service nodeport myservice --targetPort=8080
+
+kubectl delete pod nginx
+```
+
+### YAML required properties
+
+- Root level required properties
+ - `apiVersion`
+ - Api version of the object
+ - `kind`
+ - type of object
+ - `metadata.name`
+ - unique name for the object
+ - `metadata.namespace`
+ - scoped environment name (will default to current)
+ - `spec`
+ - object specifications or desired state