DevOps/Kubernetes/Certified Kubernetes Administrator/Create and configure basic Pods

Create a Pod

 * To create a pod based on a yaml definition file:
 * To create a pod in a namespace:
 * To verify container is running:
 * To verify container is running:
 * To verify container is running:

DevOps/Kubernetes/Certified Kubernetes Administrator/Create and configure basic Pods|Create and configure basic Pods]]

Set up a Volume for a Pod
The file system of a Container exists as long as the Container exists. Therefore, when a Container is destroyed or restarted, changes made to the file system are lost. For more consistent storage that is independent of the Container life cycle, you can use a Volume, review different Volume types in https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes.

This feature is especially important for applications that must maintain a status, such as key-value storage engines (for example Redis) and databases.

Create a Pod that runs a single Container. This Pod has a Volume of type  (empty directory) (see Volume for volume types) that exists throughout the Pod's life cycle, even when the Container is destroyed and restarted. Here is the Pod configuration file:

apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-storage mountPath: /data/redis volumes: - name: redis-storage emptyDir: {}

1.Create the Pod

2. Verify the Pod Container is running

output:

NAME     READY     STATUS    RESTARTS   AGE redis    1/1       Running   0          13s

3.In another terminal, open an interactive session inside the Container that is running:

4.In the terminal, go to  and create a file: root@redis:/data# cd /data/redis/ root@redis:/data/redis# echo Hello > test-file

5.In the terminal, list the running processes: root@redis:/data/redis# apt-get update root@redis:/data/redis# apt-get install procps root@redis:/data/redis# ps aux

output: USER      PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND redis       1  0.1  0.1  33308  3828 ? Ssl 00:46   0:00 redis-server *:6379 root       12  0.0  0.0  20228  3020 ? Ss  00:47   0:00 /bin/bash root       15  0.0  0.0  17500  2072 ? R+  00:48   0:00 ps aux

6.In the terminal, kill the Redis process:

root@redis:/data/redis# kill

where is the process ID (PID) of Redis.

7.In the original terminal, observe the changes in the Redis Pod. You will eventually see something like the following:

NAME     READY     STATUS     RESTARTS   AGE redis    1/1       Running    0          13s redis    0/1       Completed  0         6m redis    1/1       Running    1         6m

At this point, the Container has been destroyed and restarted. This is because the Redis Pod has a restartPolicy (restart policy) of Always(always).

1.Open a terminal in the restarted Container:

kubectl exec -it redis -- /bin/bash

2.In the terminal, go to /data/redisand verify that it test-filestill exists:

root@redis:/data/redis# cd /data/redis/ root@redis:/data/redis# ls test-file

3.Remove the Pod you created for this exercise:

kubectl delete pod redis