Editing CKA: Create and configure basic Pods

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
Only available in first CKA versions
 
 
 
== Create a [[Pod]] ==
 
== Create a [[Pod]] ==
 
* To create a pod based on a yaml definition file:  <code>[[kubectl apply]] -f https://k8s.io/examples/pods/storage/redis.yaml</code><ref>https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/</ref>
 
* To create a pod based on a yaml definition file:  <code>[[kubectl apply]] -f https://k8s.io/examples/pods/storage/redis.yaml</code><ref>https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/</ref>
Line 7: Line 5:
 
:<code>[[kubectl apply]] -f https://k8s.io/examples/pods/storage/redis.yaml --namespace=MY_TEST_NAMESPACE</code><ref>https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/</ref>
 
:<code>[[kubectl apply]] -f https://k8s.io/examples/pods/storage/redis.yaml --namespace=MY_TEST_NAMESPACE</code><ref>https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/</ref>
 
:To verify container is running:  
 
:To verify container is running:  
::<code>[[kubectl get pod]] NAME_POD --namespace=MY_TEST_NAMESPACE</code>
+
::<code>[[kubectl get]] pod NAME_POD --namespace=MY_TEST_NAMESPACE</code>
  
 
==Set up a [[Volume]] for a [[Pod]]==
 
==Set up a [[Volume]] for a [[Pod]]==
Review different Volume types in https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes.
+
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 <code>emptyDir</code> (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:
  
Create a Pod that runs a single Container. This Pod has a Volume of type <code>emptyDir</code> (empty directory) (see [[Volume]] for volume types) that exists throughout the Pod's life cycle, even when the Container is destroyed and restarted.
 
Example:
 
 
<code>pods/storage/redis.yaml</code>
 
<code>pods/storage/redis.yaml</code>
  
apiVersion: v1
+
<pre>apiVersion: v1
[[kind: Pod]]
+
kind: Pod
metadata:
+
metadata:
  name: redis
+
  name: redis
spec:
+
spec:
  containers:
+
  containers:
  - [[name:]] redis
+
  - name: redis
    [[image]]: redis
+
    image: redis
    [[volumeMounts]]:
+
    volumeMounts:
    - name: redis-storage
+
    - name: redis-storage
      [[mountPath]]: /data/redis
+
      mountPath: /data/redis
  [[volumes:]]
+
  volumes:
  - name: redis-storage
+
  - name: redis-storage
    emptyDir: {}</pre>
+
    emptyDir: {}</pre>
 +
 
  
=== Steps ===
+
'''1.Create the Pod'''
==== Create Pod ====
 
 
:<code>kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml</code>
 
:<code>kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml</code>
:<code>pod/redis created</code>
+
: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 ====
+
'''2. Verify the Pod Container is running'''
  [[kubectl get all]]
+
  [[kubectl get pod]] redis --watch
  NAME       READY   STATUS    RESTARTS  AGE
+
  NAME     READY     STATUS    RESTARTS  AGE
  pod/redis   1/1     Running  0          10m
+
  redis     1/1       Running  0          13s
 
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: ====
+
'''3.In another terminal, open an interactive session inside the Container that is running:'''
 
<code>[[kubectl exec]] -it redis -- /bin/bash</code>
 
<code>[[kubectl exec]] -it redis -- /bin/bash</code>
  
'''5. Create a file in <code>/data/redis</code>'''
+
'''4.In the terminal, go to <code>/data/redis</code> and create a file:'''
 
<pre>root@redis:/data# cd /data/redis/
 
<pre>root@redis:/data# cd /data/redis/
 
root@redis:/data/redis# echo Hello > test-file</pre>
 
root@redis:/data/redis# echo Hello > test-file</pre>
  
'''6. List running processes:'''
+
'''5.In the terminal, list the running processes:'''
 
<pre>root@redis:/data/redis# apt-get update
 
<pre>root@redis:/data/redis# apt-get update
 
root@redis:/data/redis# apt-get install procps
 
root@redis:/data/redis# apt-get install procps
Line 99: Line 90:
  
 
== See also ==
 
== See also ==
* {{kubectl apply}}
+
* {{kubectl}}
* {{CKA versions}}
 
 
* {{CKA}}
 
* {{CKA}}
  

Please note that all contributions to wikieduonline may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Wikieduonline:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)

Advertising: