From eb2501259115554ade0febef189bb74ab9fbecd7 Mon Sep 17 00:00:00 2001 From: Louie S Date: Thu, 4 Jan 2024 16:20:53 -0500 Subject: Watched through ch. 12 --- kubernetes_cheat_sheet.md | 78 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 2 deletions(-) diff --git a/kubernetes_cheat_sheet.md b/kubernetes_cheat_sheet.md index 7c1abf3..00103bc 100644 --- a/kubernetes_cheat_sheet.md +++ b/kubernetes_cheat_sheet.md @@ -29,6 +29,20 @@ |`kubectl get nodes` |Get a list of all the installed nodes| |`kubectl describe node [NAME]` |Get some info about a node | +### Pod + +| | | +|--------------------------------------|-----------------------------| +|`kubectl create -f [pod-definition.yml]`|Create a pod | +|`kubectl run [podname] --image=busybox -- /bin/sh -c "sleep 3600"`|Run a pod (example)| +|`kubectl get pods` |List the running pods | +|`kubectl get pods -o wide` |Same but with more info | +|`kubectl describe pod [podname]` |Show pod info | +|`kubectl get pod [podname] -o yaml > file.yaml`|Extract the pod definition in YAML and save it to a file| +|`kubectl exec -it [podname] -- sh` |Interactive mode | +|`kubectl delete -f [pod-definition.yml]`|Delete a pod | +|`kubectl delete pod [podname]` |Same using the pod's name | + ### Misc. | | | @@ -105,14 +119,31 @@ Pod definition: ```yaml apiVersion: v1 +# Object type kind: Pod metadata: name: myapp-pod namespace: prod + # Labels are used to identify, describe and group related sets of objects or resources together + labels: + app: myapp + type: front-end spec: containers: - - name: nginx-container - - image: nginx + - name: nginx-container + image: nginx + ports: + # Listening port + - containerPort: 80 + name: http + protocol: TCP + # Environment Variables + env: + - name: DBCON + value: connectionstring + # Equiv to Docker ENTRYPOINT + command: ["/bin/sh", "-c"] + args: ["echo ${DBCON}"] ``` --- @@ -149,3 +180,46 @@ spec: limits.cpu: "5" limits.memory: 10Gi ``` + +#### Pod definition + +--- + +### Pod state + +| | | +|------------------------------|----------------------------------------| +|Pending |Accepted but not yet created | +|Running |Bound to a node | +|Succeeded |Exited with status 0 | +|Failed |All containers exit and at least one exited with non-zero status| +|Unknown |Communication issues with the pod | +|CrashLoopBackOff |Started crashed, started again, and then crashed again| + +--- + +### Init Containers + +Example pod definition that uses init containers + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: myapp-pod + labels: + app: myapp +spec: + # App container + containers: + - name: myapp-container + image: busybox + # Init containers (these will run before the app container) + initContainers: + - name: init-myservice + image: busybox:1.28 + command: ['sh', '-c', "until nslookup mysvc.namespace.svc.cluster.local; do echo waiting for my service; sleep 2; done"] + - name: init-mydb + image: busybox:1.28 + command: ['sh', '-c', "until lookup mydb.namespace.svc.cluster.local; do echo waiting for mydb; sleep 2; done"] +``` -- cgit