Giter Club home page Giter Club logo

kpng's Introduction

Kubernetes Proxy NG

The Kubernetes Proxy NG a new design of kube-proxy aimed at

  • allowing Kubernetes business logic to evolve with minimal to no impact on backend implementations,
  • improving scalability,
  • improving the ability of integrate 3rd party environments,
  • being library-oriented to allow packaging logic at distributor's will,
  • provide gRPC endpoints for lean integration, extensibility and observability.

The project will provide multiple components, with the core being the API watcher that will serve the global and node-specific sets of objects.

How we work

The KPNG group is small but dedicated, because this is a hard project. Your first commit might take weeks or months, especially if you're new to the kube-proxy or to K8s networking. However, we will pair with people wanting to join and make an impact. We pair program every friday at our meetings, and also, informally at other times as well.

Our goal is to:

  • make the kube proxy fun to work on and easy to understand
  • make the kube proxy extensible from a command line and backend perspective
  • learn as much as we can about k8s service networking, and build an upstream community around it

And that goes for people working on KPNG especially. So don't hesitate to join us, but just be ready for alot of work and low level troubleshooting.

How to get involved

There are many ways to get started, but here's a good set of guidelines.

First, make sure you understand the basics of K8s networking.

In particular, you should be able to differentiate:

  • CNI providers (i.e. calico, antrea, cillium, and so on)
  • Service Proxies (i.e. kube-proxy, AntreaProxy, CilliumProxy, various service-mesh's, and so on)
  • LoadBalancers (i.e. serviceType=LoadBalancer)

There are about 20 or 30 great youtube videos about Kubernetes networking and the Kube proxy that you can easily search for and study. There are also several books about Kubernetes networking and basic Kubernetes architecture.

Next, skim the Kube proxy codebase

The existing K8s codebase https://github.com/kubernetes/kubernetes/tree/master/pkg/proxy, has a complex, monolithic, battle-hardened proxy. Read through it and try to put the peices together, so you understand the overall problem space that KPNG solves.

Now, join the KPNG meetings!

Now that you've seen the basics, you're ready to join the KPNG group meetings and find a project to get involved with!

KPNG News

  • ... (please MR updates here)
  • 10/15/2021: KPNG got a shoutout at the sig-network kubecon update :) thanks @bowie
  • 10/7/2021: Userspace kube proxy port nearing completion
  • 10/1/2021: Separating KPNG backends from other code so it's easy to import

Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

TODO add some lines about what to find ./hack

kpng's People

Contributors

danwinship avatar dougsland avatar friedrichwilken avatar hanamantagoudvk avatar hanlins avatar jayunit100 avatar k8s-ci-robot avatar knabben avatar mcluseau avatar nehalohia27 avatar rikatz avatar vivekthrivikraman-est avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.