Thank you, Vivek, for this tutorial. I'm completely new to k8s and this video is really useful. It's hard to find videos/articles that go that deep into k8s. I have a few questions: 1. At min 6:00+ you explain how specific requests are handled by the API server layers. I googled a bit but couldn't find anything useful in this regard. Do you maybe have some links that provide info to what you explained there? Or did you figure this all out by yourself by digging through the source code? 2. You mention that there can be different versions with different schemas, e.g. a newer schema might have additional fields not supported by an older version. Is it possible to run objects of both versions in your cluster side by side? Or do you have to somehow migrate older objects to the new version? 3. In your last section regarding sub resources, I couldn't completely follow along. You pick as en example the sub resource "status". What confuses me is that inside your CRD, there is also a "status" section: that status there is not sub resource, is it? If not, how do you actually define it? Again, really appreciate your video and your explanations.
@viveksinghggits
3 жыл бұрын
Hi Andrei, First of all thanks for the appreciation, I really appreciate it. Those are great set of questions that you asked. Let me try to answer them one by one 1. This thing is explained very well in the book "Programming Kubernetes" at the very start of the chapter 4. So first steps/layer (aggregator) is responsible to reply for the resources that are introduced by writing a custom API Server (we can do that). If the resource that we requested is not there, the request will be forwarded to another layer that responds for the k8s native objects and if the resource are not found there as well, apiextensions will, that is responsible to respond for CRDs will respond. If even api extensions is not able to respond to the resource, client would get 404. 2. Per my understanding (I might be a bit off here), If the resource is persisted in the etcd in that case administrator will have to somehow migrate the resource, but client-go library that we use to talk to API Server should be able to do the conversion on the fly. So if a resource is available in two versions, let's say v1beta1 and v1, and that resource is created using apiVersion v1beta1, we would be able to get that by apiVersion v1 as well. Or in other words that resource would be available in apiVersion v1 as well. 3. Subresources are as the name suggests another nested endpoints to main resources, for example logs are not resources but pods' logs can be requests by calling logs sub resouce on pod resources. So the endpoint would look somewhat like /api/v1/namespace/namespace/pods/name/logs If you have a resource that is being handled by a controller once the things, that a controller is supposed to do, are done; it (controller) should be able to update the status for the resource. And that is where subresource comes into picture. If we introduce sub resource for ETCD CRD let's say, in that CRs for ETCD are going to have status sub resource that can be updated by controller/operator. This again is explained in great detail in the same book same chapter, under heading Status Subresource. I hope this helps, let me know if something else needs to be discussed. I would be happy to discuss that. Another thing that I wanted to ask is, can post you comment on my twitter with you name, this is really a great comment Andrei.
@andreipoehlmann913
3 жыл бұрын
@@viveksinghggits Thanks for your reply, really appreciate it. I'll definitely check out the book you mentioned. I've been reading "mastering Kubernetes" and been also considering to look into "Kubernetes in practice" but I guess now you convinced me to also have a look at "Programming Kubernetes". Regarding twitter, sure. Just let me know your twitter ID (maybe you want to add to your video descriptions?).
@viveksinghggits
3 жыл бұрын
Hey 👋, I am at viveksinghggits on Twitter.
@viveksinghggits
3 жыл бұрын
Ohh damn, If I re-read the comment again, that is not what I meant. I wanted to ask your permission to tweet this screenshot.
@mohanchinna5494
3 жыл бұрын
@@viveksinghggits I was trying to create CRD for OpenShift Container Storage which contains worker node info and provisioner details. Can I get help on it?
@MadhurBhardwaj-l1l
11 ай бұрын
Hi Vivek, thanks for the excellent video , it was really very helpful, can you please share some info on CRDs with namespace and cluster scope, what is the difference , and how we create instances of them
@viveksinghggits
11 ай бұрын
Hi Madhur, While registering new resources using CRD, we can configure if the new resource is going to be namespace scoped or cluster scoped. Like the name suggests if a CRD is registering a CR that is namespace scoped, it would mean that when we create the new resource we can specify which namespace that new resource should be created in. Similarly cluster scoped resource is not contained within a namespace like storage class etc. In other words it’s not different from how Kubernetes native cluster and namespace scoped resources behave.
@sriramashwin9871
4 ай бұрын
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?
@pruthvi7798
4 ай бұрын
Great video, cleared most of my confusion. Thank you
@viveksinghggits
3 ай бұрын
Thank you. I am glad it helped.
@niteshsince1982
3 жыл бұрын
Very complicated topic, nicely explained. I learned a lot from this video. Thanks.
@viveksinghggits
3 жыл бұрын
Hey 👋, Thanks Nitesh, I really appreciate it. 🙏
@moudjermohamed2844
2 жыл бұрын
hello Vivek, thnk you so much....very helpful videos. would you please make one video about "daemonsets"
@viveksinghggits
2 жыл бұрын
Hi Moudjer, Thank you. I don't have plans right now, to make that video but let's see if I can create one in future.
@rohan_dsouza
2 жыл бұрын
Really good video. A very complex topic explained very well. Have you yet created a video on CRC's ?
@viveksinghggits
2 жыл бұрын
Hi Rohan, I am not very comfortable with CRCs, so I don't have a plan to make that video. I am assuming you are talking about code ready containers.
@rohan_dsouza
2 жыл бұрын
Sorry, i meant custom resource controllers.
@viveksinghggits
2 жыл бұрын
I think this is what you are talking about Writing K8S Operator (Kluster): kzitem.info/door/PLh4KH3LtJvRTtFWz1WGlyDa7cKjj2Sns0
@vyomyadav6497
Жыл бұрын
I get what you are trying to say, but an etcd CRD is not possible IMO. Where would you store the CRD definition for etcd, it's like a self dependency which I don't think is possible. The idea of introducing a new peer to etcd setup may be possible after setting up the leader. I get what you are trying to say, but be careful with the examples :)
@viveksinghggits
Жыл бұрын
Do you want to talk about it, in a Twitter space?
@vyomyadav6497
Жыл бұрын
@@viveksinghggits Not right now, but yeah, I am up for talking about k8s.
@viveksinghggits
Жыл бұрын
Sure, whenever. I am not challenging you or anything. Its just that I would understand your point of view and opinion. What's your Twitter handle?
@parshuramgurav6372
2 жыл бұрын
Thank you for making a video on such an important topic, just one question, when kubectl proxy is running, you send requests to the API over the localhost on the default proxy port 8001 (from another terminal, since the proxy locks the first terminal when running in foreground) however this port is not open on my VM (not included in my firewall rules) How do we access to port 8001 with a proxy server even when it's not open?
@viveksinghggits
2 жыл бұрын
Hi Parshuram, You can specify the port to kubectl proxy command using --proxy flag. So if there is something already running on port on your machine you can always use another port using above mechanism. More details are here kubernetes.io/docs/tasks/extend-kubernetes/http-proxy-access-api/#exploring-the-kubernetes-api Let me know if this doesn't help.
@athiqrahman818
3 жыл бұрын
can you publish your yaml file on something like gihub? that way can follow along
@viveksinghggits
3 жыл бұрын
Hi Athiq, I usually push the code that write in the videos but I think I don't push the manifests. Maybe I will try to do that in coming videos.
@thefullmoonlight
2 жыл бұрын
this is good explanation. i am subscribing and watching out for more videos bro
@viveksinghggits
2 жыл бұрын
Thank you.
@m.tarkeshwarrao9105
2 жыл бұрын
Thanks Vivek for your contribution towards new learners. Keep it up
@viveksinghggits
2 жыл бұрын
Thank you.
@rajat420420
3 жыл бұрын
@22.13 timestamp at line 6 if I want to update members value t6 from 3 how can I do that using kubectl command?
@viveksinghggits
3 жыл бұрын
Hey Rajat, I am assuming you want to update a specific field of a custom resource using kubectl. One thing I can think of right now is, creating a kubectl plug-in that would take members value and custom resource name and update the resource with the given value.
@rajat420420
3 жыл бұрын
@@viveksinghggits I want to update using kubectl patch command
@viveksinghggits
3 жыл бұрын
Aah makes sense. Did you try doing that, what is the problem? I don't remember the command ready.
@rajat420420
3 жыл бұрын
@@viveksinghggits something like this kubectl patch crd functions -n default --patch '{"spec":{ InvokeStrategy: 5 }}'
@emmalu3891
2 жыл бұрын
Thank you so much for making this video. It was really helpful and clear. It would be nice if you could make a video on how to add logic to a CRD also :)
@viveksinghggits
2 жыл бұрын
Hi Emma, Thank you for the kind words. I am assuming you meant writing an operator for the custom resources, if yes, I already have a video where I wrote a controller/operator for custom resource. If you meant something else, can you please explain what exactly you meant by add logic to CRD.
@viveksinghggits
2 жыл бұрын
This is the video about custom controller that I talked about Writing K8S Operator (Kluster): kzitem.info/door/PLh4KH3LtJvRTtFWz1WGlyDa7cKjj2Sns0
@utwonics
2 жыл бұрын
Very good Vivek.
@user-pu1hi3hk5j
2 жыл бұрын
Very clear and easy to understand Thanks for your video
@viveksinghggits
2 жыл бұрын
Thank you for watching.
@sasmalpayal
3 жыл бұрын
I really appreciate your efforts. I have learnt a lot. Thank you so much
@viveksinghggits
3 жыл бұрын
Hi 👋 Payal, Thank you for the kind words, I appreciate it.
@SureshKumar-ch3df
3 жыл бұрын
Clear explanation given, Thank you Vivek.
@viveksinghggits
3 жыл бұрын
Thanks for watching Suresh.
@shamstabrez2986
2 жыл бұрын
brother wht do u mean by member here in crd definition
@viveksinghggits
2 жыл бұрын
Can you mention the timestamp please. Where exactly I am talking about member.
@shamstabrez2986
2 жыл бұрын
@@viveksinghggits its present in crd configuration file members: 3 like this
@SaurovChandraBiswas
Жыл бұрын
Nice Explanation
@viveksinghggits
Жыл бұрын
Thank you
@vaibhavpande5585
2 жыл бұрын
great explaination
@viveksinghggits
2 жыл бұрын
Thank you
@hashilbh5654
3 жыл бұрын
No words, this is Amazing. Actually i am watching first time about crd and its gonna be simply understood🙂
@viveksinghggits
3 жыл бұрын
Hey 👋, Thanks Hashil, I am glad it was helpful.
@hashilbh5654
3 жыл бұрын
@@viveksinghggits very much helpful. keep going
@viveksinghggits
3 жыл бұрын
Sure, thank you.
@navnathdahibhate2464
3 жыл бұрын
Nice explanation on CRD !!
@viveksinghggits
3 жыл бұрын
Thank you.
@twentythirtyforty
3 жыл бұрын
very helpful! thanks!
@viveksinghggits
3 жыл бұрын
Thank you 😊
@suyashdubey520
2 жыл бұрын
Great explanation!
@viveksinghggits
2 жыл бұрын
Thank you 😊
@pawand4831
Жыл бұрын
Is there a way to extend/add custom resources to existing Pod interface without meddling with how a Pod gets deployed ? These custom resources would be provisioned and their status will be updated by a custom controller. I was trying to add my own secrets CRD to the pod interface. Would kubernetes allow updates Pod status by custom controllers ? Is that a thing ? Thanks you for all the great work you do. I cant stress it enough on how helpful and detail they are while being to the point
@viveksinghggits
Жыл бұрын
Hi Pawan, I didn't understand the question correctly. What do you exactly mean by add custom resource to existing pod interface? Also, later you asked if custom controller would be able to update the pod status, the answer is yes. As long as the controller has authz to update the status, it should be able to.
@chandrasekharreddyp
2 жыл бұрын
very helpful.!
@viveksinghggits
2 жыл бұрын
Thank you.
@siddharathadhumale3683
2 жыл бұрын
Simple and sweet :)
@viveksinghggits
2 жыл бұрын
Thank you 😊.
@Brofabloke1
3 жыл бұрын
this is really good
@viveksinghggits
3 жыл бұрын
Thank you.
@swapnilhajare5557
Жыл бұрын
Amazing explanation thanks for the video.
@viveksinghggits
Жыл бұрын
Thank you for watching.
@shikharjoshi267
3 жыл бұрын
this is gold
@viveksinghggits
3 жыл бұрын
Damn. Thanks Shikhar 😊🙏 I really appreciate it.
@shamstabrez2986
2 жыл бұрын
bhai kya bolre ho kuch smjh nhi ara ye lekr teesra br sunra hoon
@viveksinghggits
2 жыл бұрын
Hi Shams, That's not really a useful feedback. I don't know what should I do about your comment. 1. Is the audio quality too bad? 2. Is the way I speak is so bad that you are not able to understand 3. Or the sentences that I am saying are not making any sense
@shamstabrez2986
2 жыл бұрын
@@viveksinghggits 3 one
@viveksinghggits
2 жыл бұрын
Give me an example of what's not making sense. So that I can understand if its grammatical mistake that's causing the problem or something else.
@rayehan30
3 жыл бұрын
Thank you, Vivek. You're a superman....your video has helped me a lot.
@viveksinghggits
3 жыл бұрын
Haha, thanks Rayehan. I appreciate 🙏 it.
@perplexedbot
2 жыл бұрын
this is good one i was so confused between CRD and CR
@viveksinghggits
2 жыл бұрын
Thank you 😊.
@anthonyakhil2169
3 жыл бұрын
Thanks Vivek, finally got a clarity on this.
@viveksinghggits
3 жыл бұрын
Hey 👋, Thank you.
@viveksinghggits
3 жыл бұрын
I am glad it helped.
@oferlahav3650
3 жыл бұрын
Another excellent video :-)
@viveksinghggits
3 жыл бұрын
Thanks Ofer
@orrymr
3 жыл бұрын
Nice video
@viveksinghggits
3 жыл бұрын
Hey 👋, Thanks Orry.
@renefleischhauer8322
3 жыл бұрын
Is it just me, or does also somebody else have trouble reading the handwriting?
@viveksinghggits
3 жыл бұрын
Hey Rene, I am sorry about that, yeah the handwriting is not readable, it's bad. I usually try to not write important things there. But I will try to make that better for sure. Thank you.
@renefleischhauer8322
3 жыл бұрын
@@viveksinghggits Thanks your reply. I really had problems to decode your writing. Maybe you can type a bit more. Anyway, good video and explanation nevertheless! 👍
@viveksinghggits
3 жыл бұрын
Thanks Rene, I appreciate it. Yeah, I will try to type more and improve writing as well.
@manasjain914
3 жыл бұрын
Great Content
@viveksinghggits
3 жыл бұрын
Hey 👋, Thanks Manas.
@shakilmakram6923
3 жыл бұрын
good info, thanks!
@viveksinghggits
3 жыл бұрын
I am glad you liked them 😊
@shakilmakram6923
3 жыл бұрын
@@viveksinghggits next video this topic out yet?
@viveksinghggits
3 жыл бұрын
I am planning to make a video on setting up a kubernetes cluster using kubeadm.
Пікірлер: 101