Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

1.103 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Ingenieurwesen

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

×