Requirements

👀 More importantly, it’s the collection of kubernetes resources.


⚠️ All resources use external links, book resources may not have links, others are personal experiences and summaries. Please contact for removal if there’s copyright infringement.

CloudNative Learning Path

About kubernetes:


About CNCF contributions, you need to sign CLA

Some resources I wrote:

All collected in awesome repository, covering 📚 Beginner’s Growth Manual🚀 CS series, Cloud Native series, Blockchain series, web3 series🔥, Golang series💡…… Visit GitHub👀 https://github.com/cubxxw/awesome-cs-cloudnative-blockchain ⏬⏬⏬


GitHub - cubxxw/awesome-cs-cloudnative-blockchain: 📚 Beginner’s Growth Manual🚀 CS series, Cloud Native series, Blockchain series, web3 series🔥, Golang series💡……

What’s Best to Have

  1. If we’re talking about the first step, you must understand docker container underlying principles and Linux kernel basics.
  2. Understand the architecture first, then reading will be much faster.
  3. Learn to use it - you can never understand its design philosophy without using it.
  4. Read source code with questions, otherwise it will be boring. You must read with questions, otherwise it gets boring and you’ll get lost in details.
  5. Reading source code requires accumulation, like having read many basic package source codes such as net/http grpc-go etc.
  6. Try debugging, try practicing, try understanding and analyzing product concepts, and learn to design yourself.
graph LR;
    Microservices --> Docker;
    Docker --> Kubernetes;
    Kubernetes --> Knative;
    
    Knative --> Prometheus;
    Knative --> Jaeger;
    Knative --> EFK;
    Knative --> DevOps;

    Prometheus --> KVM;
    Jaeger --> KVM;
    EFK --> KVM;
    DevOps --> KVM;

    KVM --> Istio;
    Istio --> Kafka;
    Kafka --> Etcd;
    Etcd --> Tyk;

Recommended learning resources:

  1. Microservices: 《Building Microservices》
  2. Docker: 《Docker Technology Introduction and Practice》(3rd Edition)《Docker Containers and Container Cloud》(2nd Edition)
  3. Kubernetes: 《Kubernetes Authoritative Guide: From Docker to Kubernetes Full Practice》(5th Edition)《Container Cloud Platform Practice Based on Kubernetes》
  4. Knative: Knative Documentation
  5. Prometheus: Prometheus Documentation
  6. Jaeger: Jaeger Documentation
  7. KVM: 《KVM Virtualization Technology: Practice and Principle Analysis》
  8. Istio: 《Cloud Native Service Mesh Istio: Principles, Practice, Architecture and Source Code Analysis》
  9. Kafka: 《Apache Kafka in Action》《Apache Kafka Source Code Analysis》
  10. Etcd: etcd Practical Course
  11. Tyk: Tyk Open Source
  12. Consul: Consul Documentation
  13. Cilium: Cilium Documentation
  14. OpenShift: 《Open Source Container Cloud OpenShift: Building Enterprise Application Cloud Platform Based on Kubernetes》

Basic Knowledge

Basic concepts:

We need to know kubernetes basic concepts, which we might have explained before.

For example, what are Build-in API Groups and API Objects, what they do;

Some very important tool libraries:

Like gengo, including informer mechanism;

  • Cobra: Command line, docker, Kubernetes, sealos, sealer, ks all have it~
  • go-restful: REST requires developers to explicitly use HTTP methods in a way consistent with protocol definition. This basic REST design principle establishes one-to-one mapping between Create, Read, Update, Delete (CRUD) operations and HTTP methods.
  • etcd: Database using raft consensus mechanism like fabric, deeply explained and applied in k3s.

Restful basics:

Simply understand Restful concepts, it’s best if you’ve done Restful Service

Familiar with some common design patterns:

Familiar with common algorithms, familiar with operating systems (especially Linux basics), familiar with some network protocols and principles.

Kubernetes has many complex parts, especially networking and storage. Hope to become ××domain expert in the future

Learning paths for various directions of Kubernetes

Reading Methods (Similar for other open source projects)

  • First overall, then local (don’t get stuck in details)
  • Deep dive into local learning
  • Be patient, read more code~

Staged approach

  1. First stage First understand k8s, what it is, what it can do, architecture, core resource objects, design philosophy, development history etc.
  2. Second stage Start using k8s, create pods, deploy, jobs and other resources yourself. Be able to develop components based on k8s, like implementing a controller to listen to pod creation/deletion etc. [See mountain as mountain]
  3. Third stage Start reading source code, understand underlying implementation. This process will give deeper understanding of k8s. Like what’s the complete journey of creating a pod, how k8s gc mechanism is actually implemented, how namespace deletion deletes all resources before deleting itself. [See mountain not as mountain] Recommended source code reading approach: theory + practice combination.
    1. Theory: Various jumps through ide to read source code
    2. Practice: Add logs at [key code] locations yourself, understand source code by checking log output (repo also introduces how to build a K8s cluster with binaries)
  4. Fourth stage Further deepen k8s understanding during troubleshooting

Book Recommendations

Video Resources

Website Resources

YouTube Selected Videos

GitHub Selected Repositories

Data Statistics and Collection

Passerby Suggestions

Steps to Learn Kubernetes

One Person’s Explanation in GSoC