Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KubeCon tips and “Kubernetes at GitHub”

8c5062689b241827e7532be41ff19e20?s=47 tnir
January 12, 2018

KubeCon tips and “Kubernetes at GitHub”

KubeCon tips and “Kubernetes at GitHub”
Kubernetes Meetup Tokyo #9 @ Cyber Agent
2018-01-12

8c5062689b241827e7532be41ff19e20?s=128

tnir

January 12, 2018
Tweet

Transcript

  1. KubeCon tips and “Kubernetes at GitHub” Kubernetes Meetup Tokyo #9

    at Cyber Agent @tnir - Takuya Noguchi 2018-01-12
  2. @tnir Takuya Noguchi Tw: @tn961ir FB: @takuya.noguchi.961 • Co-organizer of

    Kaimyacho.k8s & Prometheus Tokyo & Docker Meetup Tokyo • Cloud Native Ambassador, CNCF • Core Team member, GitLab • 20 yrs Software Engineer in Digital Transform. • Tech PR/SWE/SRE at iRidge, Inc.
  3. Agenda KubeCon + CNCon overview • Certification program update Kubernetes

    at GitHub • Blog article • My questions • Clusters • Deployments • Delivery Workflow • Canary releases • Spokes KubeCon + CNCon EU 2018 • Call for Paper deadline
  4. 2015.11 KubeCon 2015 @ SF 2016.3 KubeCon Europe 2016 @

    London 2016.11 CloudNativeCon + KubeCon NA 2016 @ Seattle 2017.3 CloudNativeCon + KubeCon Europe 2017 @ Berlin 2017.12 KubeCon + CloudNativeCon NA 2017 @ Austin
  5. Schedule • 公式日程: Dec 6-8, 2017 ◦ 実際 → Dec

    4-8, 2017 • → 公式スケジュールをチェックしましょう • 会社で行く場合も注意が必要かも。。
  6. Unofficial announcements • CKA update (k8s 1.8) • Certified Kubernetes

    Application Developer (CKAD) (beta) ◦ アプリケーション開発者のための資格
  7. Managed Kubernetes on AWS • EKS: ベータ H1 2018 (by

    ブースのAWS SAの人)
  8. KubeCon+CNCon NA 2017 recap @ Docker Meetup Tokyo https://bit.ly/2D1W3GL

  9. “Cloud native” from CNCF Charter Cloud native system: 1. Container

    packaged ( => containerization) 2. Dynamically managed ( => orchestration) 3. Micro-services oriented ( => service mesh) https://www.cncf.io/about/charter/
  10. 2013-2014 (1) Containerization (2) Orchestration (3) Micro-s ervices

  11. 2015-2017 (1) Containerization (2) Orchestration (3) Micro-services

  12. 2018-? (1) Containerization (2) Orchestration (3) Micro-services

  13. Keynote: Kubernetes at GitHub - Jesse Newland, Principal Site Reliability

    Engineer, GitHub
  14. 2017年8月の発表 GitHub Engineeringのブログで発表 https://githubengineering.com/kub ernetes-at-github/

  15. The New Stack “GitHub Goes All in on Kubernetes”

  16. 私の疑問 unicorn以外は? github.com:22はsshについても提供しているがsshdはどうしているの か? ノード規模 超高トラフィックサイトではないだろうがどのくらいだろう? Spokesはどうしたらいい? Spokes (distributed Git)

    のような前例の少ないワークロードへの対応
  17. 本番で約4ヶ月ほど動かしている

  18. 7種類のノード種別を3クラスタに

  19. None
  20. chatopsによるnode追加

  21. node設定はこれまで通りPuppetで

  22. 3 deployments

  23. 3 deployments (cont’d) • unicorn • unicorn-api • consul-service-router unicornもunicorn-apiも同一github/githubアプリなのではない

    かと思われる
  24. Pod definition: 3 containers/pod

  25. Communications inside pods • Nginx-unicorn ◦ via Unix socket shared

    • Unicorn-failbot ◦ failbot: Proxies to exception tracking system (e.g., Sentry) ◦ via HTTP?
  26. unicorn-api: identical to unicorn

  27. consul-service-router with haproxy Envoyサービスメッシュはこれからできたらいいね

  28. NodePort via GLB (GitHub LB) ingressを用いたデプロイは現状やっていない

  29. Logging,Monitoring,Metrics tools

  30. Read-only kubectl get * via chatops

  31. Deploy PR48xxxxxxxx via Hubot

  32. Deliveryまでのワークフロー

  33. GitHub Flow: 従来のCD workflow

  34. 規約 (convention) $ docker build -t $service:$sha1 ./Dockerfile $ kubectl

    create ns $service-$environment $ deploy -Rf ./config/kubernetes/$environment | \ kubectl apply -ns $service-$environment -f -
  35. review-lab (similar to Heroku’s Review Apps) (replaces branch-lab)

  36. config/kubernetes/review-lab # updates image field to $service:$sha1 # injects a

    Secret # injects an Ingress
  37. review-lab (cont’d) $ kubectl create ns review-lab-$branch $ kubectl apply

    -ns review-lab-$branch -f -
  38. Annotations for canary releases

  39. Serviceに1個のpodだけ追加

  40. Deploy to production $ kubectl create ns review-lab-$branch $ kubectl

    apply -ns github-namespace -Rf config/kubernetes/production
  41. ここまで github/githubの話

  42. 他のサービスにもcanary適用可

  43. Kubernetesを基盤とする恩栄あり

  44. マイクロサービス化への道

  45. オンプレのPersistent Disk問題

  46. 分散システム

  47. Spokes (formally DGit)

  48. 2018年以降に期待

  49. まとめ 1. git+ssh proxy => unicornについ ては触れられず 2. モノリスアプリもKubernetesで動 かせる

    3. Gitオペレーションのコンテナライ ゼーションの情報公開に期待
  50. 私の疑問(聴講後) unicorn以外は?(sshd)  →情報公開されず ノード規模  →150〜200台 Spokesはどうしたらいい?  →2018年以降取り組んでいくのだと思われる

  51. 参加した感想 • オースティン寒い(期間前・期間後は暖かかった) • 録画されてないセッション多い(LT、Salons) • 盛り上がってた

  52. KubeCon/CloudNat iveCon EU 2018 CfP deadline: 1/13 17:00 (JST)

  53. あと20時間!!!

  54. References (for “Kubernetes at GitHub”) • Conference Website: https://kccncna17.sched.com/ •

    Session site: https://kccncna17.sched.com/event/CUFK/keynote-kubernetes-at-github-jesse-newl and-principal-site-reliability-engineer-github • Slides: https://schd.ws/hosted_files/kccncna17/44/kubernetes-at-github.pdf • Recorded video: https://www.youtube.com/watch?v=OgRHIZt8Yy8 • Related article: https://githubengineering.com/kubernetes-at-github/