Giri Kuncoro
CNCF Ambassador
Active Kubernetes Contributor
SIG Sub-project Lead
Kubernetes Release engineering team
Running Kubernetes/Cloud Native Indonesia
● Building Pivotal Container Service 1.0
● Building Kubernetes at Gojek
● Kubecon speakers
Senior Software Engineer at
Cloud Native Computing Foundation
Incubating
Service Mesh StorageService Discovery
Distributed Tracing Software Update Spec
Security
Graduated
Package Management
Networking APILogging Remote Procedure CallDistributed Tracing API
Container Runtime
Container Runtime
Messaging
Orchestration Service ProxyMonitoring
RegistryStorage Key/Value Store Policy
Source: CNCF Overview
Agenda
Kubernetes Technical Overview
Gojek Open Source with Kubernetes
Contribute to Kubernetes Contribute to Kubernetes
Most importantly: What does “Kubernetes” mean?
Kubernetes= Greek for “pilot” or “helmsman of a ship”
Kubernetes Search Trends
Kubernetes OpenStack
Google Trends
Kubernetes OpenStack Mesos Docker Swarm Cloud Foundry
July-18 Aug-18 Sept-18 Oct-18
Source: CNCF Overview
Kubernetes Incredible Velocity (last 365 days)!
Source 5Source 4Source 2Source 1 Source 3
32 000+human
commits
15 000+contributors
51 000+opened
Pull Requests73 000+opened issues88 000+
Kubernetes professionals
35 000+Kubernetes
jobs
55 000+users on
Slack
50 000+edX course
enrolls
Last updated: 09.01.2019
318 000+Github
comments
Kubernetes API: Unified Compute Substrate
Application containers
Homogenous Machine Fleet (Virtual or Physical)
Kubernetes Architecture
API Server
Scheduler
Controller Manager
Kubelet
Kube-proxy
kubectl, web client, etc.
ETCD
Kubernetes Concepts: Replication Controller
#N
backend
production
backend
production
backend
production
Kubernetes Concepts: Services
name
backend
production
backend
production
backend
production
port[s]
1.2.3.4“name”
Help the Community
● Blogposts● StackOverflow● Slack● Note-taking● Be a part of the release team● Project management● Technical architecture
Get creative!
Draw and explain Quizes!
Julia Evans Lachlan Evenson
Source: How to contribute
Contributing Code!
Source: How to contribute
1. Choose what to work on
Source: How to contribute
“I don’t know Go”
THAT’S OK!
Source: How to contribute
1. Choose your language
● Go - kubernetes/kubernetes● Python - kubernetes-incubator/client-python● C# - kubernetes-client/csharp● Java - kubernetes-client/java● Javascript - kubernetes-client/javascript● Ruby - kubernetes-client/ruby● Typescript - kubernetes-client/typescript
Source: How to contribute
2. Choose your project
● Kubernetes● Helm● Kops● Minikube● Dashboard
..and many more!
Source: How to contribute
“K8s size is overwhelming”
Let’s break it down!
Source: How to contribute
3. Choose a SIG
SIG = Special Interest Group
Complete list: https://github.com/kubernetes/community/blob/master/sig-list.md
Image Source
“Everyone is super smart.It’s intimidating!”
They are smart and nice. Don’t be scared!
Source: How to contribute
4. Reach out!
Via:● The SIG Slack channel● Regular SIG video meetings● SIG mailing lists
Source: How to contribute
2. Understanding thearchitecture
Source: How to contribute
1. Docs
Start here: https://kubernetes.io/docs/concepts
Source: How to contribute
2. Design Proposals
Understand the architecture and explore the design proposals!
Source: How to contribute
“Design proposals are hard to understand”
Read them againto let it slowly soak in
andask questions
Source: How to contribute
3. Checkout PRs/Issues
Filter using labels
Read the comments
Source: How to contribute
4. Docs (again!)
But this time YOU write it!
Source: How to contribute
4. Docs (again!)
But this time YOU write it!
Source: How to contribute
BOOM...YOU HAVE ALREADY CONTRIBUTED NOW!
3. Making Code changes
Source: How to contribute
1. Setup dev environment
Community repo: https://github.com/kubernetes/community/tree/master/contributors/devel
2. Choose an issue
● A good first issue - is:open is:issue label:good-first-issue label:help-wanted
● Ask!○ in a SIG slack channel○ in SIG meetings○ on mailing lists
Source: How to contribute
3. PR process
● Try to fix the problem● Ask for help if needed● Get initial review and address comments● Write and fix tests● Ask for approval and get it merged!
Source: How to contribute
4. Triage and Test!
THIS. WOULD. BE. VERY. HELPFUL.
Triage IssuesTest new releases
Source: How to contribute
Mentoring program!https://github.com/kubernetes/community/tree/master/mentoring
5. Roadmap
Source: How to contribute