O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Kubernetes雑にまとめてみた 2020年8月版

994 visualizações

Publicada em

Kubernetesを知らない人向けにざっくり説明するとき用の資料

Publicada em: Engenharia

Kubernetes雑にまとめてみた 2020年8月版

  1. 1. Kubernetesを 超雑にまとめてみました ⽇本仮想化技術株式会社 2020年8⽉21⽇発⾏
  2. 2. この資料について • この資料は、以下で公開されている資料のアップデート版です。 • https://www.slideshare.net/VirtualTech-JP/kubernetes- 201912
  3. 3. Kubernetesとは • アプリケーションをコンテナー上で良い感じに動かすツール • コンピュート、ネットワーク、ストレージリソースを提供する インフラ • よく知られている機能 • アプリのスケール • オートヒーリング • ロールアウト/ロールバック • L4/L7ロードバランス 3
  4. 4. Podとは • Kubernetesにおけるアプリケーション実行の単位 • 一つのPodには単一もしくは複数のコンテナーが稼働可能
  5. 5. CRI • コンテナーランタイムインターフェイス • その名の通り、コンテナーを作るために使われる • 例えば • Docker • Containerd • Kata Container • CRI-O 5
  6. 6. CNI • コンテナーネットワークインターフェイス • ネットワーク関連を提供するために使われる • 例えば • Flannel • Calico • Canal • Cilium • Tungsten Fabric • 他、色々 6
  7. 7. CSI • コンテナーストレージインターフェイス • 任意のストレージシステムをコンテナワークロードに公開する ために使われる • CSIはKubernetes v1.9でアルファ、v1.10でベータ、 Kubernetes v1.13でGA • 以前はFlexVolume DriverによってKubernetesとストレージを 連携していた 7
  8. 8. Kubernetesで使えるストレージ • 例えば • Amazon EBS • vSphere Volume • Cinder • NFS • iSCSI • FC 8 • Ceph • Cephfs • GlasterFS • …など • 一覧はこちら
  9. 9. 割と使いやすいストレージ Rook • オープンソースで開発 • CNCFのプロジェクト • K8sでストレージを簡単に利用 • Ceph • EdgeFS • Minio • NFS 9
  10. 10. 割と使いやすいストレージ Longhorn • 軽量で高信頼性の分散型ブロックストレージ • 元々はRancher Labsによって開発 • 現在はCNCFのプロジェクトとして開発 • 主な特徴 • 複数ノードとデータセンター間でブロックス トレージを複製して可用性を確保 • NFSやAWS S3などにバックアップ • ボリュームの定期的なスナップショット • バックアップからボリュームを復元 10
  11. 11. ストレージ周りをざっくり • Storage Class • ストレージ • Persistent Volumes • 永続化ボリューム • Dynamic Volume Provisioning • 動的なプロビジョニング • 対応していないストレージもある 11 Storage Class PV PVC Pod PV PVC
  12. 12. Kubernetesとインストーラー Kubernetesをデプロイするツールの紹介 12
  13. 13. Minikube • Kubernetesをラップトップなどで環境を作ってお試しするもの • 1バイナリ、Windows、macOS、Linuxに対応 • コマンドを使っていくつかの主要機能を追加できる • (VMで動かす場合に)VT-xもしくはAMD-vが必要 13
  14. 14. Minishift • OpenShiftをラップトップなどで環境を作ってお試しするもの • 動作可能なのはOpenShift 3.xまでなので注意 • VirtulBoxか以下の導入が必要 • Linux…KVM • macOS…xhyve or hyperkit • Windows…Hyper-V 14
  15. 15. CodeReady Containers(CRC) • OpenShift 4.xを手軽に(?)環境を作ってお試しするもの • 無料で使える • CRCインストーラーのダウンロードにRed Hatアカウントが必要 15
  16. 16. Kubeadm • Kubernetesクラスターを構築する公式のツール • コンテナーランタイムを予めインストールしたうえで、インス トーラーを実行 • CNIを追加するとKubernetes環境が完成 • 単体から複数ノードの構成に対応 • 高可用構成(HA)はちょっと面倒 16
  17. 17. Kubespray • Kubernetesクラスターを構築するツール • Ansibleベース • OSと公開鍵認証できるノードを用意するだけ • Kubernetesクラスターの作成から • ネットワークプラグインの導入も自動 • 高可用構成も可能 • ノードの増減、クラスターの破棄も可能 17
  18. 18. microk8s • カノニカルが作ったKubernetesを簡単にセットアップするパッ ケージ • Snapパッケージで提供 • マイナーバージョンは自動更新 • いくつかの主要機能を追加可能 • クラスター機能も実装 • 単体から1Master、複数Workerの構成まで • ラズパイ4でK8sクラスターを稼働可能 18
  19. 19. Juju • カノニカルが提供するアプリケーションのオーケストレーショ ンツール • マルチクラウド対応 • Kubernetes, OpenStack など、高可用デプロイまでサポート • GUI/CLIが存在する • アプリケーションをカタログから選んでデプロイ 19
  20. 20. Rancher • Rancher Labsが提供するツール • Dockerホストを用意して指示されたコマンドを実行するだけで Kubernetes環境を作れる • etcd、master、workerノードを分けた構成が可能 • RancherのDashboardは便利 • 複数のKubernetesを管理 • CNIを選択可能(Canal,Flannel,Calico,Weave Net) • アプリケーションをカタログから選んでデプロイ 20
  21. 21. k3s • Rancher Labsが提供するツール • 1バイナリーでKubernetesを構築 • クラスター化も対応 • マルチアーキテクチャー(amd64,armhf,arm64 etc) • Linuxをインストールして1行コマンドを打つだけ • クラスターもクレデンシャルを含めて1行コマンドを打つだけ • IoT機器でも動かせるくらい軽量(512MBメモリーでも動作) 21
  22. 22. k3OS • Rancher Labsが提供するツール • k3sが動くMinimal LinuxのLiveイメージを提供 • インストールも可能 • Alpine Linuxベース(らしい) 22
  23. 23. k3d • Rancher Labsが提供するツール • k3sをDockerコンテナー上で動かす • 必要なもの: Docker、wgetかcurl 23
  24. 24. rke • Rancher Labsが提供するCLIツール • Dockerホストを用意してrkeを使ってKubernetesをデプロイ • 必要に応じてRancherにクラスターを登録 • CNIを選択可能(Flannel,Calico,Canal,Weave Net) 24
  25. 25. Docker for Windows/Mac • DockerのWindows版やmacOS版にはKubernetesをデプロイす る機能が提供されている • Windows版はHyper-Vが必要(なのでPro Edition以上が必要) • macOS版は2012年以降のMacであれば特に前提条件なし 25
  26. 26. (K8s関連ではないけど)Multipassの紹介 • WindowsやmacOSで簡単にUbuntuインスタンスを作って使え るCLIツール • コレ+snapパッケージを使って、KubernetesやOpenStackなど もセットアップできます • microstack • microk8s 27
  27. 27. インストールしてみよう Minikube Microk8s K3sの使い方をざっくり紹介 28
  28. 28. Minikubeの場合 • minikubeをダウンロード • minikube start • 詳細は以下のドキュメントサイトへ • Kubernetes - Minikubeのドキュメント • Minikubeドキュメントサイト 29
  29. 29. Minikube補足 クラスターの作成例 • バージョンを指定 • minikube start --kubernetes-version=v1.18.8 • CRIを指定 • minikube start --container-runtime=containerd • CNIを指定 • minikube start --cni=flannel --extra- config=kubeadm.pod-network-cidr=10.244.0.0/16 30
  30. 30. Minikube補足 アクセス周り • クラスターにCLIアクセス • kubectl get nodes • クラスターにアクセス • minikube ssh • クラスターの停止 • minikube stop • クラスターの削除 • minikube stop 31
  31. 31. Microk8sの場合 • snapdをインストール • snap install microk8s --classic --stable • sudo microk8s status • 詳細は公式サイトへ 32
  32. 32. k3sの場合 • Linuxをインストール • curl -sfL https://get.k3s.io | sh - • k3s kubectl get node • 詳細は公式サイトへ 33
  33. 33. 動かしてみよう 34
  34. 34. チュートリアル • 「Kubernetesの基本を学ぶ」の項目2から実施してみよう 35

×