love this so much have been looking for these type of codebase explanatry videos for a long time. Can you do one for ArgoCD and other CNCF graduated project as well?
Hey thanks! I've got you covered, I've done ArgoCD as well as a few other CNCF projects: - Argo CD: czcams.com/video/736T_fg3Kso/video.html - Flux CD: czcams.com/video/-3csoVQfBdQ/video.html - Envoy: czcams.com/video/ju-FLHfumJE/video.html - Cilium: czcams.com/video/t8O0VRbZoHs/video.html - And also eBPF: czcams.com/video/hznUH_zP77U/video.html If you have other suggestions from CNCF or elsewhere, let me know and I'll consider them!
Great suggestion! Docker is on the list. I'm leaning toward doing cgroups first, though, because that's where the most interesting stuff is and because Docker seems to be losing its edge these days.
Extremely helpful videos, thanks a lot. Can you please point me to the file where pod / namespace and other K8s resources are getting created ? Please, would be very glad.
Hey thanks! I'd be happy to point you to a place in the code, but I think I'd need more info about what you're looking for. The basic idea is that objects are "created" by first writing an intent to etcd, and then having an actuation loop pick up that intent to change the cluster state. The "pod" itself is the desired state, as stored in etcd. The code that schedules pods to nodes is in pkg/scheduler/schedule.go. The actual physical creation of containers is handled by the kubelet on the node once the scheduler picks a node. Basically, Kubernetes makes a gRPC call to a container runtime (like containerd or Docker), and the runtime handles the actual creation. For the Kubernetes side of the code, check out - pkg/kubelet/container/runtime.go, and - pkg/kubelet/cri/remote/remote_runtime.go From there you can probably trace down the logic you're looking for. Namespaces I believe are just strings in etcd. Some of the stuff you're looking for may be in pkg/controller/namespace/namespace_controller.go.
Arguably one of the most underrated channels on CZcams. I enjoy your videos a lot. Keep up the good work 🙌
Thank you for watching! I'm glad you're enjoying them :)
Chanced upon this video; added as a sub. Thanks for the effort! Please continue with such read-modify sessions.
Thanks, will do!
Been looking forward to this. Thanks!
Really enjoyed this thanks! You've got a new follower :D
Welcome aboard!
That's gold content, thanks for sharing!
Thank you!
Informative! Please keep making videos.
Thank you! Will do!
Great Stuff !! This is super helpful, keep going :)
Glad it was helpful!
Thanks. Super helpful.
No problem!
love this so much have been looking for these type of codebase explanatry videos for a long time. Can you do one for ArgoCD and other CNCF graduated project as well?
Hey thanks! I've got you covered, I've done ArgoCD as well as a few other CNCF projects:
- Argo CD: czcams.com/video/736T_fg3Kso/video.html
- Flux CD: czcams.com/video/-3csoVQfBdQ/video.html
- Envoy: czcams.com/video/ju-FLHfumJE/video.html
- Cilium: czcams.com/video/t8O0VRbZoHs/video.html
- And also eBPF: czcams.com/video/hznUH_zP77U/video.html
If you have other suggestions from CNCF or elsewhere, let me know and I'll consider them!
@@ants_are_everywhere Love your work. ❤❤👏👏
@@xuanthanhtraninh642 Thank you!
Awesome Stuff. Thanks. How about Docker?
Great suggestion! Docker is on the list. I'm leaning toward doing cgroups first, though, because that's where the most interesting stuff is and because Docker seems to be losing its edge these days.
Extremely helpful videos, thanks a lot. Can you please point me to the file where pod / namespace and other K8s resources are getting created ? Please, would be very glad.
Hey thanks! I'd be happy to point you to a place in the code, but I think I'd need more info about what you're looking for. The basic idea is that objects are "created" by first writing an intent to etcd, and then having an actuation loop pick up that intent to change the cluster state. The "pod" itself is the desired state, as stored in etcd.
The code that schedules pods to nodes is in pkg/scheduler/schedule.go.
The actual physical creation of containers is handled by the kubelet on the node once the scheduler picks a node. Basically, Kubernetes makes a gRPC call to a container runtime (like containerd or Docker), and the runtime handles the actual creation. For the Kubernetes side of the code, check out
- pkg/kubelet/container/runtime.go, and
- pkg/kubelet/cri/remote/remote_runtime.go
From there you can probably trace down the logic you're looking for.
Namespaces I believe are just strings in etcd. Some of the stuff you're looking for may be in pkg/controller/namespace/namespace_controller.go.
Read MySQL source code
Sure, I've added it to the list!