DevOps Classroomnotes 09/Sep/2023

Pods Contd

  • Scaling: Scaling in k8s means increasing number of Pods not containers in Pod. For Scaling pods we would learn Replica set/Replication Controller etcs..

How k8s identifies objects: Labels

  • Label is a key pair examples are
    • app: nginx
    • version: v1.0
  • Labels are used to select/query kubernetes objects
  • Refer Here for official docs on labels
  • Selectors in k8s help in querying objects using labels
  • selectors are of two types
    • Equality Based Selectors
    • Set based selectors

Pod with Labels

  • Overview:
    Preview
  • Refer Here for the changes done
  • Create pods
    Preview

Pod with container with additional commands

  • I have to add a container to the pod in addition to nginx which has a docker command docker container run -d alpine sleep 1d
  • Refer Here for the changes
    Preview

Interacting with containers

  • In docker docker container exec -it or docker container exec
  • In k8s we have kubectl exec
    Preview
  • Interactive tty
    Preview

What happens when container goes into exited state

  • Lets create a pod with alpine container which exits
  • Refer Here for the changes
  • kubernetes tries to restart containers, if it fails continuous k8s keeps trying and gives the status as CrashLoopBackoff
    Preview
  • Kuberentes restarts the containers always as the restartPolicy Default value is Always, which we can change Refer Here

Container types in Pod

  • init containers: These containers are created prior to actual/main containers. ideally these containers should be short lived and majorly for meeting preconditions to run your application. Refer Here for official docs
  • containers: This is where we run actual applications and they are expected to be living forever (continously)

Demonstration:

Pod Lifecycle

Activity (in docker)

  • Create a nginx container with 128 MB of RAM
  • Create a jenkins continer with “0.5” cpu and 256 MB of RAM
docker container run  -P -d  --memory 128m nginx
docker container run --name r-memcpu-jenkins -P -d --cpus="0.5" --memory 256m jenkins/jenkins
docker stats

Resource Restrictions in Pods

  • Refer Here for official docs
  • Limits in Resoruce Restrictions mean maximum size that will be allocated (upper bounds/limits) and request are lower limits
  • Exercise: Write the manifest to run above mentioned docker containers in Pod

Published
Categorized as Uncategorized Tagged

By continuous learner

devops & cloud enthusiastic learner

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Wordpress Development Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube