GSoC Journey: Week 2 — Getting started with Kubernetes & KubeCon

In the previous post, I was talking about weeks 1 and 3 of the GSoC Community Bonding period. I mentioned going to KubeCon on week 2 and that I’ll write a dedicated post covering it. It could be overdue at this point, but here it is!

This is maybe not related to my GSoC journey at all, but it impacted it a lot, taught me a lot about Kubernetes, and is a very valuable experience.

I’m going to talk about how I’ve started with Kubernetes, then I’m going to share my KubeCon experience. KubeCon was the first conference I ever attended, and it was the best event of the year for me so far!

Getting started with Kubernetes

Somewhere in July last year, I had my first contact with Kubernetes. I was looking for a solution for scaling my applications across multiple nodes, and Kubernetes looked like a good one. Beside that, the community and support was awesome. I decided to give it a try. It looked quite complex and I never expected that Kubernetes, and the Kubernetes community will have such positive impact on me.

I had credits on DigitalOcean, so I decided to use kubeadm to create a 3-node cluster. DigitalOcean is a great cloud platform, but I had several problems related to pod networking and networking plugins, mostly due to missing support for VPCs, compared to AWS and GCP, and weird private networking.

After several days of playing around, trying various networking plugins, and experimenting with manifests, I managed to get my cluster to a healthy state and publish my application!

I wanted to learn more about Kubernetes, and how can I use it to improve my workflow. I wanted to share my experience, and to help other users who want to use Kubernetes on cloud platforms such as DigitalOcean.

Shortly after, I saw a tweet and a blog post from Kris Nova, about the Kubicorn project. The Kubicorn project is focusing on the cluster-lifecycle problems and creating Kubernetes cluster on big variety of cloud providers.

At that time, support for DigitalOcean was work in progress, planned to be released as a next feature. I decided to contact Kris and see can I help with the work. Kris welcomed me to the project, showed me how to get started and what can I work on.

I started with smaller issues, related to the CI, tests and Makefiles. It was a good way to get around the project and understand how the code base works. Then, once DigitalOcean support got merged, I started contributing to the code as well. I started by improving the bootstrap scripts, adding VPN to DigitalOcean clusters to additionally secure clusters, and so many other things. In August, I had 40 PRs opened in the Kubicorn repo!

From the first day, I felt very welcome in the Kubernetes and Kubicorn communities. Everyone is so great. Over the next few months, I had a chance to learn a lot from Kris about Kubernetes, cluster-lifecycle, how everything works, and how to use it. I’m really thankful to Kris and for everything she has done for me! Without Kris, I would never be able to learn so much about Kubernetes and get here!

I was learning more and more about Kubernetes, and I wanted to contribute upstream. That was still a hard task for me. Kubernetes is a big project, with numerous sub-projects, many source code files, many tests, and the contributing process was weird for me at that time.

I was unsure where and how to start. One day, I was speaking with Ellen Körbes (she made our awesome Kubicorn website, make sure to check it out!), and I learned Kubernetes take part in two mentoring initiatives—Outreachy, internships for Underrepresented People In Tech, and Google Summer of Code, internships for Students.

As I’m a student, I decided to go for GSoC.. and here I am! I got two awesome mentors, who teaches me even more about Kubernetes API, API-Machinery, and other relevant concepts. It’s a great feel to learn even more about other parts of Kubernetes!

Getting to KubeCon

While learning more and more about Kubernetes, I had a chance to meet our wonderful community. I dreamed of going to a conference. I wanted to meet everyone and say hi, learn more about Kubernetes, and its use cases. Also, going to conference is a great chance to visit other countries and see the world.

One day, I talked to Kris about Kubicorn, how and where to head the project next, when Kris asked me do I want to go to KubeCon. Then, she told me about the CNCF Diversity Scholarship, and I decided to give it a try.

I was impatiently waiting to see am I accepted and will I have a chance to go to the conference. I can’t describe how happy I was, waking up to an email, telling me I got accepted and that I’m receiving a scholarship.

I was so excited, but yet little bit nervous about everything. That was my first time going to a conference, first time traveling alone that far away, first time traveling by plane. Nothing hard while preparing, but when you’re doing things for a first time, it can be strange in the beginning.

Everything went so well, and I had amazing time at the conference. I enjoyed every moment being there.

KubeCon

KubeCon, officially KubeCon + CloudNativeCon, is a conference aimed at Kubernetes and Cloud-Native applications, such as Prometheus, OpenTracing, Jaeger and more. At the CNCF website, you can find list of projects that are part of the CNCF and that are represented at KubeCon.

KubeCon is a three day conference, with several co-located events a day before the conference. There are many co-located events, targeting many use cases. I found the Contributor Summit the most interesting one, so I decided to register. I wanted to learn more about the contributing process, code base and SIGs.. and it was a great chance to do so!

The Contributor Summit

The Contributor Summit is an event, with three tracks: New Contributors, Current Contributors and Docs Sprint. Before that, there is a Steering Committee update, and at the end of the day, there are SIG updates. The Summit is targeting everyone interested to contribute to the project, including new and current contributors.

I was not sure should I go to the New or Current contributors track, because at that time, I knew basics of contributing to Kubernetes, as I was recommended to make a contribution or two before applying to GSoC, yet I was not feeling that proficient.

I still decided to go to the current contributors track, because it had talks about API extensions, and client-go, which are relevant to my GSoC project.

Being there in-person, is I guess something hard to describe. The whole event looked like a big SIG meeting, but with contributors from all the Kubernetes SIGs. Watching contributors propose ideas, interact with presenters and other contributors, is awesome, and is a great motivation for future ideas.

The chance to talk with other contributors and maintainers about my project and Kubernetes was a great experience and very motivating.

If you’re going to KubeCon, you can make it for the Contributor Summit, and you’re interested to contribute upstream, I really recommend going to the Contributor Summit. It was definitely such a great and unique experience.

Lighthing talks

On the day before conference, after co-located events, there are lightning talks. Lightning talks are 5 minutes talks about CNCF projects, what can be done with, contributing to various projects.. A great way to get introduced to other awesome CNCF projects, to learn some more tricks and what people are doing with cloud-native technologies.

Also, it can be a good opportunity to get around the city, the venue, find the way to conference rooms, and meet folks before the conference starts.

Conference

Every day, the conference starts at 8am with a Welcome Coffee and with Keynotes at 9pm. The day ends at 5-6pm with the Closing Keynotes, expecting the last day, that was without afternoon keynotes.

Even that I had food and drinks at hotel, I was coming up early in the morning, about 8.15am. There are a lot of people in the morning there, and it’s a good way to meet other folks and talk, before it becomes more hectic due to talks, switching rooms and meetings.

I was surprised to see so many attendees. There were about 4,500 attendees on KubeCon EU this year! I had a chance to meet and talk with people all over the world, to meet the Kubernetes contributors, SIG leaders, my GSoC mentor, Kris, fans and contributors of the Kubicorn project.

There were so many very well done and informative talks, that I really enjoyed watching and listening to. It’s definitely not the same effect as when you’re watching a talk from home over YouTube, and watching talk in person. Totally another level of interaction, and you can also probably go to talk with the speaker after talk if you want to say hi and learn some more tricks and ask questions.

Between talks there are pauses, and longer pauses after few talks. Pauses are great time to visit sponsor booths, see what everyone has to present, take some swag and meet people from other companies. For the first day, I was little bit shy, but it got better on day 2.

One of the important notes from conference is - don’t be shy. People are friendly and wants to talk to you, just come up and say hi! CNCF also did a great job there, with stickers that you can put on the conference badge, showing do you want to talk with strangers or not.

The CNCF Conference team has done the amazing job with organizing the conference. Even that I was not attending any other, I feel like this one is the best KubeCon ever hosted. Copenhagen was a great choice. The city is beautiful, and there are so many things to see.

Event Experience

To make your conference experience even better, the CNCF has done epic job organizing events targeted at networking and meeting other attendees. Some of them include: EmpowerHER Reception, Diversity Luncheon, Welcome Reception & Booth Crawl, and All Attendees Party.

Out of all events, I really liked and enjoyed the All Attendees Party. The party was held in Tivoli Gardens, the amusement park located at the heart of Copenhagen. That is the most beautiful park I’ve visited and I really enjoyed it.

The biggest aspect of the event was networking, and I really enjoyed having fun with my friends. I had a chance to meet and spend an evening with my friends from DigitalOcean, and to talk to them about so many things. It was such an amazing evening!

If you’re visiting KubeCon, make sure to check out Event Experience section for the list of events. You’ll surely find something fun.

Looking forward to the future

I’m really thankful to the CNCF for giving me the scholarship to come to the KubeCon, and to Kris Nova for everything she done for me! As a student from Serbia, and someone who want to help more to the upstream and other CNCF project, this really means a lot to me! I can’t describe how thankful and happy I’m for this chance.

If you have a chance to go to the conference, go for it. If not, make sure to check are you eligible for CNCF Diversity Scholarships. Currently, applications are open for KubeCon China and KubeCon NA!

Up next.. I would really love to go to conferences more. That’s the greatest and unique experience. As a student from Serbia, this is a hard task, but I hope there will be opportunities.

On the other side, beside attending, I would love so much to give a meetup or conference talk. I would love to share my Kubicorn and Kubernetes experience with the world.

I love and find very valuable teaching and sharing my experience with the community members, and giving a talk is the great way to do that. I’m definitely going to consider this opportunity, maybe even I’ll try for some bigger conferences, such as KubeCon in the future (KubeCon CFPs for Shanghai and Seattle are open!).

The Kubicorn project is looking for more contributors. If you have any idea, or just want to start contributing, you can check out the project’s GitHuband the project walkthrough. You can always contact Kris or me if you have any questions or need help, or you can also find us on the #kubicorn channel on Kubernetes Slack.

If you have any suggestions, questions about Kubernetes, getting started, GSoC, Kubicorn.., let me know. You can find me Twitter, and on Kubernetes and Gophers Slack as xmudrii.