Skip to content

Commit

Permalink
Fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
ajeetraina committed May 21, 2022
1 parent 98b8fd7 commit e19af2a
Show file tree
Hide file tree
Showing 11,102 changed files with 2,121,496 additions and 17 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 2 additions & 0 deletions .bundle/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
BUNDLE_PATH: "vendor/bundle"
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I"h{"source"=>"/Users/ajeetraina/21may/dockerlabs", "destination"=>"/Users/ajeetraina/21may/dockerlabs/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/:categories/:year/:month/:day/:title:output_ext"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>[".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>[], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>nil, "show_dir_listing"=>false, "permalink"=>"date", "paginate_path"=>"/page:num", "timezone"=>nil, "quiet"=>false, "verbose"=>false, "defaults"=>[], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false}, "show_downloads"=>true, "google_analytics"=>nil, "theme"=>"jekyll-theme-cayman", "livereload_port"=>35729, "serving"=>true, "watch"=>true, "url"=>"http://localhost:4000"}:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"I<p>Beginners Track - What happens when Containers are Launched?</p>
:ET

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"Q<p>Beginners Track - Difference between Containers and Virtual Machines</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
I"<h1 id="how-does-docker-work">How does Docker work?</h1>

<p>The Docker technology uses the Linux kernel and features of the kernel, like Cgroups and namespaces, to segregate processes so they can run independently. This independence is the intention of containers‐the ability to run multiple processes and apps separately from one another to make better use of your infrastructure while retaining the security you would have with separate systems.</p>

<p>Container tools, including Docker, provide an image-based deployment model. This makes it easy to share an application, or set of services, with all of their dependencies across multiple environments. Docker also automates deploying the application (or combined sets of processes that make up an app) inside this container environment.</p>

<p>These tools built on top of Linux containers—what makes Docker user-friendly and unique—gives users unprecedented access to apps, the ability to rapidly deploy, and control over versions and version distribution.</p>

:ET

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"/<p>Beginners Track - Linux Containers</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"6<p>Beginners Track - Architecture of Docker</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"W<p>Beginners Track - Difference between VM Networking Vs Container Networking</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
I"�<h1 id="difference-between-vm-vs-docker">Difference between VM vs Docker</h1>

<p>Let us understand this with a simple analogy.</p>

<p>Virtual machines have a full OS with its own memory management installed with the associated overhead of virtual device drivers. In a virtual machine, valuable resources are emulated for the guest OS and hypervisor, which makes it possible to run many instances of one or more operating systems in parallel on a single machine (or host). Every guest OS runs as an individual entity from the host system. Hence, we can look at it an independent full-fledge house where we don’t share any resources as shown below:</p>

<p><img src="https://raw.githubusercontent.com/collabnix/dockerlabs/master/beginners/docker/images/vm-docker1.png" alt="My Image" /></p>

<p>In the other hand, Docker containers are executed with the Docker engine rather than the hypervisor. Containers are therefore smaller than Virtual Machines and enable faster start up with better performance, less isolation and greater compatibility possible due to sharing of the host’s kernel. Hence, it looks very similar to residental flats system where we share resources of the building.</p>

<p><img src="https://raw.githubusercontent.com/collabnix/dockerlabs/master/beginners/docker/images/vm-docker2.png" alt="My Image" /></p>

<p><img src="https://raw.githubusercontent.com/collabnix/dockerlabs/master/beginners/docker/images/vm-docker3.png" alt="My Image" /></p>

<h2 id="docker-containers-versus-virtual-machines">Docker Containers versus Virtual Machines:</h2>

<p><img src="https://raw.githubusercontent.com/collabnix/dockerlabs/master/beginners/docker/images/vm-docker4.png" alt="My Image" /></p>

<p>When it comes to comparing the two, it could be said that Docker Containers have much more potential than Virtual Machines. It’s evident as Docker Containers are able to share a single kernel and share application libraries. Containers present a lower system overhead than Virtual Machines and performance of the application inside a container is generally same or better as compared to the same application running within a Virtual Machine.</p>

<p>There is one key metric where Docker Containers are weaker than Virtual Machines, and that’s “Isolation”. Intel’s VT-d and VT- x technologies have provided Virtual Machines with ring-1 hardware isolation of which, it takes full advantage. It helps Virtual Machines from breaking down and interfering with each other. Docker Containers yet don’t have any hardware isolation, thus making them receptive to exploits.</p>

<p><img src="https://raw.githubusercontent.com/collabnix/dockerlabs/master/beginners/docker/images/vm-docker5.png" alt="My Image" /></p>

<p>As compared to virtual machines, containers can be faster and less resource heavy as long as the user is willing to stick to a single platform to provide the shared OS. A virtual machine could take up several minutes to create and launch whereas a container can be created and launched just in a few seconds. Applications contained in containers offer superior performance, compared to running the application within a virtual machine.</p>

<p>There is an estimation being done by Docker that application running in a container can go twice as fast as one in a virtual machine. Also, a single server can pack more than one containers as OS is not duplicated for each application.</p>

<h1 id="virtual-machines-and-containers-better-together">Virtual Machines and Containers: better together</h1>

<p>You can sometimes use a hybrid approach which uses both VM and Docker. There are also workloads which are best suited for physical hardware. If both are placed in a hybrid approach, it might lead to a better and efficient scenario. With this Hybrid setup, users can benefit from the advantages if they have workloads that fit the model.</p>

<p>Following are a few of them, that explain how they work together as a Hybrid:</p>

<p>1). Docker Containers and Virtual Machines by themselves are not sufficient to operate an application in production. So one should be considering how are the Docker Containers going to run in an enterprise data center.</p>

<p>2). Application probability and enabling the accordant provisioning of the application across infrastructure is provided by containers. But other operational requirements such as security, performance and capacity management and various management tool integrations are still a challenge in front of Docker Containers, thus leaving everyone in a big puzzle.</p>

<p>3). Security isolation can be equally achieved by both Docker Containers and Virtual Machines.</p>

<p>4). Docker Containers can run inside Virtual Machines though they are positioned as two separate technologies and provide them with pros like proven isolation, security properties, mobility, dynamic virtual networking, software-defined storage and massive ecosystem.</p>

<p>Apples to apples comparison: On a physical host with a certain configuration and Virtual Machines with the same configuration running an identical running same number of docker Containers with the same performance on both?</p>

<h1 id="okay-whos-the-winner">Okay. Who’s the winner?</h1>

<p>Answer to this question so far cannot be ascertained but depending upon their configurations and constraints one could say that containers are overcoming virtual machines. Application design is the one standpoint suggesting which one of the two should be chosen. If application is designed to provide scalability and high availability then containers are the best choice else application can be placed in a virtual machine, though Docker containers have surely challenged virtualization market with containers. Well, keeping the debate aside, it is easy to say that containers in Virtual Machines are twice as robust as one without the other.</p>

<p><a href="https://collabnix.github.io/dockerlabs/beginners/similarity-vm-docker.html">Proceed » Similarity between Docker &amp; Virtual Machine</a></p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"><p>Beginners Track - Difference between VM vs Docker</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"L<p>Beginners Track - Architecture of Docker Enteprise Edition 2.0</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
I"R<p>Kubernetes - How To Setup Prometheus Monitoring On Kubernetes Cluster</p>
:ET
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
I"<h1 id="getting-started-with-kubernetes">Getting Started with Kubernetes</h1>

<ul>
<li><a href="./beginners/what-is-kubernetes/README.md#what-is-kubernetes">What is Kubernetes &amp; Why is it damn popular?</a></li>
<li><a href="./beginners/what-is-kubernetes/README.md#what-is-k8s-made-up-of">Deep Dive into Kubernetes Architecture</a></li>
</ul>

<h2 id="kubernetes-core-concept">Kubernetes Core Concept</h2>

<ul>
<li><a href="./beginners/k8s-core-concepts.md">Kubernetes Developer Concept</a></li>
<li><a href="./beginners/Install-and-configure-a-multi-master-Kubernetes-cluster-with-kubeadm.md">Install and configure a multi-master Kubernetes cluster with kubeadm</a></li>
<li><a href="./beginners/what-is-kubect.md">Understanding the kubectl</a></li>
<li>Single and multi-node clusters</li>
<li><a href="./beginners/Kubernetes_Control_Plane.md">Examining the control plane</a><br /></li>
<li>Persisting changes in etcd</li>
<li>Syncing changes with RAFT</li>
<li>Event-based architecture</li>
<li>Understanding the kubelet</li>
<li>Verifying “no single point of failure”</li>
<li>Setting up a multi-master cluster</li>
<li>Investigating multi-master setup in EKS</li>
<li>Exploring multi-master setup in Monzo</li>
<li><a href="./beginners/Install-and-configure-a-multi-master-Kubernetes-cluster-with-kubeadm.md">Creating a 3 node cluster with kubeadm</a></li>
<li>Installing an overlay network</li>
<li><a href="./beginners/Installing-Nginx-Ingress-controller.md">Installing an Ingress controller</a></li>
<li>Exploring the API without kubectl</li>
<li>Taking down the cluster one node at the time</li>
<li><a href="./beginners/k8s-cluster-backup-easy-way.md">Kubernetes Cluster Backup</a></li>
</ul>

<h1 id="installation--getting-started">Installation &amp; Getting Started</h1>

<h2 id="bare-metal">Bare Metal:</h2>

<ul>
<li><a href="./beginners/install/ubuntu/18.04/install-k8s.md#how-to-setup-3-node-kubernetes-cluster-on-bare-metal-system-using-metallb">How to setup 3 Node Kubernetes Cluster on Bare Metal System using MetalLB?</a><br /></li>
</ul>

<h2 id="demo-environment">Demo Environment</h2>

<ul>
<li><a href="./beginners/getting-started-on-pwk.md">Getting Started with 5 Node Kubernetes Cluster on Play with Kubernetes Platform</a></li>
</ul>

<h2 id="cloud-environment">Cloud Environment</h2>

<ul>
<li><a href="./beginners/install-k8s-on-GCP-platform.md">Google Cloud Platform</a></li>
</ul>

<h2 id="iot-platform">IoT Platform</h2>

<ul>
<li><a href="">K3s on Raspberry Pi</a></li>
</ul>

<h2 id="kubernetes-workshop">Kubernetes Workshop</h2>

<ul>
<li><a href="./beginners/workshop/lab00-running-nginx-pod/README.md">Lab #00: Running Nginx Pod</a><br /></li>
<li><a href="./beginners/workshop/lab01-creating-nginx-pod/README.md">Lab #01: Creating Nginx Pod</a><br /></li>
<li><a href="./beginners/workshop/lab02-deleting-pod">Lab #02: Deleting Nginx Pod</a><br /></li>
<li><a href="./beginners/workshop/lab03-creating-deployment-3replicas-nginx/README.md">Lab #03: Creating a Deployment with 3 replicas of NGINX service</a><br /></li>
<li><a href="./beginners/workshop/lab04-scaling-the-deployment/README.md">Lab #04: Scaling the Deployment</a><br /></li>
</ul>

<h2 id="k3s-on-bare-metal">K3s on Bare Metal</h2>

<ul>
<li><a href="https://github.com/collabnix/dockerlabs/blob/master/kubernetes/install/k3s/install-on-ubuntu01804.md">Installing K3s on Ubuntu 18.04</a></li>
</ul>

<h2 id="helm">Helm</h2>

<ul>
<li><a href="https://collabnix.com/installing-helm-to-deploy-kubernetes-applications-on-docker-enterprise-2-0-made-easy/">Installing Helm to deploy Kubernetes Applications on Docker Enterprise 2.0 Made Easy</a></li>
<li><a href="https://collabnix.com/building-helm-chart-for-kubernetes-cluster-running-on-docker-enterprise-2-0-using-docker-app-0-6-0/">Building Helm Chart for Kubernetes Cluster running on Docker Enterprise 2.0 using Docker-app 0.6.0</a></li>
<li><a href="https://collabnix.com/kubernetes-hands-on-lab-4-deploy-application-stack-using-helm-on-play-with-kubernetes-platform/">Kubernetes Hands-on Lab #4 – Deploy Prometheus Stack using Helm on Play with Kubernetes Platform</a></li>
<li><a href="https://collabnix.com/installing-helm-to-deploy-kubernetes-applications-on-docker-enterprise-2-0-made-easy/">Installing Helm to deploy Kubernetes Applications on Docker Enterprise 2.0 Made Easy</a></li>
</ul>

<h2 id="prometheus">Prometheus</h2>

<ul>
<li><a href="./beginners/Kubernetes_monitoring_alerting/Prometheus_Monitoring_On_Kubernetes_Cluster.md">How To Setup Prometheus Monitoring On Kubernetes Cluster</a></li>
<li><a href="./beginners/Kubernetes_monitoring_alerting/alert_manager_on_K8.md">Setting up Alert Manager on Kubernetes</a></li>
<li><a href="https://developer.sh/posts/prometheus-self-discovery">Prometheus Self Discovery on Kubernetes</a></li>
</ul>

<h2 id="contributors">Contributors</h2>

<ul>
<li><a href="mailto:karangandhi0007@gmail.com">Karan Singh</a></li>
<li><a href="mailto:ajeetraina@gmail.com">Ajeet Singh Raina</a></li>
<li><a href="mailto:smbiradar14@gmail.com">Sangam Biradar</a></li>
<li><a href="mailto:sappal.tushar@gmail.com">Tushar Sappal</a></li>
<li><a href="https://www.linkedin.com/in/apurvabhandari-linux">Apurva Bhandari</a></li>
<li><a href="mailto:saiyam911@gmail.com">Saiyam Pathak</a></li>
</ul>
:ET
Loading

0 comments on commit e19af2a

Please sign in to comment.