Docker と Kubernetes

Kubernetes入門

Frank Heilmann

Platform Architect and Freelance Instructor

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

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

  • 近年のソフトウェア基盤は数千のコンテナで構成されることがあります
  • これらを管理するのが コンテナオーケストレーション で、 いくつかの オーケストレーションツール が存在します
  • Kubernetes の推定シェアは 95% 超です
Kubernetes入門

オーケストレーションにおける Kubernetes

  • Kubernetes はコンテナオーケストレーションの典型課題を解決します。 例:
    • スケジューリングとネットワーキング(どこにデプロイし、どう接続するか)
    • コンテナへのストレージの接続方法
  • そのために、Kubernetes は コンテナエンジン と連携します。

Kubernetes と Docker

Kubernetes入門

Docker と Kubernetes の関係

  • 一般に Docker がコンテナエンジンの第一候補です
  • Kubernetes はコンテナのスケジューリングと維持のために コンテナエンジンとしての Docker と連携します
  • Docker は主に次の 2 つに使います:
    • Docker イメージの作成・更新
    • そのイメージからコンテナを起動
  • Kubernetes が Docker イメージを作ることはありません。これは Docker の役割です
Kubernetes入門

Kubernetes Manifest

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25.4
        ports:
        - containerPort: 80
  • Kubernetes のオブジェクト(例: コンテナ)は Kubernetes Manifest で記述します
  • Manifest は YAML ファイル で、どのオブジェクトを、どう設定し、どこに スケジュールするか等を記述します
  • Manifest は 宣言的 です。すなわち、求める 状態(何をしたいか)を記述します
  • 命令的 ではありません。つまり、どう実現するか は記述しません
Kubernetes入門

kubectl

kubectl と Kubernetes

  • kubectl は Kubernetes と対話するコマンドラインツールです
  • kubectl には多くのコマンドとオプションがあります
  • kubectl は Manifest を読み、API 経由で Kubernetes に送信し、 望む状態を達成するために何をすべきかを Kubernetes が計算します
  • 発音は「キューブ・カドル」
Kubernetes入門

演習に進みましょう!

Kubernetes入門

Preparing Video For Download...