Skip to content

Instantly share code, notes, and snippets.

@d-shimizu
Last active March 26, 2019 00:55
Show Gist options
  • Save d-shimizu/d62652272bcaba8c03c9d162456a7d69 to your computer and use it in GitHub Desktop.
Save d-shimizu/d62652272bcaba8c03c9d162456a7d69 to your computer and use it in GitHub Desktop.
個人的なメモ書き // 一晩でKubernetesを覚えて帰ろう。ワンナイトBootCamp! -- cndjp#10
  • title: 一晩でKubernetesを覚えて帰ろう。ワンナイトBootCamp! cndjp#10 https://cnd.connpass.com/event/123046/
  • date: 2019-03-25
  • place: Oracle Corp.
  • tags: cndjp
  • categories: study, meetup

個人的なメモ書きで内容を保証するものではありません

一晩でKubernetesを覚えて帰ろう。ワンナイトBootCamp! -- cndjp#10

19:05-19:15 「1. イントロダクション」 @hhiroshell 様

Kubernetesってなにそれおいしいの?という人向けの超入門 - Speaker Deck

  • k8sとは

    • コンテナオーケストレーションツール
  • コンテナとは

    • コンテナ型仮想化
    • 一種の仮想マシン
    • 容量が小さい
    • 動作が軽い
  • インストールやセットアップ、構築が複雑なものを一瞬で構築可能

  • 軽量なため、数が増えすぎる

  • 運用課題

    • 大量のコンテナに対して運用オペレーションを行う必要がある
    • リソースの空き状況に余裕があるホストが必要
    • コンテナ同士の連携
      • それを解決するのがコンテナオーケストレーション
  • コンテナオーケストレーションが実現すること

    • スケールアウトの自動化(別々のHWでデプロイしてくれる、コンテナが停止したら自動で起動してくれるなど)
  • mesosとかよりも良いところ

    • コンテナ運用の効率化、高度化、メトリクス取得や監視、可視化、コンテナのログ、トラフィックの制御
  • 適用領域の拡大

  • 宣言的オペレーションとIaC

    • マニフェストファイルを使うことで一律で動かすことが可能

19:15-19:55 「2. Kubernetesの基礎」 @yosshi_ 様

Kubernetesの基礎.pdf - Speaker Deck

  • k8s の全体像の基本

  • kubctl

  • master

    • k8sを管理するコンポーネント群/ マルチクラスター含む
  • etcd clister

    • 高信頼性KVS、k8sのデータが保存される
  • node

    • コンテナが配置されるサーバ群
  • masterコンポーネント

    • APIサーバ
      • etcdへのWrite/Read 複数台での冗長化可能
    • control Manager
      • デプロイするコンテナを管理する
    • Scheduler
      • どこにコンテナを配置するかを決める。
  • Nodeコンポーネント

    • コンテナランタイム
      • ほぼDocker、OpenShiftも可能かも
    • Kubelet
      • Node上のエージェント
      • コンテナの起動停止を行う
    • kube-proxy
      • コンテナとの接続を保証するプロキシ
  • 何となく以下のような分類としてとらえる(公式ドキュメントもあいまいなので)

    • Master
      • APIサーバ
      • control Manager
      • Scheduler
    • Contorl Plane Components
      • APIサーバ
      • control Manager
      • Scheduler
      • kubectl
      • kube-proxy

masterはetcdに情報を書き込んで、その情報をもとにNodeへ反映するのを繰り返している。 etcdが心臓部

  • kubeadmでオンプレに容易に環境構築可能

  • 学習コスト高い

  • Workload一覧

    • Pod
      • コンテナデプロイの最小単位
      • 1個のPodに複数のコンテナを定義できる(sidecar)
        • 少しづつデプロイするのがおすすめ
    • Replicaset
      • デプロイしたPod数を維持するリソース
      • Podに付与されているLabelを意識してReplicaSetを設定。1個のPodに複数のLabelを付与可能なので、目的のチアぐPodのLabelの組み合わせがかぶらないように注意が必要
      • Podが死んだ場合でも指定した個数になるように管理する。
    • Deployment
      • ローリングアップデートするためのReplicaSetを管理するリソース
    • DaemmonSet
    • StatfulSEt
    • Job
    • cronjob
  • Configurationの一覧

    • configmap
      • 設定情報をKev-value形式で保持するリソース
      • 作り方
        • Manifest
    • secret   * opaque * key-value形式で機密情報を保持 * 扱い方はconfigmapと同じ
      • 値がBase64エンコード、tmpfsに保存される
      • ID/Passを保存するなどの使い方、権限管理や管理場所をきちんとしないと意味がない
  • Discorvery/LB

    • ClusetrIP
      • クラスタ内のアクセスを保証する
        • クラスタ内のPodへのアクセスをLBする
        • Service名で名前解決してクラスタ内のPodへアクセスする
    • NodPort
      • クラスタ外のクラスタのPortを指定してアクセスする
        • クラスタのすべてのNodeを特定す
  • NameSpace

    • 1つのクラスタの中を仮想クラスタで分けることができる
  • Manifest中心のオペレーション

    • Manifiestなしでもデプロイできるが状態がわからなくなるので使うほうが良い

20:05-20:25 「3. 動いているところを見てみよう!」 @hhiroshell 様

Kubernetesの基本的な操作を体験しよう - Oracle Cloud - PaaS ドキュメント

  • K8sを動かすデモ(資料なし)

20:25-20:55 「4. Kubernetesのアーキテクチャと発展的な使い方」 @nnao45 様

what happens when k8s journy - Speaker Deck

  • すごく良い発表だったようですが自分のk8s力が足らずあまり理解できなかったので資料を読み返す...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment