CKA: Create and configure basic Pods

From wikieduonline
Revision as of 16:11, 29 February 2024 by Welcome (talk | contribs) (→‎See also)
Jump to navigation Jump to search

Create a Pod

kubectl create namespace MY_TEST_NAMESPACE
kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml --namespace=MY_TEST_NAMESPACE[2]
To verify container is running:
kubectl get pod NAME_POD --namespace=MY_TEST_NAMESPACE

Set up a Volume for a Pod

Review different Volume types in https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes.

Create a Pod that runs a single Container. This Pod has a Volume of type emptyDir (empty directory) (see Volume for volume types) that exists throughout the Pod's life cycle, even when the Container is destroyed and restarted. Example: pods/storage/redis.yaml

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: {}

Steps

Create Pod

kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml
pod/redis created

Verify Pod is running

kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
redis   1/1     Running   0          3m29s

List all Kubernetes resources created

kubectl get all
NAME        READY   STATUS    RESTARTS   AGE
pod/redis   1/1     Running   0          10m

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   3d21h

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

kubectl exec -it redis -- /bin/bash

5. Create a file in /data/redis

root@redis:/data# cd /data/redis/
root@redis:/data/redis# echo Hello > test-file

6. List 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 <pid>

where <pid>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:

Related terms

See also

Advertising: