- Видео 75
- Просмотров 420 030
Vivek Singh
Индия
Добавлен 11 сен 2020
Hey,
My name is Vivek, I am Software Engineer working around Open Source and Cloud Native technologies around Kubernetes primarily using Go as programming language.
In this channel I am going to create videos about Containers, Kubernetes, Go programming language and Software Engineering in general. In these videos I am planning to actually show you things by doing, instead of just talking about them; so that you would actually learn about them and can use them either at your work or as some other place.
My name is Vivek, I am Software Engineer working around Open Source and Cloud Native technologies around Kubernetes primarily using Go as programming language.
In this channel I am going to create videos about Containers, Kubernetes, Go programming language and Software Engineering in general. In these videos I am planning to actually show you things by doing, instead of just talking about them; so that you would actually learn about them and can use them either at your work or as some other place.
Implementing K8S Volume Populator | Writing a K8S Volume Populator from scratch - 3
This video is the next video in the series where we have been talking about the Kubernetes volume populators. In this video we actually write the volume populator and showed the end to end working of it.
GitHub repo: github.com/viveksinghggits/generichttppopulator
Docs and other things referred:
pkg.go.dev/k8s.io/api/core/v1#TypedObjectReference
kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#create-a-customresourcedefinition
kubernetes.io/blog/2022/05/16/volume-populators-beta/#trying-it-out
Web:
viveksingh.dev/
00:00 Introduction
00:23 Agenda
01:01 Creating project and which popu...
GitHub repo: github.com/viveksinghggits/generichttppopulator
Docs and other things referred:
pkg.go.dev/k8s.io/api/core/v1#TypedObjectReference
kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#create-a-customresourcedefinition
kubernetes.io/blog/2022/05/16/volume-populators-beta/#trying-it-out
Web:
viveksingh.dev/
00:00 Introduction
00:23 Agenda
01:01 Creating project and which popu...
Просмотров: 589
Видео
Internal architecture of K8S Volume Populators | Writing a K8S Volume Populator from scratch - 2
Просмотров 388Год назад
In this video we looked into the dataSourceRef field of PersistentVolumeClaim resource in detail and discussed what are valid and invalid volume populators. A part from that we also looked into the internal architecture of how volume populators are going to be written. We talked about the architecture in detail and in the next video we are going to actually write the controller. Web: viveksingh...
DataSource and DataSourceRef for PVC resources | Writing a K8S Volume Populator from scratch - 1
Просмотров 648Год назад
This video is the first video in the series where we are going to write a Volume Populator from scratch, and in this video we looked into the DataSource and DataSourceRef field of PVC resource. We talked about these resources in details for example how they can be used to create volume from existing PVC or volume snapshot resource. A part from that we also talked about the difference between th...
Using veth network interface to connect two network namespaces | Kubernetes Networking | Part - 1
Просмотров 1,9 тыс.Год назад
This is first video of the series in which I am going to talk about Kubernetes networking in details. In this video looked into how two processes that are running in two different network namespace can communicate with each other. Video about network namespaces: ruclips.net/video/7t_OTxJfB_o/видео.html Web: viveksingh.dev/ GitHub Repo with commands: github.com/viveksinghggits/cross-nwnamespace-...
What are Kubernetes Finalizers? | Implementing Kubernetes finalizer for a resource
Просмотров 2,7 тыс.Год назад
In this video we talked about what exactly are Kubernetes finalizers and how they are useful in making sure that we can make sure a condition is met before the Kubernetes resource is deleted. Apart from that we also looked into how we can implement a respecitve controller for the finalizer that wold delete it, once that condition is met. Kluster Playlist: ruclips.net/video/89PdRvRUcPU/видео.htm...
Implementing NodePublishVolume of NodePlugin | Writing a Kubernetes CSI plug-in from scratch -9
Просмотров 6122 года назад
In this video we concluded writing the CSI plugin that we have been writing in some of the previous videos. We specifically implemented NodePublishVolume RPC of the node plugin in this video that mounts the volume from the staging dir to the target dir. After implementing the NodePlublishVolume we showed how the volume request (PVC) that was created using this new CSI Plugin was actually fulfil...
Mounting attached volume to a staging directory | Writing a Kubernetes CSI plug-in from scratch -8
Просмотров 4802 года назад
In this video we continued writing the CSI plugin that we have been writing in previous videos in this series and implemented the NodeGetCapabilities and NodeStageVolume RPCs of the node plugin. This RPC (NodeStageVolume) is called after the ControllerPublishVolume of the controller plugin was successful and Node plugin has specified that is supports stage and unstage of volumes (using NodeGetC...
Implement ControllerPublishVolume of Plugin | Writing a Kubernetes CSI plug-in from scratch -7
Просмотров 4752 года назад
In this video we implemented the ControllerPublishVolume RPC of Controller plugin that gets called by external attacher to attach a volume to a specific node. This is the volume that was created by CreateVolume RPC of the Controller plugin. GitHub: github.com/viveksinghggits/bsos Writing CSI Plugin from Scratch Playlist: ruclips.net/video/OIpX7WkJzOg/видео.html Web: viveksingh.dev/ 00:00 Introd...
Deploy node plugin and node-driver-registrar | Writing a Kubernetes CSI plug-in from scratch -6
Просмотров 6252 года назад
In this video we tried to make sure that the ControllerPublishVolume RPC of the controller plugin is being called for the VolumeAttachment resources in the Kubernetes cluster. We know that once PV resource is created by external provisioner and we try to use the volume in a workload, attach-detach controller creates VolumeAttachment resource. To make sure that VolumeAttachment resources are wat...
Implement CreateVolume RPC of Controller Service | Writing a Kubernetes CSI plug-in from scratch -5
Просмотров 9022 года назад
We actually went ahead and implemented CreateVolume RPC of the controller service form the CSI plugin. As described in the CSI specification, CreateVolume method/RPC from controller service gets called as soon as a volume is requested from Container Orchestrator, in our case Kubernetes. We also looked, in detail, into how the input object to create volume request looks like. For example AccessM...
Deploying ext.-provisioner and controller plugin | Writing a Kubernetes CSI plug-in from scratch -4
Просмотров 8472 года назад
In this videos we tried to deploy the skeleton CSI plugin that we have written till now in this series. We discussed in detail about how we are going to create the unix domain socket where the gRPC server is going to run at and how to make the external provisioner aware of that unix domain socket using volume that is mounted on both the directories. Once deployed we also looked into the workflo...
Setting up the gRPC server for CSI plug-in | Writing a Kubernetes CSI plug-in from scratch -3
Просмотров 1,1 тыс.2 года назад
In this video we actually started coding the CSI plugin specifically for DigitalOcan. So, using this plugin we would be able to provision volumes on DigitalOcean dynamically. In this we actually set up the gRPC server and registered the service implementations with the server. Web: viveksingh.dev/ GitHub of bsos: github.com/viveksinghggits/bsos DigitalOcean CSI GitHub: github.com/digitalocean/c...
How Kubernetes communicates with CSI Plugin | Writing a Kubernetes CSI plug-in from scratch -2
Просмотров 1,6 тыс.2 года назад
In this video we talked about Kubernetes or other Kubernetes components can communicate with CSI plug-in to call the appropriate RPC to manage the Volumes on Kubernetes. We also looked into the ways we are going to deploy these components (node plugin and controller plugin) with the external components on a Kubernetes cluster. We also talked about all the external components (external-provision...
What is Kubernetes CSI plugin and Specification | Writing a Kubernetes CSI plug-in from scratch -1
Просмотров 3,8 тыс.2 года назад
In this video we started talking about dynamic and static provisioning of volumes on Kubernetes cluster and then what is in-tree and out of tree mechanism to support creating volumes on specific storage providers. Later we started talking about what exactly is CSI specification and what is CSI plugin that storage providers can write to make sure Container Orchestrators can call the plugins to p...
Get complete GVR (Group Version Resource) for Kubernetes Resource | Demo of RESTMapper interface
Просмотров 2,3 тыс.2 года назад
In this video we looked into how we can get the complete GVR (Group Version Resource) for a specified Kubernetes resource. Web: viveksingh.dev/ GitHub: github.com/viveksinghggits/restmapper 00:00 Introduction 00.24 Agenda 03:22 RestMapper.ResourceFor 04:51 How do we get RestMapper instance 06:31 Implementation 16:05 Demo 17:40 Testing for Custom Resource types 19:56 Discovery Cache and Dir 22:0...
Linux cgroups explained | limit resources for a set of processes
Просмотров 9 тыс.2 года назад
Linux cgroups explained | limit resources for a set of processes
Kubernetes Dynamic Client | Interacting with CRs without having generated code
Просмотров 3,1 тыс.2 года назад
Kubernetes Dynamic Client | Interacting with CRs without having generated code
Writing Mutating Admission Controller from Scratch | Mutating Webhook Kubernetes
Просмотров 1,8 тыс.2 года назад
Writing Mutating Admission Controller from Scratch | Mutating Webhook Kubernetes
What is Aggregated API Server | Difference between Aggregated API Server and CRDs
Просмотров 2,7 тыс.2 года назад
What is Aggregated API Server | Difference between Aggregated API Server and CRDs
Handling AdmissionReview object | Writing Validating Webhook Controller From Scratch - Final
Просмотров 1,1 тыс.2 года назад
Handling AdmissionReview object | Writing Validating Webhook Controller From Scratch - Final
Writing Validating Webhook Controller From Scratch - 1 | Validating Webhook Kubernetes
Просмотров 3,9 тыс.2 года назад
Writing Validating Webhook Controller From Scratch - 1 | Validating Webhook Kubernetes
Adding users to a managed Kubernetes cluster | Generating private key and certificate
Просмотров 2,9 тыс.2 года назад
Adding users to a managed Kubernetes cluster | Generating private key and certificate
Anatomy of Persistent Volume Controller in Kubernetes | Code walk through
Просмотров 1,1 тыс.2 года назад
Anatomy of Persistent Volume Controller in Kubernetes | Code walk through
Admission Controllers in Kubernetes | Mutating and Validating Webhooks in Kubernetes
Просмотров 7 тыс.3 года назад
Admission Controllers in Kubernetes | Mutating and Validating Webhooks in Kubernetes
Supporting multiple versions (v1alpha1, v1beta1) of CR in Kubernetes | Conversion Webhook Explained
Просмотров 2,1 тыс.3 года назад
Supporting multiple versions (v1alpha1, v1beta1) of CR in Kubernetes | Conversion Webhook Explained
Packaging (containerise and RBAC) your K8S operator as a developer | Writing K8S Operator - Part 6
Просмотров 8753 года назад
Packaging (containerise and RBAC) your K8S operator as a developer | Writing K8S Operator - Part 6
Event recorder for Kluster and routines to handle Objects from Queue | Writing K8S Operator - Part 5
Просмотров 1,1 тыс.3 года назад
Event recorder for Kluster and routines to handle Objects from Queue | Writing K8S Operator - Part 5
Setting up 3 node Kubernetes cluster version 1.22 from scratch, on Ubuntu instances
Просмотров 6 тыс.3 года назад
Setting up 3 node Kubernetes cluster version 1.22 from scratch, on Ubuntu instances
SubResources and additional printer columns for CRDs | Writing K8S Operator - Part 4
Просмотров 1,4 тыс.3 года назад
SubResources and additional printer columns for CRDs | Writing K8S Operator - Part 4
Calling DigitalOcean APIs on Kluster's add event | Writing K8S Operator - Part 3
Просмотров 1,2 тыс.3 года назад
Calling DigitalOcean APIs on Kluster's add event | Writing K8S Operator - Part 3
amazing content
Your videos are much better than paid sessions.Thank you for your effort.
@Vivek Singh : Could you make a video on using key and certs stored in pem files
Hi Vivek,thank you for your efforts! You mentioned that the CP should run on the master nodes, and the NP on the worker nodes. However, when I apply the CSI driver, I’m seeing a CrashLoopBackOff error. After investigating, I found that both CP pods and NP pods are running on both master and worker nodes. It seems like the taints/tolerations may need modification. Could you clarify why the default behavior doesn't match what you explained?
How we can implement that issue of informer trying to resync after few minutes even if there is no change in the resources?
good videos
keep making these videos bhai..thanks a lot
Pls create more videos ❤(given, if you're not busy in life and have time to give us this superb content) Thank you so much!!
Thank you. What would you like me to make videos on?
This is so informational thanks so much!!
very exciting start
I think this could be more obvious =) ``` if err != nil && os.IsExists { //... } ```
can we add informers to Custom resources
Yes, we can do that. I think I have a video about that.
Thanks Sir !!
Sir, I have a multiple microservices how can i access all the microservices with DNS through ingress. Please help 🙏 🙏 me I have stuck on it from long days
audio having some issue
Thankyou very much . I am very close to understanding the internals of containerization.
Great session
file kaha pe milagi ??
Vivek sir can you please revamp your k8s series lot of stuff has changed.
Do you have anything specific in your mind that I should look into?
Great video, cleared most of my confusion. Thank you
Thank you. I am glad it helped.
Great content, Thanks🙂
Thank you.
"I should not have done that" LOL!
great vai
Thank you.
This helped me a lot! Could you please make a video on authentication mechanisms
Awesome Content! Understood the architecture clearly. Also could you share the terminal font you were using in this video :-)
Great video man, thanks for this, im looking forward to complete the whole series ASAP!
Great video :)
Hey Vivek. Thank you for the very detailed explanation. It was super helpful!
Nice video Vivek, really helped me a lot. Also, I want to read further about CR and CRDs so can anyone help me with some resources for it?
Great one
Thank you.
Sir how can i access for domain i have add domain i am accessing within cluster but i can't access in external world in my domain what i should add in dns for access my application in my domain
Awesome stuff!
Please fix your sound
Great content
Thanks It's Great Keep going
Thank you.
There are two processes here..1) the terminal 2) the go executable. The memory constraint is applied to which process? If it applies to the terminal, commenting out the fmt on line21 should allow the go process to execute? If it applies to the go binary, does it inherit the constraint from its parent process, terminal in this case???
Hi Amarjeet, I might be a bit off here, so please read more about it. But if I try to answer your question, the terminal would not be considered a process running in the shell. It would be the programs that we are running from the shell like we ran the go program. For the second question, I am not really sure which constraints are you talking about. If you are talking about memory it can use, we saw that we can configure that using cgroup. If you are talking about the resources that are not configured using cgroup, I am not really sure about that right now. I will have to check that.
Highly appreciate your effort Vivek 🙏
Thank you.
hi Vivek, how we can contact you,
There is a link on my website to schedule a call with me.
best video for service account explanation 💪💪
Thank you.
excellent videos . do you have git repo for kubernetes or gendral things for devops
github.com/viveksinghggits
A really well made video, it's a lack of that content in youtube, great decision to share that content with us
Thank you. I am glad you liked it.
How do i change the current context in a kubeconfig file?
Google the same question and you should be able to find out the kubectl command to do that.
Nice explanation. My question is when you create a cgroup and limit the memory to 50MB and start a vscode does it not getting killed since you are using the same shell?
I don’t exactly remember the entire video now, but there are chances that vscodr was not taking that much of memory.
Great stuff bro tq 🫂
Thank you.
Nice explanation, thanks for your efforts.
Thank you 🙏.
Nice video Vivek..!
Thank you.
Thanks a lot for sharing this important resource. I am gonna watch all the content
I am glad you liked the videos.
Please contact me
Im a college student that just be start in kubernetes world. If dont have you guys who doing such a quility content.I would not be able to understand those complicate concept. Thank you very much 🎉🎉
Thank you. I am glad the videos were helpful.
Hi Vivek, It looks like this video is bit outdated, Can u pls update with the latest codegenerator or may be with kodebuilder?
Let’s see if I can do this any time soon.