|
via Udemy |
Go to Course: https://www.udemy.com/course/kubernetes-udemy/
The Coursera course offers a comprehensive and in-depth exploration of Kubernetes and Docker, tailored for learners aiming to master container orchestration and management. Spanning over 21 detailed sections, the course effectively balances theoretical concepts with hands-on practical labs, making it ideal for both beginners and professionals seeking to deepen their skills. **Review:** This course stands out for its thorough coverage of the essential components of Kubernetes architecture, including cluster setup, networking, volumes, resource management, and scaling via Horizontal Pod Autoscaler. The inclusion of real-world labs on AWS setup, deployment strategies, and rollback procedures enhances the learning experience, equipping students with actionable skills. Additionally, the Docker modules complement the Kubernetes content by providing foundational knowledge on container creation, Dockerfiles, networking, data management, and orchestration with Docker Compose. The project-based approach—culminating in deploying an application with Jenkins CI/CD—ensures learners can apply what they've learned in practical scenarios. The curriculum’s step-by-step instructions, coupled with plenty of exercises, make complex topics accessible and engaging. **Recommendation:** This course is highly recommended for IT professionals, DevOps engineers, system administrators, and developers who want to gain a solid understanding of container orchestration, deployment, and management. It’s especially beneficial for those preparing for Kubernetes certifications or aiming to implement reliable containerized environments in production. Given its comprehensive scope and practical focus, this course will serve as a valuable asset in any cloud-native or DevOps toolkit. Whether you're just starting or looking to enhance your existing skills, this course provides the essential knowledge and hands-on experience needed to succeed in modern container management and deployment challenges. **In summary:** - **Pros:** Extensive coverage, practical labs, real-world project, clear explanations. - **Cons:** The breadth of content may be intensive for absolute beginners; a prior basic understanding of Linux and networking can be helpful. - **Overall:** A highly valuable course for mastering Kubernetes and Docker with practical experience—definitely worth enrolling!
Course Description:Section 1: Kubernetes IntroductionWhat is KubernetesWhy do we use Kubernetes?Monolithic approach for developing applications.Microservices Vs. MonolithicKubernetes Gateway APIEvolution of Containers, Dockers & VMsMicroservices running as containersKubernetes - Orchestration or container management toolFeatures of KubernetesSection2: Architecture of the Kubernetes ClusterThe architecture of the Kubernetes ClusterUnderstand architecture with various examplesWorking with KubernetesRoles of Master NodeComponents of Control Plane (Master Node) API Server Etcd Scheduler Controller ManagerKubeletService ProxyPODContainer Engine - Docker, Containerd, or RocketSection 3: Setup of Kubernetes Cluster AWS EnvironmentSetup Kubernetes Master and Worker Node on AWS EnvironmentUpdate the SystemInstall HTTP packageDocker InstallationSetup open GPG KeyInstall the Kubernetes packagesBootstrapping the master nodeConfigure Worker NodesSection 4: Kubernetes Concepts - Cluster types, Minikube Server, YAML, Pod, Kubelet, PortsKubernetes ClusterTypes of ClusterAll-in-one (Single Node Cluster)Single-node, single-master, and multi-worker node clusters.Single-Node etcd, multi-Master, and Multi-Worker Node Cluster. About Minikube Installation of Minikube ServerCreate the first POD using manifest file written in YAML LanguageKubelet commandsCheck logs of the containerCreate multiple containers in a POD Kubernetes AnnotationsVariables in the YAML fileDefining Ports Section 5: Kubernetes Pod Restart PolicyOverview of Pod Restart PoliciesThree restart policies: Always, OnFailure & NeverLab - Create a pod definition with ‘restartPolicy' as AlwaysLab - Create a pod definition with ‘restartPolicy' as OnFailureLab - Change the pod definition a bit to check the working of OnFailureLab - 4. Create a pod definition with ‘restartPolicy' as NeverSection 6: Labels & SelectorsLabels & SelectorsCommands for managing labels & selectorsDeclarative vs. Imperative Kubernetes commandsTwo types Selectors Equality Based Set basedPractice Lab - Labels & SelectorsPractice Lab - Assign a label to the running PODPractice Lab - Search the pod with equality & set-based Node SelectorLab - Create a pod on a specific nodeSection 7: Scaling & ReplicationWhat is ReplicationController?Features of RCPractice Lab - Create Replicas of POD using RCPractice Lab - Recreate the POD, if it crashes, fails, or terminatedScale up & scale down the POD as the load increases Practice Lab - Scale up & scale down the PODWhat is ReplicaSet?Difference between ReplicationController & ReplicaSetPractice Lab - Create Replicas of POD using ReplicaSetPractice Lab - Use set-based match expressions in RSSection 8: Deployment & RollbackOverview of Deployment and RollbackManifest for a POD with one container using the deployment object.Lab: Launch an application with two PODs using the deployment object.Lab: Using the deployment object, upgrade an application from version 1 to version 2.Lab: Roll back the application to the previous version.Lab: Roll back the application to any specific version.Section 9: Kubernetes NetworkingOverview of Kubernetes NetworkingContainer communication via localhostPractice Lab - container-to-container communication on specific port within a podPod-to-pod communicationPractice Lab - Pod-to-pod communicationObject - ServiceWhy service is required?Service typeCluster IPNodePortLoadBalancerHeadlessPractice Lab - Access the appl/service using cluster IP within the cluster using the service objectPractice Lab - Access the appl/service using NodePort outside the cluster using the service objectSection 10: Volumes in Kubernetes ClusterOverview of Volumes in Kubernetes Cluster.Volume typesEmptyDirhostpathPractice Lab: Create a POD with attached volume using volumes.Practice Lab - Attach a shareable volume for containers within a POD.Practice Lab - Attach a shareable volume for containers within a POD as well as with the host or worker node.Practice Lab - EmptyDirPractice Lab - hostpathSection 11: Persistent VolumesOverview of Persistent volumesPersistentVolumeClaim - PVCConfigure a Volume using AWS ElasticBlockStoreConfigure a Pod to Use a PersistentVolume for StoragePractice Lab - Create a PersistentVolumePractice Lab - Create a PersistentVolumeClaimPractice Lab - Create a Pod to Use a PersistentVolume for StorageSection 12: Namespaces in KubernetesOverview of NamespacesLab - Create new namespacesLab - Create Pod and Service in NamespacesLab - Switch between Kubernetes namespacesLab - Create pods in the namespace.Lab - delete a Kubernetes namespaceSection 13: Resource Management for Pods and ContainersOverview of resource management for pods, containersLab resource-based quotaLab - Apply pod quotas to namespacesRequests and LimitsLab - Set requests and limits in each container running in a pod.Lab - Apply quotas to namespacesLab - Create pods with resources in namespacesSection 14: Kubernetes HPA - Horizontal Pod AutoscalerKubernetes autoscaling basicsLab: Configuring Minikube ClusterLab: Installation of Metric ServerLab: Creating pods using deployment objectsLab: Configure HPA - Horizontal Pod AutoscalerLab: A new pod is created automatically if the CPU load reaches a threshold valueLab: A new pod is automatically terminated if the CPU load falls below the threshold valueSection 15: Kubernetes Jobs, Init containerOverview of Jobs and cron job patternLab: Create a Pod Using Job ObjectLab: Run Multiple Pods in Parallel Using Job ObjectLab: Create jobs on a repeating schedule using CronJobAbout Init Container and their use casesLab: Init ContainerSection 16: Introduction to docker containersIntroduction about containersInstallation of DockerCreate a first containerFetch container image from docker hubRun a container in the background, interactive with tty terminalDelete exited dockers using a single commandGet complete details of a running containerCheck logs & stats of a running containerPort forwardingexec, rename & restart the running containerAttach a containerKill/stop, pause/unpause a containerCreate, start, the cp commandExport/Import Command in DockerCreate an image from a running containerPull a specific version image from the Docker hubImage history, inspect & remove the imageSection 17: DockerfileOverview of Dockerfile, layered architectureCreate centos 7 images using DockerfileOverview of LABEL, ENV & RUN CommandOverview of WORKDIRCopy, and add commands with their differencesCreate a user account with a password using dockerfileCMD CommandSSH to a containerOverview of EXPOSE CommandENTRYPOINT in DockerfileSection 18: Manage Data in DockerOverview of managing data in DockerVolumesCreate & attach a volume to a containerDelete volumes from the Docker host machineBind mountsSection 19: Networking in DockerBridge networkingRun containers in custom-created bridge networkingEnable communication between dockers belonging to different bridge networkDNS enabled with custom bridge networkingHost networkingNone networkingConnect one or more networks to a running containerCreate a private docker registryHow to allow images in the private registry for non-secure networkSection 20: Docker ComposeOverview of docker-composeDocker compose InstallationCreate my first docker-compose fileCreate the docker-compose file in JSON languageLearn basic commandsdocker-compose updocker-compose downdocker-compose createdocker-compose startdocker-compose stopdocker-compose rmdocker-compose imagesdocker-compose psdocker-compose pausedocker-compose unpausedocker-compose killdocker-compose port portdocker-compose logsdocker-compose execdocker-compose rundocker-compose scaledocker-compose topAttach a volume & port mapping using docker-composeBuild a custom image using docker-composeSection 21: Real-time project - Deploy an application to a Kubernetes cluster using Jenkins CI/CD pipeline, Ansible, Docker, Git, Webhook etc.