{"id":35955,"date":"2019-02-24T09:47:29","date_gmt":"2019-02-24T07:47:29","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=35955"},"modified":"2019-02-24T11:28:09","modified_gmt":"2019-02-24T09:28:09","slug":"introduction-to-microservices-docker-and-kubernetes","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/24\/introduction-to-microservices-docker-and-kubernetes\/","title":{"rendered":"Introduction to Microservices, Docker, and Kubernetes"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<p class=\"wp-block-paragraph\">There is plenty of documentation, tutorials, and guides online, explaining Docker containers, Kubernetes container orchestration, and microservices.  Here are a few that I found useful for the quick and simple introduction into these technologies and how to tie them together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Firstly, some basic 101s:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/medium.com\/@paigen11\/docker-101-fundamentals-the-dockerfile-b33b59d0f14b\">Docker 101: Fundamentals &amp; The Dockerfile<\/a><\/li><li><a href=\"https:\/\/medium.com\/google-cloud\/kubernetes-101-pods-nodes-containers-and-clusters-c1509e409e16\">Kubernetes 101: Pods, Nodes, Containers, and Clusters<\/a><\/li><li><a href=\"https:\/\/kubernetes.io\/docs\/setup\/minikube\/\">Running Kubernetes Locally via Minikube<\/a><\/li><li><a href=\"https:\/\/fedoramagazine.org\/minikube-kubernetes\/\">Clustered computing on Fedora with Minikube<\/a><\/li><li><a href=\"https:\/\/kubernetes.io\/docs\/reference\/glossary\/\">Kubernetes Glossary<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Secondly, &#8220;<a href=\"https:\/\/www.youtube.com\/watch?v=1xo-0gCVhTU\">Introduction to Microservices, Docker, and Kubernetes<\/a>&#8221; YouTube video nicely puts all the things together, with complete code and configuration examples, some glue, and extra tips.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"660\" height=\"372\" src=\"https:\/\/www.youtube.com\/embed\/1xo-0gCVhTU?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And finally, a few bits that you might need to solve on the way, which are not necessarily related, but can throw you off:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Some of the virtualization bits (such as VirtualBox) might fail to run properly if you have Secure Boot enabled.  To solve this problem, reboot the machine, go to the BIOS, and disable Secure Boot (enable Legacy Mode).<\/li><li>Additionally, while you are there, check for the Virtualization Technology settings.  Enable Virtualization Technology in the BIOS to further smooth out VirtualBox and friends.<\/li><li>While working on your first minikube cluster (sorting out VirtualBox and such), it helps to completely remove and start again, after sorting out any issues that prevent Kubernetes to start (proxy timeouts, etc).  A quick &#8220;<em>minikube delete &amp;&amp; minikube start<\/em>&#8221; will save you some time on troubleshooting weird issues, than just &#8220;<em>minikube start<\/em>&#8221; after a failure.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Have fun!<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>There is plenty of documentation, tutorials, and guides online, explaining Docker containers, Kubernetes container orchestration, and microservices. Here are a few that I found useful for the quick and simple introduction into these technologies and how to tie them together. Firstly, some basic 101s: Docker 101: Fundamentals &amp; The Dockerfile Kubernetes 101: Pods, Nodes, Containers, &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/24\/introduction-to-microservices-docker-and-kubernetes\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Introduction to Microservices, Docker, and Kubernetes<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Introduction to Microservices, Docker, and Kubernetes #WebDev #hosting #Docker #Kubernetes #containers #virtualization ","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,6,18,133,62,1334],"tags":[3421,3420,3573,3104,1330,2289,1908],"keyring_services":[],"class_list":["post-35955","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-programming","category-sysadmin","category-technology","category-web-work","tag-containers","tag-docker","tag-kubernetes","tag-virtualization","tag-web-development","tag-web-hosting","tag-youtube-videos"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":42635,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/container-misconceptions\/","url_meta":{"origin":35955,"position":0},"title":"Container misconceptions","author":"Leonid Mamchenkov","date":"May 20, 2019","format":false,"excerpt":"Ricard Bejarano points out a few container misconceptions. I particular like the bit about Swarm as a better option than Kubernetes for individual projects and small setups (1-2 nodes): Swarm\u00a0is Docker, Inc.'s orchestrator. It started development five years ago. It's built into the Docker Engine, which makes it the same\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":36991,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/04\/how-to-bootstrap-kubernetes-the-hard-way\/","url_meta":{"origin":35955,"position":1},"title":"How to Bootstrap Kubernetes the hard way!","author":"Leonid Mamchenkov","date":"March 4, 2019","format":false,"excerpt":"In the \"How to Bootstrap Kubernetes the hard way!\" Yair Etziony shows how to setup a local Kubernetes cluster without using the tools like Minikube or Google Kubernetes Engine. He says it's probably somewhat more difficult in the beginning, but eventually provides better understanding and knowledge, especially so for those\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":35248,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/19\/docker-and-kubernetes-in-high-security-environments\/","url_meta":{"origin":35955,"position":2},"title":"Docker and Kubernetes in high security environments","author":"Leonid Mamchenkov","date":"February 19, 2019","format":false,"excerpt":"\"Docker and Kubernetes in high security environments\" is an interesting case-study from the Swedish Police Authority, on how to setup and maintain a high security configuration of Docker and Kubernetes. Not something that you'd think of on a daily basis, but a very handy guide for a weekend reading, or\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":36993,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/04\/on-the-future-of-docker-containers-and-serverless\/","url_meta":{"origin":35955,"position":3},"title":"On the future of Docker, containers, and serverless","author":"Leonid Mamchenkov","date":"March 4, 2019","format":false,"excerpt":"I came across this blog post - \"Goodbye Docker and Thanks for all the Fish\" - which talks about the not-so-eminent, but very predictable death of Docker as both the technology, and the company. The gist of it is that container orchestration kicked in, and made Docker very replaceable with\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/Cloud-Has-Come-Of-Age.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/Cloud-Has-Come-Of-Age.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/Cloud-Has-Come-Of-Age.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/Cloud-Has-Come-Of-Age.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/Cloud-Has-Come-Of-Age.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":35245,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/19\/kubernetes-kubeadm-and-the-aws-cloud-provider\/","url_meta":{"origin":35955,"position":4},"title":"Kubernetes, Kubeadm, and the AWS Cloud Provider","author":"Leonid Mamchenkov","date":"February 19, 2019","format":false,"excerpt":"Scott Lowe shares an updated setup of Kubernets on the Amazon AWS. This blog post covers some of the bits in Kubeadm, which have been updated and improved, since his previous post on the subject some time last year. If you are working with Amazon AWS, Kubernetes, Docker, VMWare, or\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27527,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/19\/bitbucket-pipelines-improved-support-for-docker\/","url_meta":{"origin":35955,"position":5},"title":"BitBucket Pipelines improved support for Docker","author":"Leonid Mamchenkov","date":"April 19, 2017","format":false,"excerpt":"Here are some exciting news from the BitBucket Pipelines blog:\u00a0Bitbucket Pipelines now supports building Docker images, and service containers for database testing. We developed Pipelines to enable teams to test and deploy software faster, using Docker containers to manage their build environment. Now we\u2019re adding advanced Docker support \u2013 building\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/04\/service-containers-pipelines-500x262.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/35955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=35955"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/35955\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=35955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=35955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=35955"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=35955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}