{"id":5168,"date":"2021-06-26T16:56:57","date_gmt":"2021-06-26T16:56:57","guid":{"rendered":"https:\/\/www.danielparente.net\/en\/?p=5168"},"modified":"2021-08-03T09:39:34","modified_gmt":"2021-08-03T09:39:34","slug":"kubernetes-tutorial-for-beginners","status":"publish","type":"post","link":"https:\/\/www.danielparente.net\/en\/2021\/06\/26\/kubernetes-tutorial-for-beginners\/","title":{"rendered":"Kubernetes Tutorial for Beginners"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Full Kubernetes Tutorial | Kubernetes Course | Hands-on course with a lot of demos<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes COURSE OVERVIEW <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">What is Kubernetes&nbsp; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What problems does Kubernetes solve? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What features do container orchestration tools offer? <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Main K8s Components<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Node &amp; Pod <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Service &amp; Ingress <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba ConfigMap &amp; Secret <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Volumes <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Deployment &amp; StatefulSet<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> K8s Architecture <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Worker Nodes <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Master Nodes <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Api Server <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Scheduler <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Controller Manager <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba etcd &#8211; the cluster brain<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Minikube and kubectl &#8211; Local Setup <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What is minikube? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What is kubectl? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba install minikube and kubectl <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba create and start a minikube cluster <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Install Minikube (Mac, Linux and Windows): <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbF9qSjRFV09mbmpodTdpaC1wRV8ydnNHaDJsZ3xBQ3Jtc0tuS25RUFlLb1lqcXF6d2k0Y2lrLTVGdzByYTFwOVpOT1A5YXliMFg0TDZVWU9jZ05ZOTJEM3hmTkUyQ2xiWS1SNkRhZEg3R1hEWlZheGxIMjFmbFdHS1BPSDNaWDdMM3k3blVQdE41c29iUWJYT1FzSQ&amp;q=https%3A%2F%2Fbit.ly%2F38bLcJy\">https:\/\/bit.ly\/38bLcJy<\/a> &#8211; Install Kubectl: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbW45TWJoM1llQVRON2lqeXZ4SnA1cV9WLWRtUXxBQ3Jtc0tsbzYzamR5WldWSDBpSXdPZGpBcEVFeDZBbWM2MTZPUlpQVEJVLTJROWhrWTBLeE1xd0pOakRwYVFUc0ViRjNwZnpVaXF1NVBERXhkMFNYTUlLV2tLUnJXLVJHWnJDRjVGOGJtMHgyY3R0M3hzdFpHUQ&amp;q=https%3A%2F%2Fbit.ly%2F32bSI2Z\">https:\/\/bit.ly\/32bSI2Z<\/a> &#8211; Gitlab: If you are using Mac, you can follow along the commands. I listed them all here: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbVU3TXQ1RTd2NFM2bEVHVktZTUNmLWwxSzBTd3xBQ3Jtc0tuOG9XMUhXU095U09NQ055OGxyWDBEZnJTR1ZsLXAwTUtCTEY4Rm9rSHZGc1NPZlBiYUthbmh3OS1yb3lVcGRWQ2hrX0t5R0FfemdoaUlOemlRMjZRVUY2ZFZPdzBtRkFjbWJ0cWo4R19zaGlydHNCRQ&amp;q=https%3A%2F%2Fbit.ly%2F3oZzuHY\">https:\/\/bit.ly\/3oZzuHY<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Main Kubectl Commands &#8211; K8s CLI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Get status of different components <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba create a pod\/deployment <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba layers of abstraction <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba change the pod\/deployment <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba debugging pods <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba delete pod\/deployment <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba CRUD by applying configuration file <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Git repo link of all the commands: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbWtHN1RJUTNvc1ZYLUZ5Z2NpZmRhQTBiWkpaZ3xBQ3Jtc0ttUEtoR1lVa1VuaHdKTG1ReTFzbS1vUGpoZ0MxZ0lnMkwzTmx6cGFlc0dSSDN1Z0dWTmluTU83SEpfeTFiMW1PUkp1Y2tzck9RY19EODUxUFM3STAwT25LSzlpVHBCTFZ3NnlZaTJ0UFdSMnZGNU1JUQ&amp;q=https%3A%2F%2Fbit.ly%2F3oZzuHY\">https:\/\/bit.ly\/3oZzuHY<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">K8s YAML Configuration File<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba 3 parts of a Kubernetes config file (metadata, specification, status) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba format of configuration file <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba blueprint for pods (template) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba connecting services to deployments and pods (label &amp; selector &amp; port) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba demo <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Git repo link: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbnFURHRQYU1ZWks0eEdVVEtPWXdjU3ZlUWRtZ3xBQ3Jtc0tudHJrcFJKMVdHWDNCa2dxaW1YeDJrcWpQdC1LemFxSExzb1FPdkpOcXpYRjN1WVBKTzVfWUozN3ZwakVCWHZPbzA1dDNCWGtJUXh2MXFwLWJDTDBSYmI5RzZVY0dGSjVpYjQ5U29pTVJhQlNndi1URQ&amp;q=https%3A%2F%2Fbit.ly%2F2JBVyIk\">https:\/\/bit.ly\/2JBVyIk<\/a> <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Demo Project<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Deploying MongoDB and Mongo Express <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba MongoDB Pod <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Secret <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba MongoDB Internal Service <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Deployment Service and Config Map <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Mongo Express External Service <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Git repo link: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbU9Ja19IaVZhYzQ2QUI3Rk5mTGFJLTBvQkFxZ3xBQ3Jtc0tuaXo1QXhWcVM2bXJqdjJ0clk5OG16bDJlank0UElxNGFMZkZXYTVWZWpkMktTbG80azdYRUJLYjVLWHJfV1QwNVUzVVlTWFlid3l4YWo3dm8yMTNYeTJGNTFVaDVTYUJxdkxSa05WUnF2RS1kcG1EZw&amp;q=https%3A%2F%2Fbit.ly%2F3jY6lJp\">https:\/\/bit.ly\/3jY6lJp<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Organizing your components with K8s Namespaces <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What is a Namespace? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba 4 Default Namespaces <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Create a Namespace <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Why to use Namespaces? 4 Use Cases <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Characteristics of Namespaces <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Create Components in Namespaces <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Change Active Namespace <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Install Kubectx: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbUFyYmlJSWhhWlRnU056TjhJNFpiQm1tMm9xd3xBQ3Jtc0ttZFVkZDF0cGFlYWpGbVljdmxPN0ltQmJqM241YkpLbUJmdHlfTldfekR3OEJycWZTSktJOThUeWNlSzJDbHc0M21TUzEwWmVIYmxfWkNDS2trMS1TYk1PT0xRNVhCZE1lM2pYcTF0T1F3TGwtNl9ZOA&amp;q=https%3A%2F%2Fgithub.com%2Fahmetb%2Fkubectx%23installation\">https:\/\/github.com\/ahmetb\/kubectx#ins&#8230;<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">K8s Ingress explained <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What is Ingress? External Service vs. Ingress <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Example YAML Config Files for External Service and Ingress <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Internal Service Configuration for Ingress <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba How to configure Ingress in your cluster? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What is Ingress Controller? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Environment on which your cluster is running (Cloud provider or bare metal) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Demo: Configure Ingress in Minikube <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Ingress Default Backend <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Routing Use Cases <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Configuring TLS Certificate <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Git Repo: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbmtLUTdjb3dSWUs0NGZRLW92bklQazdFSmtuQXxBQ3Jtc0tseXF1dV84eFEzWWNlS0RwZHllY1RMQnR0bmFIdjZ1eEZ4Vi1OYmF2aGVfYnNiamEzeUpiY25iYUtpVkRLWlpUSHQ0Z0ZvREFJNkZVZmg1MlNwbEFWUmxLcTJzMF94VXFndXktZUpGelQ2ZkM0Zlh2QQ&amp;q=https%3A%2F%2Fbit.ly%2F3mJHVFc\">https:\/\/bit.ly\/3mJHVFc<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> &#8211; Ingress Controllers: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbDI0Z0s1UG1zYWloeUFqb2I2S1d1LVhCeUp1d3xBQ3Jtc0ttNWYxTDVfc0xpa0VJbUFsc3Bhd2ltT0NpZllLaFlOYnB4MHpSd19PSndGTkFBMmxoMmxFbUhtSGJUUG1qb21OQnA5b2lvZzRaSjBGdE9HOVktMFNhWWxuSG9Bel9qWGhzd2tPSUNzbllBcFFXcGRlZw&amp;q=https%3A%2F%2Fbit.ly%2F32dfHe3\">https:\/\/bit.ly\/32dfHe3<\/a> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Ingress Controller Bare Metal: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbG1KZ2NKdnY5amE5VDJxd1BQZEttN0JsM1F0Z3xBQ3Jtc0tsZ2txajBlZ0dwTGRsWk4tV1NBcXpPNUxkSlVPbjNZX0RBcU81SlhUUlRWYzZlTV9zWmxPaThTNWpzbWJCV3FFOVJMTUJKeEp2VGM2blpucEpqOTRWc09LS2dHZ0JwWl9UVFFaekx2aVZWMjB6cmozVQ&amp;q=https%3A%2F%2Fbit.ly%2F3kYdmLB\">https:\/\/bit.ly\/3kYdmLB<\/a> He<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">lm &#8211; Package Manager <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Package Manager and Helm Charts <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Templating Engine <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Use Cases for Helm <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Helm Chart Structure <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Values injection into template files <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Release Management \/ Tiller (Helm Version 2!) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: &#8211; Helm hub: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbWF3YjZpV3hzaTBhOHU1cUoyRWRfUl9WalZhZ3xBQ3Jtc0tta3VWU3BhdXU4ZFo1cGZVNmZ6d1A5VERZQWdFdUt2cmpNSlMxRzVYNjE2bGRuOVBERC1YV01ocWJrdjdpcmdaeG84UmM5VENSVEhNUUJlQUw3X1JFenBGaEJWUUFEaTQ5ejdsMzNPdi1ueWwybkRhSQ&amp;q=https%3A%2F%2Fhub.helm.sh%2F\">https:\/\/hub.helm.sh\/<\/a> &#8211; Helm charts GitHub Project: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbnY3XzFGUnhqODdlQnNTZXVZU1FPNWJyLXpuZ3xBQ3Jtc0ttR1k2azBIU2I0Zl9DY0NHblFWTDdQazQyc1FvRFZQRFJUc0lBMDk5OXBKdVQ1clAzbHloSm5PQ2dSR0NmaHZUbTNTM2xFQ0JDQnctdzcwUGhudEV5M0hCVnJjT2t1TkdIUEpVTHdJOVJBX0NGTGxkbw&amp;q=https%3A%2F%2Fgithub.com%2Fhelm%2Fcharts\">https:\/\/github.com\/helm\/charts<\/a> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Install Helm: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbWR0MWdEOGN0Yk0xR2FZSVltSmxpbXBuRVV6Z3xBQ3Jtc0tra21yTzJwNjU0SHMybmtSQ0hDNnJ3VUF2VjFQMFAwMVpHQnNPR29TamFDSl9hSjJjaXo1SGdqMEtybFB2VGZob3FtRGdEYW96SHZIemYySlJQWkgtWWRXZnktR2J0VGs4R2N4RHJpWG5yYXRReEdwWQ&amp;q=https%3A%2F%2Fhelm.sh%2Fdocs%2Fintro%2Finstall%2F\">https:\/\/helm.sh\/docs\/intro\/install\/<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Persisting Data in K8s with Volumes <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba The need for persistent storage &amp; storage requirements <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Persistent Volume (PV) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Local vs Remote Volume Types <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Who creates the PV and when? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Persistent Volume Claim (PVC) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Levels of volume abstractions <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba ConfigMap and Secret as volume types <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Storage Class (SC) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 Links: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Git Repo: <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/redirect?event=video_description&amp;redir_token=QUFFLUhqbW9wSFFnWnlqZGpYTHJqTWpIY2NZRkEzU0MyQXxBQ3Jtc0ttSUd5ZHUwd3VXX2ZrRXF0V09FTTVUS2tLaGc1RXZJRVdDTk1pdmY1RTAxZC15bWl2RERmMnhJaTJoVThIUnR3U3Z5OFUxb1hIRkNGcjdSRWhGOVRlQndtRTRVN0Y5ZVA3dzdBVk5wQ2tZanpmY0ZKQQ&amp;q=https%3A%2F%2Fbit.ly%2F2Gv3eLi\">https:\/\/bit.ly\/2Gv3eLi<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Deploying Stateful Apps with StatefulSet <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25baWhat is StatefulSet? Difference of stateless and stateful applications <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Deployment of stateful and stateless apps <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Deployment vs StatefulSet <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Pod Identity <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Scaling database applications: Master and Worker Pods <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Pod state, Pod Identifier <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba 2 Pod endpoints<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">K8s Services<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba What is a Service in K8s and when we need it? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba ClusterIP Services <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Service Communication <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Multi-Port Services <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba Headless Services <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba NodePort Services <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u25ba LoadBalancer Services<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe class=\"youtube-player\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/X48VuDVv0do?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><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">KUBERNETES TUTORIAL T I M E S T A M P S <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">0:00<\/a> &#8211; Course Overview <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">2:18<\/a> &#8211; What is K8s <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">5:20<\/a> &#8211; Main K8s Components <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">22:29<\/a> &#8211; K8s Architecture <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">34:47<\/a> &#8211; Minikube and kubectl &#8211; Local Setup <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">44:52<\/a> &#8211; Main Kubectl Commands &#8211; K8s CLI <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">1:02:03<\/a> &#8211; K8s YAML Configuration File <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">1:16:16<\/a> &#8211; Demo Project: MongoDB and MongoExpress <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">1:46:16<\/a> &#8211; Organizing your components with K8s Namespaces <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">2:01:52<\/a> &#8211; K8s Ingress explained <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">2:24:17<\/a> &#8211; Helm &#8211; Package Manager <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">2:38:07<\/a> &#8211; Persisting Data in K8s with Volumes <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">2:58:38<\/a> &#8211; Deploying Stateful Apps with StatefulSet <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\">3:13:43<\/a> &#8211; K8s Services explained<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Full Kubernetes Tutorial | Kubernetes Course | Hands-on course with a lot of demos Kubernetes COURSE OVERVIEW What is Kubernetes&nbsp; \u25ba What problems does Kubernetes solve? \u25ba What features do container orchestration tools offer? Main K8s Components \u25ba Node &amp; Pod \u25ba Service &amp; Ingress \u25ba ConfigMap &amp; Secret \u25ba Volumes \u25ba Deployment &amp; StatefulSet [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-5168","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"blocksy_meta":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2TFCd-1lm","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts\/5168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/comments?post=5168"}],"version-history":[{"count":2,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts\/5168\/revisions"}],"predecessor-version":[{"id":5170,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts\/5168\/revisions\/5170"}],"wp:attachment":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/media?parent=5168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/categories?post=5168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/tags?post=5168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}