How full-time workers contribute to Kubernetes

2020/06/17 21:00
Reading number 165




|By Tara Gu

|Editor: Wang Haoyue

|Designer: Zhu Yiqin

|Translator: Rudy Steiner

|Reviewed by: Ying Yingzi, PuPaul_II_


You can even participate in the internal work of one of the largest open source projects in your spare time.


I have been working for Kubernetes (K8s). At that time, I worked in the product security incident response team of IBM and was attracted by the distributed system, but I couldn't touch it in my daily work. So my tutor Lin Sun suggested that I make contributions to the open source distributed system in my spare time. Since then, I have become interested in K8s and never looked back.


I mainly work in Kubernetes special interest group, and participate in testing, storage and publishing. My most well-known contribution to code is that under the leadership of Saad Ali Plug in management Device. The plug-in manager is a controller that manages plug-in registration/logout. In the case of failed plug-in registration (such as container storage interface or device plug-in), it adds retry and exponential backoff logic to Kubelet plug-in registration.


In January 2019, I became a member of the K8s organization, and in July 2019, I joined the IBM Open Technology Group to become an open source contribution and development technology promotion engineer. I am currently working for Knative , a server less load deployment and management platform based on Kubernetes, making contributions.


Now Kubernetes welcomes contributors very much. If you want to follow my footsteps and start contributing in your spare time, please continue reading.


01

Skills needed to start contributing to Kubernetes


01


Any version control system (such as git and svn)


The source code of K8s is hosted in GitHub. It is very important to know how to use Git or other version control systems. First, familiarize yourself with these Common commands


02


Golang


I have a background in C/C++, but I didn't know Golang before I started. If you are familiar with object-oriented programming, Golang should be fairly easy to use. I suggest that while learning the K8s code base Learn Go My colleague Wei Huang introduced me Ultimate Go Programming video series, which greatly helped me.


03


Other requirements


Your submission must be signed before it can be merged into the K8s code base Contributor License Agreement (CLA)。 Also pay attention to community guidelines, coding guidelines, how to set up your development environment and Kubernetes Github repository“ Before you start contributing ”Related matters described in.


02

How to select your first Kubernetes question


The first way to find things to do in Kubernetes is to look at the list of open questions. You can filter the list of questions with tags, such as "good first issue" and "help wanted". These tags indicate that the question is very friendly to novices. Occasionally, problems will be labeled incorrectly; Maybe the technical difficulty of the problem is underestimated and incorrectly marked as "good first issue". So don't be surprised that a "good first issue" is more complicated than you expected.



The second way to find something to do is to search for "TODO" in the code base. There are hundreds of low priority to-do items to be improved in TODO. This is a good way to learn the code base. At the same time, you can also cross a to-do list from others' "TODO" list - win-win!


03

How to handle a problem (issue)


Read any linked issue or pull request (PRs) to help you understand the background of the problem and the problem to be solved. If a problem is not clearly described, be sure to contact the creator of the problem to get a clearer understanding before investing time. If it is a bug, verify whether you can reproduce it. Please note that this may take a lot of time; I spent a lot of time setting up the environment to try to reproduce the bug.


Once you have a solution idea, you'd better contact the creator of the issue on Slack to verify your method before submitting the PR. If you do not receive feedback within a week, submit it directly to PR, and the problem creator will review it with a specific plan.


At first, I was confused about how fast to submit PR after claiming an issue. Because I can only contribute to K8s outside my full-time job, I also want to know how this will affect my work life balance. After browsing issues and other PRs, I found that I need to submit PR or provide status updates within at least two weeks. In my opinion, if you have an initial implementation that has not yet been tested, it is OK to submit a preliminary PR, so that you can get feedback as soon as possible and know whether your direction is correct.


When developing the solution, make sure to add unit tests or integration tests to verify that the bug has been fixed or the features are as expected. Use of K8s Prow To do continuous integration/continuous development (CI/CD) system, it will run all unit and integration tests for PR with/ok to test tag. If you are not a member of the Kubernetes project, CI tasks will not be automatically executed. In this case, I suggest you test locally first, and then find Kubernetes Github members on the Slack channel of the relevant special interest group to go to your PR review/ok to test.


04

How to join the Kubernetes community


For daily communication, Kubernetes Slack It is very suitable for directly contacting other contributors and asking questions. I suggest you join the special interest group SIG (such as client, storage, testing, etc.) channel that you are most interested in.


KubeCons is a good place for face-to-face communication with other contributors. two thousand and nineteen and two thousand and twenty Once in North America in September, and once in March/April Europe Once, in July Asia on one occasion. I strongly recommend that aspiring novices and experienced contributors participate in the following two activities:


  • Kubernetes Contributor Summit: The day before the official start of KubeCon, the whole day's activities are free of charge. There are workshops for both newcomers and existing contributors, focusing on learning and development.


  • Networking+Mentoring Sessions: Here, you can meet many senior open-source people who have participated in many CNCF projects, including Kubernetes. You will pair up with two other participants to discuss technical and community issues, and you can even pair program on selected issues.


05

Other contribution modes


In addition to contributing code, there are many other ways to contribute. Reviewing code is important because it can help reviewers and maintainers lighten the burden and provide diverse perspectives. It is also one of the best ways to learn K8s code base!


You can also join the release team as a shadow for a role to contribute to Kubernetes' release process. visit Role Guide Learn more about the different roles in the release team. I served as the shadow of the test infrastructure leader in the release of two versions until we automated the whole process and removed this role.


Being a shadow taught me a lot, including the knowledge about CI/CD automation and project management behind the products of a well-known company that affects companies around the world. I was particularly impressed by the continuous contribution of the release team to automate tasks and eliminate manual tasks of all roles to obtain better CI/CD.


If you are interested in becoming a shadow, please check the official Application process


If you participate in K8s in your spare time, one thing to note is that there are release team meetings every week, but it is not required to attend all shadow meetings. The meeting is usually held in the working hours of the Pacific Time Zone of the United States and lasts for half an hour. Fortunately, my work is flexible enough for me to reserve a conference room 2-3 times a week to attend the meetings of the release team.


06

How to manage time when working full-time


It is very helpful to set the number of hours per week for K8s contribution, otherwise it is easy to get involved in daily development affairs. When your work and life become busy, it is also very important to temporarily stop contributing to K8s. In the K8s development community, the rest period is usually the same as the code freeze period before releasing a new version. For you, this is a good time to take a short rest, because other contributors will not participate in the contribution during this period. You are unlikely to get a reply about PR or Slack messages.


It is good to let your team and manager know about your new hobby, because knowledge sharing is beneficial. If your team or company uses Kubernetes (or any container technology), you will benefit from knowing the principle of K8s. If your team or company does not use Kubernetes (or any container technology), it is also great to share Kubernetes' industry trends, software engineering design patterns and architectural design decisions. Consider holding monthly lectures on these topics or showing what you learned at kubeCon and other conferences.


07

summary


Making contributions to K8s is one of my most meaningful experiences. Programming used to be just a job, but now it has become a hobby. If you have a routine job that is not very demanding, I strongly suggest you try it.


08

resources






Introduction to Kaiyuan News Agency



The Open Source Society is a manufacturer neutral, volunteer and non-profit open source alliance organized by enterprises, communities and individuals at home and abroad who support open source in accordance with the principle of "contribution, consensus and co governance", aiming to jointly create a healthy and sustainable open source ecosystem and promote the Chinese open source community to become an active participant and contributor of global open source software. We focus on open source governance, international integration, community development and open source projects.



Related reading  | Related Reading


GPL2.0 protocol


Summer 2020 "Big Stars Talk about Open Source" - Wu Sheng | How to be an Open Source Player


In summer 2020, Zhuang Biaowei&Lin Lvqiang, "Big Masters Talk about Open Source": What are the open source stories in your life experience?



If you like the content of this article, please give us a look

This article is shared from the WeChat official account Kaiyuan She.
In case of infringement, please contact support@oschina.cn Delete.
Participation in this article“ OSC Source Innovation Plan ”, welcome you to join us and share with us.

Expand to read the full text
Loading
Click to lead the topic 📣 Post and join the discussion 🔥
Reward
zero comment
zero Collection
zero fabulous
 Back to top
Top