blob: e8c4bd16a853fa152643363bea85f4ca4452e99b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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
|