$30 off During Our Annual Pro Sale. View Details »

Kubernetesソースコードリーディング入門

bells17
September 12, 2023

 Kubernetesソースコードリーディング入門

Kubernetes Novice Tokyo #27 で発表した資料です。
https://k8s-novice-jp.connpass.com/event/293144/

発表のライブ配信はこちら。
TODO

スライドで紹介した参考リンク集:
https://bells17.medium.com/things-you-should-know-about-reading-kubernetes-codes-933b0ee6181d
https://www.amazon.co.jp/dp/4297104385/
https://www.amazon.co.jp/dp/4297118378/
https://go.dev/tour/welcome/1
https://gopherdojo.org/studyroom/
https://www.amazon.co.jp/dp/4621300253/
https://speakerdeck.com/bells17/kubelet-and-containers
https://speakerdeck.com/ryusa/servicewotazunete3000xing-kuberneteskodorideingufalselu
https://speakerdeck.com/bells17/kube-api-server-k8sjp
https://speakerdeck.com/sanposhiho/zi-zuo-sitexue-bukubernetes-schedulerru-men
https://speakerdeck.com/bells17/cloud-controller-manager-deep-dive
https://speakerdeck.com/masayaaoyama/infrastudy2-k8s
https://github.com/kubernetes/client-go/tree/master/examples/workqueue
https://github.com/kubernetes/sample-controller/blob/master/controller.go
https://github.com/kubernetes-sigs/kubebuilder
https://speakerdeck.com/bells17/kubebuilder-introduction
https://zoetrope.github.io/kubebuilder-training/
https://github.com/cybozu-go
https://www.youtube.com/watch?v=yqB_le-N6EE
https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1602-structured-logging/README.md
https://github.com/kubernetes/enhancements/issues/1602
https://github.com/kubernetes/klog/issues/125
https://github.com/kubernetes/klog/pull/126
https://github.com/kubernetes-csi
https://kubernetes-csi.github.io/docs/drivers.html
https://speakerdeck.com/bells17/introduction-to-csi
https://github.com/kubernetes/kubeadm
https://speakerdeck.com/bells17/implementation-of-kubeadm-init
https://github.com/kubernetes-sigs/metrics-server
https://speakerdeck.com/bells17/metrics-server
https://speakerdeck.com/bells17/accurate-introduction
https://github.com/cybozu-go/accurate
https://slack.k8s.io/
https://www.youtube.com/watch?v=Ayo5w-CSmP0
https://github.com/kubernetes/community

bells17

September 12, 2023
Tweet

More Decks by bells17

Other Decks in Programming

Transcript

  1. Kubernetes

    ソースコー
    ド
    リー
    デ
    ィン
    グ
    ⼊⾨
    Kubernetes Novice Tokyo #
    2 7
    (
    2 0 2 3
    /
    0 9
    /
    1 2
    )


    @bells
    1 7

    View Slide

  2. ▶ @bells
    1
    7


    ▶ Software Engineer@
    3
    -shake inc.


    ▶ kubernetes & kubernetes-csi member


    ▶ Kubernetes Internal Organizer


    ▶ #kubenews


    ▶ X(Twitter): @bells
    1
    7
    _


    ▶ GitHub: @bells
    1
    7

    View Slide

  3. 今⽇話すこと
    ▶ Kubernetesのソースコードリーディングを始める上で知っておくべき
    基礎知識をまとめて紹介します


    ▶ Kubernetes本体以外にも「こんなアプリケーションもあるよ」みたい
    なのを含めてザックリ紹介できればと思ってます


    ▶ 以前ブログで書いた「Kubernetesのコードリーディングをする上で
    知っておくと良さそうなこと」をベースとした内容になっているので、
    よければこちらもご覧ください
    ざっくり発表なので

    気楽に聞いてもらえれば

    View Slide

  4. まずはKubernetesを触ってみる

    View Slide

  5. Kubernetes とは?
    ▶ Kubernetesはコンテナオーケストレーターの1つ


    ▶ etcd/control plane/worker nodeによって構成されたクラスターを構築し、
    様々なコンテナをKubernetes上のnodeで動作させたり、動作させてるコン
    テナとネットワークをいい感じに連携できるようにすることができる


    ▶ デプロイするコンテナなどをmanifestファイルで宣⾔的に記述することで、
    宣⾔した状態になるようにKubernetesがいい感じに調整処理を⾏ってくれる


    ▶ Googleが内部で運⽤していたコンテナ基盤であるBorgをOSS向けに作り直
    したコンテナオーケストレーター


    ▶ また、KubernetesはCloud Native Computing Foundation(CNCF)に寄贈さ
    れており、CNCFのGraduatedプロジェクトとしてコミュニティベースで管理
    されている

    View Slide

  6. manifestをKubernetesに適⽤することで


    宣⾔されたmanifestの通りにコンテナが作成される

    View Slide

  7. これからKubernetesを学ぶ場合
    まだKubernetesを触ったことがない⼈は何はともあれ触ってみましょう


    ▶ Deploymentを使ってPod(コンテナグループ)がクラスター内で⾃動的に
    分散配置されるのを検証する


    ▶ Podを削除してもSelf-healing機能によりDeploymentに設定したreplica
    の数に⾃動的に調整されるのを確認する


    ▶ Con
    fi
    gmap/Secretを利⽤してコンテナに各種設定や秘密情報を環境変数/
    ボリュームとして渡せることを確認する


    ▶ Service/Ingressを使うことでロードバランサーなどを介して外部からコ
    ンテナに接続できることを確認する


    ▶ etc

    View Slide

  8. ⼊⾨にオススメの書籍
    画像引⽤元: https://www.amazon.co.jp/dp/
    4 2 9 7 1 0 4 3 8 5
    / https://www.amazon.co.jp/dp/
    4 2 9 7 1 1 8 3 7 8
    /

    View Slide

  9. Go⾔語を学ぶ

    View Slide

  10. Go⾔語を学ぶ
    KubernetesはGo⾔語で実装されているため


    ▶ Go⾔語の基本的な⽂法を学ぶ


    ▶ Go⾔語を実⾏できる環境を整える


    ▶ Go⾔語で書かれたプログラムを読みやすいエディタ環境を整える


    あたりができているとコードリーディングに⼊りやすいです

    View Slide

  11. Go⾔語を学ぶには
    Go⾔語はインターネット上で良質な学習コンテンツが公開されているので、
    個⼈的には下記のコンテンツを学んでおけば⼗分かとは思います


    ▶ A Tour of Go


    ▶ Gopher道場 ⾃習室


    ⾃分の場合はサンプルコードを書きながらわからないところを

    書籍の『プログラミング⾔語Go』を読んで、という感じで覚えていきました

    View Slide

  12. Go⾔語の実⾏環境を整える
    Go⾔語の実⾏環境については公式ドキュメントの「Download and install」
    ページにある通りにインストールするだけで実⾏可能です

    ⾃分の場合エディタにはVSCodeを使っているのですが、その場合はGo⾔語
    ⾃体がインストールされていれば、あとはこちらのドキュメントにあるよう
    にGoのプラグインをインストールするだけでOKです



    View Slide

  13. Kubernetesのアーキテクチャを知る

    View Slide

  14. https://github.com/kubernetes/website/blob/fb
    6 3 6 4
    da
    0
    afd
    1 9
    e
    8
    a
    9 5 1 5
    aaae
    2
    de
    9
    bc
    7 4
    a
    0
    a
    6
    abd/static/images/docs/components-of-kubernetes.png

    View Slide

  15. View Slide

  16. https://github.com/kubernetes/sample-controller/blob/master/docs/images/client-go-controller-interaction.jpeg

    View Slide

  17. View Slide

  18. Kubernetesのコンポーネントについて

    View Slide

  19. Kubelet
    ▶ Kubernetesクラスターの各ノードで動作するコンポーネント


    ▶ コンテナランタイムと連携しWorker Nodeで動かすコンテナとその関連

    リソースを管理する


    View Slide

  20. Kubeletによるコンテナ管理(ちょっと情報が古い)

    View Slide

  21. kube-proxy
    ▶ Kubernetesクラスターの各ノードで動作するコンポーネント


    ▶ KubernetesのServiceリソースを元に⽣成されるEndpointSliceリソース
    を元に、ノードのネットワークプロキシを設定してPodにリクエストを
    分散できるようにしてくれる


    ▶ ネットワークプロキシの設定はiptablesなどを利⽤して⾏われる


    View Slide

  22. Kube API Server
    ▶ Control Planeとして動作するコンポーネント


    ▶ Kubernetesの様々なデータ保存や取得、イベント通知を⾏うAPI Server


    ▶ Rest APIを中⼼としたAPI Serverを提供する


    ▶ API定義はProtocol Bu
    ff
    ersによって⾏われる


    ▶ 定義したAPIはAPI Server側でOpenAPI形式に変換され、APIからスキーマ定義が

    取得可能


    ▶ etcdをデータ永続のためのデータストアとして使⽤


    ▶ リソース操作時の⾃動的なデータ改変/バリデーションを可能にするWebhookを提供


    ▶ 独⾃リソース管理のための機能を提供


    ▶ Extension API Server


    ▶ Custom Resource De
    fi
    nition(CRD)


    View Slide

  23. Kube API Serverの全体像

    View Slide

  24. Kube Scheduler
    ▶ Control Planeとして動作するコンポーネント


    ▶ 各PodをどのNodeで実⾏するのかを決定する処理を⾏うコンポーネント


    ▶ どういう条件‧優先度でスケジュールするかはスケジューラーの設定ファ
    イルで制御可能な他プラグイン形式で独⾃の条件‧優先度設定を組み込ん
    でスケジューリングすることも可能


    View Slide

  25. Kube Schedulerの全体像
    https://github.com/kubernetes/website/blob/
    0
    b
    6
    cfc
    4 9
    a
    5
    b
    9 6 9 3 1
    aa
    3
    d
    6 9
    d
    4
    f
    3 7 0 5 8
    ec
    2 2 9 1 2
    e
    1
    d/static/images/docs/scheduling-framework-extensions.png

    View Slide

  26. Kube Controller Manager
    ▶ Control Planeとして動作するコンポーネント


    ▶ Reconciliation loopを実⾏する、約30種類程度のコントローラーの動作
    を束ねるコンポーネント


    ▶ 「あるべき状態」を実現するためのKubernetesの様々な仕組みの多くは
    このコントローラー群によって⾏われている


    View Slide

  27. Cloud Controller Manager
    ▶ Control Planeとして動作するコンポーネント


    ▶ Kube Controller Managerで動作するコントローラーの中から実⾏環境の
    APIと連携して設定‧実現する機能を切り出したもの


    ▶ Cloud Providerと呼ばれる実⾏環境向けの実装を利⽤してL
    4
    ロードバラン
    サー(ServiceのType: LoadBalancer)の設定や各ノードの設定などを⾏う


    View Slide

  28. Cloud Controller Managerの全体像

    View Slide

  29. ▶ Kubeletから読み解くKubernetesのコンテナ管理の裏側


    ▶ Serviceをたずねて3000⾏


    ▶ Kube API Server


    ▶ ⾃作して学ぶKubernetes Scheduler⼊⾨


    ▶ Cloud Controller Manager Deep Dive
    各コンポーネントについて詳しく知りたい⽅は

    下記を参照してください

    View Slide

  30. Reconciliation loopを体験してみよう

    View Slide

  31. Reconciliation loopとは?
    ▶ Reconciliation loop(調整ループ)は各Kubernetesリソース(e.g. Deployment)に
    対して実⾏される


    ▶ リソースに設定された「あるべき状態」と「現在の状態」とを⽐較して、「現在
    の状態」を「あるべき状態」にするべく処理を⾏う


    ▶ Kubernetesの⼤半のロジックはこのReconciliation loopを⽤いて実現されてい
    るため、Reconciliation loopを⾃分で書いて体験しておくのがコードリーディン
    グの近道にもなる


    ▶ 例えば下記のようなことがReconciliation loopによって実現されている


    ▶ Deploymentの設定に基づきReplicaSetを⽣成


    ▶ ReplicaSetに設定されたreplica数に応じてPodを⽣成


    ▶ etc


    ▶ 参考情報: 「VM 時代の開発とKubernetes による Cloud Native な開発のこれから」

    View Slide

  32. Reconciliation loopを体験する
    簡単にReconciliation loopを体験するには下記のような⽅法がある


    ▶ client-goのexampleである”Workqueue Example”


    ▶ kubernetes/sample-controller


    ▶ kubebuilder


    特にkubebuilderについてはKubernetes Operator構築のSDKにもなっている
    のでKubernetes Operator⾃作にも役⽴つ


    kubebuilderについては「作って学
    ぶ
    kubebuilder⼊⾨」というスライドで
    kubebuilderを使ったデモをやってみてるので参考にしてもらえれば

    View Slide

  33. 本格的に学ぶには?
    実際にKubernetes Operatorを⾃作するなど、Reconciliation loopを本格的
    に学ぶ場合は下記のような⽅法がオススメ


    ▶ サイボウズの池添さんが公開されているコンテンツで学ぶ


    ▶ 実際のKubernetes Operatorの実装を⾒て学ぶ


    サイボウズさんは⾃作のKubernetes OperatorをいくつもOSSで公開されて
    いるので実装を⾒る際にもオススメ

    View Slide

  34. Kubernetesのリポジトリを⾒てみよう

    View Slide

  35. Kuberneteのリポジトリ
    Kubernetesに関するGitHub Organizationは下記のようになっている


    ▶ kubernetes: 主にKubernetes本体に関するorg


    ▶ Kubernetes-sigs: Kubernetesコミュニティが管理しているコア以外のorg


    ▶ Kubernetes-csi: CSIに関するorg


    ▶ kubernetes-client: 各⾔語でのKubernetesのクライアント実装があるorg


    ▶ kubernetes-retired: アーカイブされたリポジトリを設置するorg


    ▶ kubernetes-incubator


    ▶ kubernetes-nightly


    ※上記説明は著者による主観なので注意(Orgに関する説明が⾒当たらなかった)


    View Slide

  36. Kubernetes本体は kubernetes/kubernetes にある

    View Slide

  37. Kuberneteリポジトリの構成
    Kuberneteリポジトリの構成はだいたい下記のようになっています


    ▶ cmd: kubeletやkubectlなど各種バイナリのエントリーポイント


    ▶ pkg: 各プログラムの本体


    ▶ staging/src/k
    8
    s.io/: Kubernetes本体から切り出されたライブラリ群

    (ライブラリはkubernetes org内にコピーとなるリポジトリがある)


    View Slide

  38. 主なライブラリについて
    下記の3つのライブラリについてはソースコードを読む際にも、Kubernetes
    Operatorを実装する際にも⽬にすることが多くなるライブラリとなります


    ▶ api: 各種Kubernetesリソースの型定義など


    ▶ apimachinery: Kubernetesリソースのベースとなる型定義など


    ▶ client-go: Kubernetesのクライアントライブラリなど


    View Slide

  39. client-goについて
    client-goには下記のようなコントローラー実装のための基本的な実装が⼊っ
    ています


    ▶ Kubernetes APIに触れるためのクライアントライブラリ


    ▶ Kubernetes ControllerでReconciliation loopを実装するための基礎実装


    ▶ その他Kubernetes Controllerを作る上での共通のユーティリティ


    View Slide

  40. Kubernetesリポジトリの解説は

    コミュニティの「Meet out contributors」でも⾏われています
    https://www.youtube.com/watch?v=yqB_le-N
    6
    EE

    View Slide

  41. Kubernetesで読むコードのネタ探しをしよう

    View Slide

  42. KEPからネタを探す
    KuberenetesコミュニティではKubernetes Enhancement Proposals (KEP)
    という仕組みでKubernetesの機能追加や変更に関する提案を⾏うルールに
    なっています


    新しく実装された機能やこれから実装されるかもしれない機能について、こ
    のKEPを読むことで詳しくしることができるかもしれません


    KEPを読んで興味を持ったら実装を探してみるのも良いかもしれません

    View Slide

  43. e.g.

    Structured Logging KEP
    ▶ 構造化ロギングのKEP例


    ▶ ⽬標とすること/しないことや実装⽅
    法、設計の詳細などが書かれている


    https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/
    1 6 0 2
    -structured-logging/README.md

    View Slide

  44. KEPのIssue
    https://github.com/kubernetes/enhancements/issues/
    1 6 0 2

    View Slide

  45. KEPのIssueに紐付けられたklogのIssue

    (Kubernetesのログライブラリ)
    https://github.com/kubernetes/klog/issues/
    1 2 5

    View Slide

  46. klogのIssueに紐付けられたPRから実装を調べられる
    https://github.com/kubernetes/klog/pull/
    1 2 6

    View Slide

  47. エントリーポイントを1から読む
    Kubernetesではコアコンポーネントだけで下記のようなプログラム

    が存在します


    ▶ Kubelet


    ▶ Kube-proxy


    ▶ Kube API Server


    ▶ Kube Scheduler


    ▶ Kube Controller Manager


    ▶ Cloud Controller Manager


    これらを1から読んでいくのもやり⽅の⼀つ

    View Slide

  48. 1からプログラムを読む
    1からプログラムを読むのは結構⼤変だけど、1度読むと全体像が頭に⼊る
    し、ほとんどの箇所は軽くは⽬を通していることになるので中でどういった
    処理を⾏っているのかがなんとなく覚えてられるようになる


    Kubernetesの処理で分からない箇所とか、エラーで詰まった際にあたりがつ
    けやすくなる

    View Slide

  49. 著者の場合読んだ内容を

    技術同⼈誌で出したりスライドで発表してたりする

    View Slide

  50. Kubernetes本体以外のアプリケーション達

    View Slide

  51. CSI Driver
    Kubernetesでボリュームを使うプラグインとしてCSI Driverがあります


    ▶ Kubernetesと連携してドライバーを動作させるためのサイドカーが
    kubernetes-csi orgにあります


    ▶ CSI Driver実装の⼀覧についてはこちらから探すことができます


    CSI Driverについては「CSI⼊⾨」というセッションで以前発表してるので、
    気になる⽅はこちらも参考にしてください


    View Slide

  52. CSI Driverの全体像
    https://github.com/kubernetes/community/blob/d
    8 3
    cd
    5 3 9 7 9
    d
    0 8
    ac
    0
    e
    0
    e
    3 3 7 0 4
    c
    6
    aec
    6
    b
    1
    c
    3
    cb
    7
    c
    8
    d/contributors/design-proposals/storage/container-storage-interface_diagram
    1
    .png

    View Slide

  53. kubeadm
    Kubernetesコミュニティが提供するKubernetesクラスター構築ツール


    Kubernetesのアーキテクチャを学ぶという⽬的とは違うかもしれないです
    が、Kubernetes Hard WayをやらなくてもKubernetesクラスターの構築プロ
    セスを学べるかも!?


    kubeadmについては「kubeadmに学
    ぶ
    クラスター構築」というセッション
    でクラスター構築までの流れについて発表してるので、気になる⽅はこちら
    も参考にしてください


    View Slide

  54. kubeadmは下記のようにクラスター構築処理が分割されている

    View Slide

  55. Metrics Server
    Metrics Serverはnode/podのメトリクスをKubernetes APIとして公開できるようになる
    アプリケーション


    KubernetesのHPA/VPAを利⽤するためのデータソースとして利⽤される他、kubectl
    topコマンドを通してメトリクスデータを⾒ることができるようになる


    拡張API Serverという仕組みを使っており、拡張API Serverの仕組みを学ぶのに最適かも


    Metrics Serverについては「Metrics Server」というセッションで仕組みについて発表し
    てるので、気になる⽅はこちらも参考にしてください


    View Slide

  56. Metrics Serverの全体像

    View Slide

  57. Accuate
    サイボウズ社が公開しているOSSで、ソフトマルチテナンシー向けのテナン
    ト管理を⾏うためのKubernetes Operator


    アプリケーションサイズもそこまで⼤きくなく、kubebuilderを使って実装
    されたKubernetes Operatorの実装例として学ぶには最適かも


    kubeadmについては「Accurate
    で
    始めるKubernetesのマルチテナント管
    理」というセッションで発表してるので、気になる⽅はこちらも参考にして
    ください


    View Slide

  58. Kubernetesコミュニティに参加しよう

    View Slide

  59. Kubernetesコミュニティ
    Kubernetesコミュニティについて知っておくと、いざというときに質問でき
    たりコントリビューションのネタ探しにもなることがあるので便利


    参加するのはSlackに⼊るだけ: https://slack.k
    8
    s.io/


    下記のような⽇本語のコミュニティも存在するので、気軽に参加しよう


    ▶ #jp-users


    ▶ #jp-events


    ▶ #jp-dev


    ▶ #jp-users-novice


    View Slide

  60. Special Interest Group(SIG)
    Kubernetesコミュニティは基本SIGと呼ばれる単位で分かれて活動している


    ▶ sig-docs: Kubernetesドキュメントやその翻訳などを管理


    ▶ sig-node: Kubeletなどノードに関するものを管理


    ▶ sig-cloudprovider: Kubernetesの実⾏基盤との連携機能周りを管理


    ▶ sig-storage: CSIなどストレージに関するものを管理


    ▶ Etc


    View Slide

  61. Working Group(WGs)
    sigで管理しきれないものについてはWorking Groupで管理


    ▶ wg-lts: Kubernetesの⻑期サポートに関するグループ


    ▶ wg-structured-logging: 構造化ロギングに関するグループ


    ▶ wg-data-protection: データ保護に関するグループ


    ▶ etc


    View Slide

  62. Kubernetesコミュニティに関する説明は

    「Intermediate Contributor Workshop」がわかりやすいかも
    https://www.youtube.com/watch?v=Ayo
    5
    w-CSmP
    0

    View Slide

  63. コミュニティの詳細
    Kubernetesコミュニティの詳細について知りたい場合は

    kubernetes/community にアクセスすると調べることができます


    ▶ どんなSIGがあるのか?


    ▶ WGについては?


    ▶ いつどんなミーティングをしているのか?


    ▶ SIGの主な構成メンバーについて


    ▶ SIGごとの開発をスケジュールについて


    View Slide

  64. まとめ

    View Slide

  65. まとめ
    ▶ ザックリと1からKubernetesのソースコードに⼊るまでに知っておいた⽅が良いことにつ
    いて紹介しました


    ▶ ソースコードを読むのはそこそこコストが掛かるので、やる⽬的は⼈それぞれですが、何
    か疑問が出たときに「気軽にソースコードから調べる」という選択肢が増やせると良いな
    と思っています


    View Slide

  66. 参考資料
    ▶ https://bells
    1 7
    .medium.com/things-you-should-know-about-reading-
    kubernetes-codes-
    9 3 3
    b
    0
    ee
    6 1 8 1
    d


    ▶ https://www.amazon.co.jp/dp/
    4 2 9 7 1 0 4 3 8 5
    /


    ▶ https://www.amazon.co.jp/dp/
    4 2 9 7 1 1 8 3 7 8
    /


    ▶ https://go.dev/tour/welcome/
    1

    ▶ https://gopherdojo.org/studyroom/


    ▶ https://www.amazon.co.jp/dp/
    4 6 2 1 3 0 0 2 5 3
    /


    ▶ https://speakerdeck.com/bells
    1 7
    /kubelet-and-containers


    ▶ https://speakerdeck.com/ryusa/servicewotazunete
    3 0 0 0
    xing-
    kuberneteskodorideingufalselu


    ▶ https://speakerdeck.com/bells
    1 7
    /kube-api-server-k
    8
    sjp


    ▶ https://speakerdeck.com/sanposhiho/zi-zuo-sitexue-bukubernetes-
    schedulerru-men


    ▶ https://speakerdeck.com/bells
    1 7
    /cloud-controller-manager-deep-dive


    ▶ https://speakerdeck.com/masayaaoyama/infrastudy
    2
    -k
    8
    s


    ▶ https://github.com/kubernetes/client-go/tree/master/examples/workqueue


    ▶ https://github.com/kubernetes/sample-controller/blob/master/controller.go


    ▶ https://github.com/kubernetes-sigs/kubebuilder


    ▶ https://speakerdeck.com/bells
    1 7
    /kubebuilder-introduction


    ▶ https://zoetrope.github.io/kubebuilder-training/


    ▶ https://github.com/cybozu-go


    ▶ https://www.youtube.com/watch?v=yqB_le-N
    6
    EE


    ▶ https://github.com/kubernetes/enhancements/blob/master/keps/sig-
    instrumentation/
    1 6 0 2
    -structured-logging/README.md


    ▶ https://github.com/kubernetes/enhancements/issues/
    1 6 0 2

    ▶ https://github.com/kubernetes/klog/issues/
    1 2 5

    ▶ https://github.com/kubernetes/klog/pull/
    1 2 6

    ▶ https://github.com/kubernetes-csi


    ▶ https://kubernetes-csi.github.io/docs/drivers.html


    ▶ https://speakerdeck.com/bells
    1 7
    /introduction-to-csi


    ▶ https://github.com/kubernetes/kubeadm


    ▶ https://speakerdeck.com/bells
    1 7
    /implementation-of-kubeadm-init


    ▶ https://github.com/kubernetes-sigs/metrics-server


    ▶ https://speakerdeck.com/bells
    1 7
    /metrics-server


    ▶ https://speakerdeck.com/bells
    1 7
    /accurate-introduction


    ▶ https://github.com/cybozu-go/accurate


    ▶ https://slack.k
    8
    s.io/


    ▶ https://www.youtube.com/watch?v=Ayo
    5
    w-CSmP
    0

    ▶ https://github.com/kubernetes/community


    View Slide

  67. 画像引⽤元
    ▶ https://github.com/kubernetes/community/tree/master/icons


    ▶ https://github.com/kubernetes/kubernetes/tree/master/logo


    ▶ https://github.com/cncf/artwork/tree/master/projects/kubernetes


    ▶ https://github.com/kubernetes/kubeadm/tree/main/logos

    View Slide

  68. Thanks / Question?
    ▶ @bells
    1 7

    ▶ Slide: https://speakerdeck.com/bells
    1 7

    ▶ @bells
    1 7
    _

    View Slide