You’re a genius! I never realized Kubernetes could be this simple until I watched your videos. You explain things so clearly-it just clicks. I’ve explored so many other channels for Kubernetes, but none compare to yours. You truly deserve at least a million subscribers. Keep up the amazing work; you're making a huge impact!
Breaking down the basics with ease and helping laymen like myself make sense of all the endless documents that we can get caught up reading. You are the man Piyush!
Kubernetes is simple, people just made a hype out of it. If you start enjoying Kubernetes, it's all a piece of cake considering you are doing hands-on, facing the issues and fixing the issue. Start with fundamentals and then gradually go in depth
Thankyou so much piyush , i see lot of value in your content & the way you explain is awesome . on target to complete CKA certification with your videos
"Fantastic video! 🌟 This has been incredibly helpful in deepening my understanding of Kubernetes. The explanations are clear, and the examples are practical-perfect for beginners and experienced learners alike. Thank you for sharing your knowledge! 🙌🚀"
Couldn't watch for a week. But still able to relate things pretty well. Mastery in teaching. Keep up good work. Although I'm coming here to revise my kube knowledge. Your teaching skills are pretty neat ❤
Well, I try to improve every time I can. Continuous improvement with the help of constant feedback, isn't that what a DevOps engineer does? :) Thank you for your support and feedback. I appreciate it
Hello Shivam, Let's try to understand why we are doing the extraportmapping in Kind cluster? Kind is Kubernetes inside Docker, that means all the nodes are actually the docker containers so, to access any service that is hosted on a node, we need to expose the container(which is the node), that is why we need to expose the ports of nodes. Minikube doesn't work the same way, it uses your local machine as the node, you dont need to perform the extranode mapping for that. Hope it helps.
I installed Kind on the EC2 instance and am working there, while accessing the application 0f 30001 port I am getting a timed-out error, even though I added inbound rules for the node port and NACL is also allowing the port. Could you help me understand where I am getting wrong?
If you're running Kubernetes on-premises or in a cloud environment that doesn't directly support LoadBalancer services (e.g., bare metal or a local development environment), you might need to use an Ingress Controller for managing external access to services. Ingress provides more advanced routing rules, such as URL-based routing, SSL termination, etc
Hi Piyush. Thank you so much for this great series. You don't know how simplified you have made K8 for me. However, I am a little bit confused. When we create a nodePort Service, external users can access the pod through the nodePort sending traffic to the targetPort of the pod and the "port" is used for communication between pods of the same or different nodes. Now why then do we need ClusterIP if it is also for communication between Pods?
Kind is a local kubernetes installation meaning , everything is running locally and there is no external IP that's been exposed. so, yes it has to be accessed by localhost or you can use kubeadm installation of virtual machines, which we have covered later in the series.
If I do not add extraPortMappings: - containerPort: hostPort: when creating a Kind cluster, will I still be able to expose the Service to the outside world using a LoadBalancer type service?
Hello Yash, No , it will not work as the Kind cluster treats docker containers as Nodes, you have to expose these containers(Nodes) with the help of extraPortMapping. I hope I was able to answer the question.
sir i created nodeport but i cannot access it on browser. With curl i can access node port. I am using minikube in google cloud. Please guide how i ca access nodeport on browser??
Hi Piyush, thanks for winderful stuff ! I have one question here, let say if we want to expose few more ports in kind , so we really need to re-create the cluster with new port mappings ?
Yes, you need to recreate the cluster as kind doesnt support cluster update. In day27, we will perform kubeadm installation on virtual machines which eliminate these kind of steps.
You're welcome buddy! You can use, but I dont think it has a support for multi node cluster. Kind is simple to setup and use and it uses docker containers as nodes.
I am new to Kubernetes and trying to understand the concept. Container is inside the pod and pod is inside the node, so in Kind cluster yaml, we exposed container port 30001 to host 30001, but in service, 30001 is a node port, so is node port and container port same here.
Thanks Pradeep. Networking in production is really a complex topic hence, I did not want to cover for a beginner series. I will try to cover this once I am done with the CKA series.
What would be real exposed port is 80 or 30001 because in one of my earlier particles getting output from 80 and not from 30001. I used minikube and for kind i use NodePort.
Application is exposed on nodeport hence 30001 also we did the port mapping on 30001. Can you try to do port mapping in kind yaml on port 80 and then see on which port you are able to access the application on?
Sir i have a question. Can we have a service without selector? And what are the industry standards either they use Type LB or something else? Because LB type will be costly.
Hello Salman, No, service needs a selector so that it expose a pod/deployment . Industry standard is to use a managed cloud loadbalancer(if they are on cloud) , external LB(such ad Big5, Metalb) if they are on-premises or a privata data centre and Ingress for applications exposed externally , for internal use , clusterIP and nodeport for some cases. We will be covering Ingress in video #33
I assume Piyush used his own K8s cluster deployed on AWS EC2 so LoadBalancer does not allocate a externalIP, however if you use any cloud provider ( manged K8s) then the manifest file will assign ExternalIP when its applied using the k apply command. thats the difference.
woah.. Damn awesome video Piyush. That was a lot to cover. I dont know why but I got some kind of rush 😅. Understood all the part. However, I have this question. I know you might have covered in the videos, but still gotta ask. So, what exactly is the heirarchy in kubernetes. i mean I understood the basic like pod is the smallest unit, then node then all nodes form clusters etc. But if we talk on a different level, say replicastes, deployments etc. then what is the heirarchy over here?
Thank you for the feedback! Pod is the smallest deployable unit in Kubernetes but the pod could have multiple containers. Pods are managed by replicaset which is then managed by deployment. Deployments are exposed by services and each of these resources can run on multiple nodes. Collection of similar nodes are called nodepools(cloud related concept) , multiple node pools form a cluster. Resources are also isolated among namespaces(next video) , there are other resources such as Daemonset, cronjobs, job etc which we will be covering in later videos. Hope this helps :)
Hello, I think there is an oversight regarding the creation of the cka-cluster3 cluster. If we look closely the version of the node is V1.30 instead of v1.29.4. You forgot to --image kindest/node:v1.29.4@sha256:3abb816a5b1061fb15c6e9e60856ec40d56b7b52bcea5f5f1350bc6e2320b6f8. THANKS.
Hi Piyush When I try ro create cluster 3 23:16 in the video, I am facing issue with ✗ Preparing nodes 📦 📦 📦 Deleted nodes: ["cka-cluster3-worker" "cka-cluster3-control-plane" "cka-cluster3-worker2"] ERROR: failed to create cluster: could not find a log line that matches "Reached target .*Multi-User System.*|detected cgroup v1"
You’re a genius! I never realized Kubernetes could be this simple until I watched your videos. You explain things so clearly-it just clicks. I’ve explored so many other channels for Kubernetes, but none compare to yours. You truly deserve at least a million subscribers. Keep up the amazing work; you're making a huge impact!
Glad to hear you're finding my videos helpful, I'm working hard to make them as clear as possible! 💪
@@TechTutorialswithPiyush ❤
i am fresher no idea of any thing and trust me i am getting all concept like piece of cake. Thank you for such valuable contribution.
Complete this series including all the tasks in GitHub and you won't consider yourself a fresher! All the best :)
you are truly a Gem. Thanks Piyush for your contribution to the community...
Thank you for the kind words! You made my day :)
Breaking down the basics with ease and helping laymen like myself make sense of all the endless documents that we can get caught up reading. You are the man Piyush!
It feels great to know that my approach is well received by my viewers and you are seeing value in the content. That's all matters to me :)
Kubernetes Services seems simple now.
Thank you for all of your efforts 🙂
Kubernetes is simple, people just made a hype out of it. If you start enjoying Kubernetes, it's all a piece of cake considering you are doing hands-on, facing the issues and fixing the issue. Start with fundamentals and then gradually go in depth
One of the most important things you mentioned, sir, is exposing the IP address to the external world. An amazing and informative video!
Glad you found it helpful Mihir :)
I'm learning SO much! Thank you!
It feels great to know 😀 Thank you for the feedback
Thank you for the explanation on Services :)
Happy to help!
Clear and simple , thank you !
Glad it helped!
Just amazing, thanks a lot for the effort
I'm glad you enjoyed it!
Thankyou so much piyush , i see lot of value in your content & the way you explain is awesome . on target to complete CKA certification with your videos
Thank you so much
"Fantastic video! 🌟 This has been incredibly helpful in deepening my understanding of Kubernetes. The explanations are clear, and the examples are practical-perfect for beginners and experienced learners alike. Thank you for sharing your knowledge! 🙌🚀"
Glad it was helpful! Happy to see you're finding value in this series. 😊
Thank you Piyush!!!
Thank you! It took me some time to reproduce and understand service types.
Glad it helped!
Really thanks for your efforts. Till now I haven't find any problem to understand and implement the concepts. Thanks a lot.
Awesome, I'm glad to know that 😁
Awesome class 🎉.
Thank you for your valuable free content.❤❤❤
you're welcome
Thank you for this!
welcome
Very helpful video!
Thank you!
Couldn't watch for a week. But still able to relate things pretty well. Mastery in teaching. Keep up good work.
Although I'm coming here to revise my kube knowledge. Your teaching skills are pretty neat ❤
Well, I try to improve every time I can. Continuous improvement with the help of constant feedback, isn't that what a DevOps engineer does? :) Thank you for your support and feedback. I appreciate it
@@TechTutorialswithPiyush perfectly said. 👏👏
Thanks!
Thank you so much! Really appreciate it.
26:36
How can we do the same extraPort Mapping in minikube cluster instead of kind cluster?
Hello Shivam, Let's try to understand why we are doing the extraportmapping in Kind cluster? Kind is Kubernetes inside Docker, that means all the nodes are actually the docker containers so, to access any service that is hosted on a node, we need to expose the container(which is the node), that is why we need to expose the ports of nodes.
Minikube doesn't work the same way, it uses your local machine as the node, you dont need to perform the extranode mapping for that. Hope it helps.
thanks Piyush bhai ..really helpful ..
Thank you bro
Completed the video....Thanks @Piyush Bhai
Welcome bhai :)
Thank you!
sir , 37:00 how to access application using cluster ip ? that cluster ip is not working when i am trying to acces application from the browser
It should work on localhost:nodeport as this is what we used to expose the service
I installed Kind on the EC2 instance and am working there, while accessing the application 0f 30001 port I am getting a timed-out error, even though I added inbound rules for the node port and NACL is also allowing the port. Could you help me understand where I am getting wrong?
Try accessing nodeip:portnumber
Very Good Explanation
Keep watching
Excellent thank you
Appreciate it! 👍
very informative
Glad it was helpful!
V imperative thanks ❤❤
Thanks..!! Very Informative Video
Welcome
If you're running Kubernetes on-premises or in a cloud environment that doesn't directly support LoadBalancer services (e.g., bare metal or a local development environment), you might need to use an Ingress Controller for managing external access to services. Ingress provides more advanced routing rules, such as URL-based routing, SSL termination, etc
Agree with you!
why do we need loadbalancer service if we already have nodeport service it is also distributing the traffic between nodes right?
With nodeport , you pass the traffic on a particular node and port, loadbalancer helps you expose the service externally, they have different purpose
i want to know does we had done something like port-mapping for kind cluster ?
Yes, we have to do the port mapping for kind. As the containers are acting as node, we have to expose the containers on port
Your videos are really helpful can you make a lecture on annotations
Sure, will do
Hi Piyush. Thank you so much for this great series. You don't know how simplified you have made K8 for me. However, I am a little bit confused. When we create a nodePort Service, external users can access the pod through the nodePort sending traffic to the targetPort of the pod and the "port" is used for communication between pods of the same or different nodes. Now why then do we need ClusterIP if it is also for communication between Pods?
Thank YOu PIyush
So Using kind cluster we cannot run application through it has to be run through localhost?
Kind is a local kubernetes installation meaning , everything is running locally and there is no external IP that's been exposed. so, yes it has to be accessed by localhost or you can use kubeadm installation of virtual machines, which we have covered later in the series.
Hi Piyush, How service and pod will talk each other. with help of match lables
Yes, selector helps a pod/deployment to be exposed as a service
thanks sir.
Welcome
If I do not add extraPortMappings: - containerPort: hostPort: when creating a Kind cluster, will I still be able to expose the Service to the outside world using a LoadBalancer type service?
Hello Yash, No , it will not work as the Kind cluster treats docker containers as Nodes, you have to expose these containers(Nodes) with the help of extraPortMapping. I hope I was able to answer the question.
Thanks !@@TechTutorialswithPiyush
amazingcontent
Thank you so much!
sir i created nodeport but i cannot access it on browser. With curl i can access node port. I am using minikube in google cloud. Please guide how i ca access nodeport on browser??
As you are using minikube on a gcp vm, it should be accessible on vmexternalip:nodeport
Hi Piyush, thanks for winderful stuff ! I have one question here, let say if we want to expose few more ports in kind , so we really need to re-create the cluster with new port mappings ?
Yes, you need to recreate the cluster as kind doesnt support cluster update. In day27, we will perform kubeadm installation on virtual machines which eliminate these kind of steps.
@@TechTutorialswithPiyush Awesome Thanks for prompt reply ! Kudos
Thank you very much Piyush can i use the Docker desktop instead of Kind
You're welcome buddy! You can use, but I dont think it has a support for multi node cluster. Kind is simple to setup and use and it uses docker containers as nodes.
@@TechTutorialswithPiyush yes no multide ill setup kind
One quick question reg. NodePort svc
Is NodePort svc binded to k8s node ?
correct
I am new to Kubernetes and trying to understand the concept. Container is inside the pod and pod is inside the node, so in Kind cluster yaml, we exposed container port 30001 to host 30001, but in service, 30001 is a node port, so is node port and container port same here.
super sir
Thanks for the Video Piyush. Can you please make a video on how k8s networking will be handled in production environment
Thanks Pradeep. Networking in production is really a complex topic hence, I did not want to cover for a beginner series. I will try to cover this once I am done with the CKA series.
thanks
Great Content, thanks for creating this.
What tool do you use to record this session?
Thanks Buddy, I use OBS
How can we rollouts multiple deployments like i have applied nginx scond jenkins and third tomcat images so how can rollout these
For that you use package managers such as Helm and CICD tools, We will cover those once we are done with this series.
What would be real exposed port is 80 or 30001 because in one of my earlier particles getting output from 80 and not from 30001. I used minikube and for kind i use NodePort.
Application is exposed on nodeport hence 30001 also we did the port mapping on 30001. Can you try to do port mapping in kind yaml on port 80 and then see on which port you are able to access the application on?
Sir i have a question. Can we have a service without selector? And what are the industry standards either they use Type LB or something else? Because LB type will be costly.
Hello Salman, No, service needs a selector so that it expose a pod/deployment .
Industry standard is to use a managed cloud loadbalancer(if they are on cloud) , external LB(such ad Big5, Metalb) if they are on-premises or a privata data centre and Ingress for applications exposed externally , for internal use , clusterIP and nodeport for some cases. We will be covering Ingress in video #33
Day-9 completed
let's go 🚀
I assume Piyush used his own K8s cluster deployed on AWS EC2 so LoadBalancer does not allocate a externalIP, however if you use any cloud provider ( manged K8s) then the manifest file will assign ExternalIP when its applied using the k apply command. thats the difference.
That is true, I have used Kind cluster on my laptop that is why there is no external LB or external IP allocation.
🎉🎉
woah.. Damn awesome video Piyush. That was a lot to cover. I dont know why but I got some kind of rush 😅. Understood all the part. However, I have this question. I know you might have covered in the videos, but still gotta ask. So, what exactly is the heirarchy in kubernetes. i mean I understood the basic like pod is the smallest unit, then node then all nodes form clusters etc. But if we talk on a different level, say replicastes, deployments etc. then what is the heirarchy over here?
Thank you for the feedback! Pod is the smallest deployable unit in Kubernetes but the pod could have multiple containers. Pods are managed by replicaset which is then managed by deployment. Deployments are exposed by services and each of these resources can run on multiple nodes. Collection of similar nodes are called nodepools(cloud related concept) , multiple node pools form a cluster. Resources are also isolated among namespaces(next video) , there are other resources such as Daemonset, cronjobs, job etc which we will be covering in later videos. Hope this helps :)
Hello,
I think there is an oversight regarding the creation of the cka-cluster3 cluster. If we look closely the version of the node is V1.30 instead of v1.29.4. You forgot to --image kindest/node:v1.29.4@sha256:3abb816a5b1061fb15c6e9e60856ec40d56b7b52bcea5f5f1350bc6e2320b6f8. THANKS.
When we didn't add the image details, it takes the latest version by default
OK thanks@@TechTutorialswithPiyush
Thank you, #cka
Welcome!
❤
cfbr ♥
Hi Piyush When I try ro create cluster 3 23:16 in the video, I am facing issue with
✗ Preparing nodes 📦 📦 📦
Deleted nodes: ["cka-cluster3-worker" "cka-cluster3-control-plane" "cka-cluster3-worker2"]
ERROR: failed to create cluster: could not find a log line that matches "Reached target .*Multi-User System.*|detected cgroup v1"
This is a known issue and here's the solution
github.com/kubernetes-sigs/kind/issues/3423#issuecomment-1872074526
@@TechTutorialswithPiyush Thanks it work
Thanks!
Thank you so much! Appreciate it
Thank you for this!
My pleasure!
Thankyou
Welcome