Kubernetes and Gojek Cloud Native World ofKubernetes and Gojek Giri Kuncoro, CNCF Ambassador. Cloud...

68
Cloud Native World of Kubernetes and Gojek Giri Kuncoro, CNCF Ambassador

Transcript of Kubernetes and Gojek Cloud Native World ofKubernetes and Gojek Giri Kuncoro, CNCF Ambassador. Cloud...

Cloud Native World of Kubernetes and Gojek

Giri Kuncoro, CNCF Ambassador

Cloud Native World of Kubernetes and Gojek

Giri Kuncoro, CNCF Ambassador

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

Image credit: @ashleymcnamara

Most importantly: What does “Kubernetes” mean?

Kubernetes= Greek for “pilot” or “helmsman of a ship”

Kubernetes Search Trends

WeChat

Kubernetes OpenStack

Google Trends

Kubernetes OpenStack Mesos Docker Swarm Cloud Foundry

July-18 Aug-18 Sept-18 Oct-18

Source: CNCF Overview

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: Pods

Container Foo

Container Bar

Namespaces● Net● IPC● ...

Kubernetes Concepts: Pods

Container Foo

Container Bar

Namespaces● Net● IPC● ...

Volumes

Kubernetes Concepts: Pods

Container Foo

Container Bar

Namespaces● Net● IPC● ...

Shared

Kubernetes Concepts: Pods

Container Foo

Container Bar

Namespaces● Net● IPC● ...

Labels

Pod Example

NginxGit Syncher

Pod Example

Webapp Twemproxy

localhost

Pod Example

Search Index Shard loader

Shared Memory

Reconciliation

Desired Actual

Reconciliation

Desired Actual

Pods:● Foo● Bar

Pods:● Foo

Create

Reconciliation

Desired Actual

Pods:● Foo● Bar

Pods:● Foo

Create

Create “bar”

Reconciliation

Desired Actual

Pods:● Foo● Bar

Pods:● Foo

Health Check

Reconciliation

Desired Actual

Pods:● Foo

Pods:● Foo● Bar

Delete

Reconciliation

Desired Actual

Pods:● Foo

Pods:● Foo● Bar

Delete

Delete “bar”

Further Resources

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”

Demo time!

Image credit: @ashleymcnamara

Gojek Open Source with Kubernetes

Proctor

BaritoLog

Image credit: @ashleymcnamara

How to contribute to:

Contributing is not only about code

It is about helping a community

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

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

“K8s size is overwhelming”

Let’s break it down!

Source: How to contribute

“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

“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

Credit to:Brendan Burns, Kubernetes Co-founder

Nikhita Raghunath, SIG Contribex Lead

https://www.meetup.com/jakarta-kubernetes/

https://www.meetup.com/pro/cncf

63

64

t.me/kubernetesindonesia

http://bit.ly/k8s-docs-id-m2

giri.kuncoro [at] go-jek.comWe are hiring!

Giri Kuncoro from @girikuncoromeetup.com/jakarta-kubernetest.me/kubernetesindonesia

Thank you!