Vivek Singh
Vivek Singh
  • 75
  • 416 413
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 populator are we writing
06:00 Specifying dataSourceRef
07:07 CRD for our GenericHTTPPopulator
11:03 Creating and instance of GenericHTTPPopulator
14:35 Demoing data source validator
21:21 Registering our populator GenericHTTPPopulator
25:49 Arch. of populator controller
28:52 Writing controller
37:36 Explaining arguments to populator machinery's RunController
40:55 Resuming writing controller
54:06 Implementing populator
01:04:22 Build and containerise the project
01:07:09 Deployment manifest for controller
01:08:23 Specifying args in deployment manifest
01:10:09 RBAC for controller (populator machinery)
01:13:51 Testing the populator E2E
01:18:15 Consume PVC to check populated volume
01:21:58 Summary
01:25:15 Like, Share, Subscribe
มุมมอง: 572

วีดีโอ

Internal architecture of K8S Volume Populators | Writing a K8S Volume Populator from scratch - 2
มุมมอง 381ปีที่แล้ว
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
มุมมอง 633ปีที่แล้ว
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.8Kปีที่แล้ว
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: th-cam.com/video/7t_OTxJfB_o/w-d-xo.html Web: viveksingh.dev/ GitHub Repo with commands: github.com/viveksinghggits/cross-nwnamespace-...
What are Kubernetes Finalizers? | Implementing Kubernetes finalizer for a resource
มุมมอง 2.6Kปีที่แล้ว
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: th-cam.com/video/89PdRvRUcPU/w-d-xo.htm...
Implementing NodePublishVolume of NodePlugin | Writing a Kubernetes CSI plug-in from scratch -9
มุมมอง 6062 ปีที่แล้ว
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
มุมมอง 4732 ปีที่แล้ว
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
มุมมอง 4632 ปีที่แล้ว
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: th-cam.com/video/OIpX7WkJzOg/w-d-xo.html Web: viveksingh.dev/ 00:00 Introd...
Deploy node plugin and node-driver-registrar | Writing a Kubernetes CSI plug-in from scratch -6
มุมมอง 5992 ปีที่แล้ว
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
มุมมอง 8832 ปีที่แล้ว
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
มุมมอง 8222 ปีที่แล้ว
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
มุมมอง 1K2 ปีที่แล้ว
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.5K2 ปีที่แล้ว
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.7K2 ปีที่แล้ว
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.3K2 ปีที่แล้ว
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
มุมมอง 8K2 ปีที่แล้ว
Linux cgroups explained | limit resources for a set of processes
Kubernetes Dynamic Client | Interacting with CRs without having generated code
มุมมอง 3K2 ปีที่แล้ว
Kubernetes Dynamic Client | Interacting with CRs without having generated code
Writing Mutating Admission Controller from Scratch | Mutating Webhook Kubernetes
มุมมอง 1.8K2 ปีที่แล้ว
Writing Mutating Admission Controller from Scratch | Mutating Webhook Kubernetes
What is Aggregated API Server | Difference between Aggregated API Server and CRDs
มุมมอง 2.6K2 ปีที่แล้ว
What is Aggregated API Server | Difference between Aggregated API Server and CRDs
Handling AdmissionReview object | Writing Validating Webhook Controller From Scratch - Final
มุมมอง 1.1K2 ปีที่แล้ว
Handling AdmissionReview object | Writing Validating Webhook Controller From Scratch - Final
Writing Validating Webhook Controller From Scratch - 1 | Validating Webhook Kubernetes
มุมมอง 3.9K2 ปีที่แล้ว
Writing Validating Webhook Controller From Scratch - 1 | Validating Webhook Kubernetes
Adding users to a managed Kubernetes cluster | Generating private key and certificate
มุมมอง 2.9K2 ปีที่แล้ว
Adding users to a managed Kubernetes cluster | Generating private key and certificate
Anatomy of Persistent Volume Controller in Kubernetes | Code walk through
มุมมอง 1.1K2 ปีที่แล้ว
Anatomy of Persistent Volume Controller in Kubernetes | Code walk through
Admission Controllers in Kubernetes | Mutating and Validating Webhooks in Kubernetes
มุมมอง 7K2 ปีที่แล้ว
Admission Controllers in Kubernetes | Mutating and Validating Webhooks in Kubernetes
Supporting multiple versions (v1alpha1, v1beta1) of CR in Kubernetes | Conversion Webhook Explained
มุมมอง 2.1K3 ปีที่แล้ว
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
มุมมอง 8713 ปีที่แล้ว
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.1K3 ปีที่แล้ว
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
มุมมอง 6K3 ปีที่แล้ว
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.4K3 ปีที่แล้ว
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.2K3 ปีที่แล้ว
Calling DigitalOcean APIs on Kluster's add event | Writing K8S Operator - Part 3

ความคิดเห็น

  • @sangramzute5053
    @sangramzute5053 19 วันที่ผ่านมา

    How we can implement that issue of informer trying to resync after few minutes even if there is no change in the resources?

  • @林Pr
    @林Pr หลายเดือนก่อน

    good videos

  • @jackakif
    @jackakif หลายเดือนก่อน

    keep making these videos bhai..thanks a lot

  • @AshesWake-sf7uw
    @AshesWake-sf7uw หลายเดือนก่อน

    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!!

  • @TiferetJackson
    @TiferetJackson หลายเดือนก่อน

    This is so informational thanks so much!!

  • @fadygamilmahrousmasoud5863
    @fadygamilmahrousmasoud5863 หลายเดือนก่อน

    very exciting start

  • @TheDavBag
    @TheDavBag 3 หลายเดือนก่อน

    I think this could be more obvious =) ``` if err != nil && os.IsExists { //... } ```

  • @mystifyingdude
    @mystifyingdude 3 หลายเดือนก่อน

    can we add informers to Custom resources

    • @viveksinghggits
      @viveksinghggits วันที่ผ่านมา

      Yes, we can do that. I think I have a video about that.

  • @i_d_k3544
    @i_d_k3544 3 หลายเดือนก่อน

    Thanks Sir !!

  • @ColourfulBrain29
    @ColourfulBrain29 3 หลายเดือนก่อน

    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

  • @debidattagouda9374
    @debidattagouda9374 3 หลายเดือนก่อน

    audio having some issue

  • @SunilYadav-xh3tx
    @SunilYadav-xh3tx 3 หลายเดือนก่อน

    Thankyou very much . I am very close to understanding the internals of containerization.

  • @DevOpssAyush
    @DevOpssAyush 4 หลายเดือนก่อน

    Great session

  • @bhushandhapodkar7577
    @bhushandhapodkar7577 4 หลายเดือนก่อน

    file kaha pe milagi ??

  • @prashlovessamosa
    @prashlovessamosa 4 หลายเดือนก่อน

    Vivek sir can you please revamp your k8s series lot of stuff has changed.

  • @pruthvi7798
    @pruthvi7798 5 หลายเดือนก่อน

    Great video, cleared most of my confusion. Thank you

    • @viveksinghggits
      @viveksinghggits 5 หลายเดือนก่อน

      Thank you. I am glad it helped.

  • @vakulaare2520
    @vakulaare2520 5 หลายเดือนก่อน

    Great content, Thanks🙂

  • @julinop37
    @julinop37 5 หลายเดือนก่อน

    "I should not have done that" LOL!

  • @alveedev
    @alveedev 5 หลายเดือนก่อน

    great vai

  • @darahaskopparapu
    @darahaskopparapu 5 หลายเดือนก่อน

    This helped me a lot! Could you please make a video on authentication mechanisms

  • @darahaskopparapu
    @darahaskopparapu 5 หลายเดือนก่อน

    Awesome Content! Understood the architecture clearly. Also could you share the terminal font you were using in this video :-)

  • @julinop37
    @julinop37 5 หลายเดือนก่อน

    Great video man, thanks for this, im looking forward to complete the whole series ASAP!

  • @kiweezi
    @kiweezi 5 หลายเดือนก่อน

    Great video :)

  • @RajatHande-et5ko
    @RajatHande-et5ko 5 หลายเดือนก่อน

    Hey Vivek. Thank you for the very detailed explanation. It was super helpful!

  • @sriramashwin9871
    @sriramashwin9871 5 หลายเดือนก่อน

    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?

  • @Aliaa-yy7cs
    @Aliaa-yy7cs 5 หลายเดือนก่อน

    Great one

  • @RashidKhan-ss7em
    @RashidKhan-ss7em 6 หลายเดือนก่อน

    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

  • @RishabhSharma-lu4np
    @RishabhSharma-lu4np 6 หลายเดือนก่อน

    Awesome stuff!

  • @lokthar6314
    @lokthar6314 6 หลายเดือนก่อน

    Please fix your sound

  • @manansaini5975
    @manansaini5975 6 หลายเดือนก่อน

    Great content

  • @Aliaa-yy7cs
    @Aliaa-yy7cs 6 หลายเดือนก่อน

    Thanks It's Great Keep going

  • @AmarjeetAnandsingh
    @AmarjeetAnandsingh 6 หลายเดือนก่อน

    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???

    • @viveksinghggits
      @viveksinghggits 6 หลายเดือนก่อน

      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.

  • @AmarjeetAnandsingh
    @AmarjeetAnandsingh 6 หลายเดือนก่อน

    Highly appreciate your effort Vivek 🙏

  • @Debashis7377
    @Debashis7377 6 หลายเดือนก่อน

    hi Vivek, how we can contact you,

    • @viveksinghggits
      @viveksinghggits 6 หลายเดือนก่อน

      There is a link on my website to schedule a call with me.

  • @AkshayGupta-dd4ht
    @AkshayGupta-dd4ht 6 หลายเดือนก่อน

    best video for service account explanation 💪💪

  • @harishs7799
    @harishs7799 6 หลายเดือนก่อน

    excellent videos . do you have git repo for kubernetes or gendral things for devops

    • @viveksinghggits
      @viveksinghggits 6 หลายเดือนก่อน

      github.com/viveksinghggits

  • @Ellipsis_
    @Ellipsis_ 7 หลายเดือนก่อน

    A really well made video, it's a lack of that content in youtube, great decision to share that content with us

    • @viveksinghggits
      @viveksinghggits 7 หลายเดือนก่อน

      Thank you. I am glad you liked it.

  • @abhishekghosh5550
    @abhishekghosh5550 7 หลายเดือนก่อน

    How do i change the current context in a kubeconfig file?

    • @viveksinghggits
      @viveksinghggits 7 หลายเดือนก่อน

      Google the same question and you should be able to find out the kubectl command to do that.

  • @codelectron
    @codelectron 7 หลายเดือนก่อน

    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?

    • @viveksinghggits
      @viveksinghggits 6 หลายเดือนก่อน

      I don’t exactly remember the entire video now, but there are chances that vscodr was not taking that much of memory.

  • @MohammadTasdidurRahman
    @MohammadTasdidurRahman 7 หลายเดือนก่อน

    thanks

  • @kesavreddy7530
    @kesavreddy7530 7 หลายเดือนก่อน

    Great stuff bro tq 🫂

  • @kiarashazarnia
    @kiarashazarnia 7 หลายเดือนก่อน

    Nice explanation, thanks for your efforts.

  • @MavericKKumar
    @MavericKKumar 7 หลายเดือนก่อน

    Nice video Vivek..!

  • @ahsanamin3818
    @ahsanamin3818 8 หลายเดือนก่อน

    Thanks a lot for sharing this important resource. I am gonna watch all the content

    • @viveksinghggits
      @viveksinghggits 7 หลายเดือนก่อน

      I am glad you liked the videos.

  • @SUNILBHAU-l1k
    @SUNILBHAU-l1k 8 หลายเดือนก่อน

    Please contact me

  • @tridsanutaychathunyachot6952
    @tridsanutaychathunyachot6952 8 หลายเดือนก่อน

    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 🎉🎉

    • @viveksinghggits
      @viveksinghggits 7 หลายเดือนก่อน

      Thank you. I am glad the videos were helpful.

  • @tothepoint3699
    @tothepoint3699 8 หลายเดือนก่อน

    Hi Vivek, It looks like this video is bit outdated, Can u pls update with the latest codegenerator or may be with kodebuilder?

    • @viveksinghggits
      @viveksinghggits 7 หลายเดือนก่อน

      Let’s see if I can do this any time soon.

  • @AcessHall
    @AcessHall 8 หลายเดือนก่อน

    Helpful

  • @sivakumar-of4ww
    @sivakumar-of4ww 8 หลายเดือนก่อน

    I am unable to delete my demo cgroup directory. what i do ?

    • @viveksinghggits
      @viveksinghggits 8 หลายเดือนก่อน

      Can you try to Google please.

  • @pratikdey8062
    @pratikdey8062 9 หลายเดือนก่อน

    Can you tell, how you made a 3 node cluster ?

    • @viveksinghggits
      @viveksinghggits 8 หลายเดือนก่อน

      If you have 3 machines I have some videos that help you create a Kubernetes cluster.