Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kubernetes雑にまとめてみた 2019年12月版

885 views

Published on

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

Published in: Engineering
  • Be the first to comment

Kubernetes雑にまとめてみた 2019年12月版

  1. 1. Kubernetesを 超雑にまとめてみました 2019年12⽉19⽇発⾏
  2. 2. Kubernetesとは • アプリケーションをコンテナー上で良い感じに動かすツール • コンピュート、ネットワーク、ストレージリソースを提供 • よく知られている機能 • アプリのスケール • ローリングアップデート • L4/L7ロードバランス 2
  3. 3. CRI • コンテナーランタイムインターフェイス • その名の通り、コンテナーを作るために使われる • 例えば • Docker • Containerd • Kata Container • CRI-O 3
  4. 4. CNI • コンテナーネットワークインターフェイス • ネットワーク関連を提供するために使われる • 例えば • Flannel • Calico • Canal • Cilium • Tungsten Fabric • 他、色々 4
  5. 5. CSI • コンテナーストレージインターフェイス • 任意のストレージシステムをコンテナワークロードに公開する ために使われる • CSIはKubernetes v1.9でアルファ、v1.10でベータ、 Kubernetes v1.13でGA • 以前はFlexVolume DriverによってKubernetesとストレージ を連携していた 5
  6. 6. Kubernetesで使えるストレージ • 例えば • Amazon EBS • vSphere Volume • Cinder • NFS • iSCSI • FC 6 • Ceph • Cephfs • GlasterFS • …など • 一覧はこちら
  7. 7. 割と使いやすいやつ • Rook • K8sでストレージを簡単に利用 • Ceph • EdgeFS • Minio • NFS 7
  8. 8. ストレージ周りをざっくり • Storage Class • ストレージ • Persistent Volumes • 永続化ボリューム • Dynamic Volume Provisioning • 動的なプロビジョニング • 対応していないストレージもある 8 Storage Class PV PVC Pod PV PVC
  9. 9. Kubernetesとインストーラー 9
  10. 10. Minikube • Kubernetesをラップトップなどで環境を作ってお試しするもの • 1バイナリ、Windows、macOS、Linuxに対応 • コマンドを使っていくつかの主要機能を追加できる • VT-xもしくはAMD-vが必要 10
  11. 11. Minishift • OpenShiftをラップトップなどで環境を作ってお試しするもの • 動作可能なのはOpenShift 3.xまでなので注意 • VirtulBoxか以下の導入が必要 • Linux…KVM+Driver • macOS…xhyve or hyperkit • Windows…Hyper-V 11
  12. 12. CodeReady Containers(CRC) • OpenShift 4.xを手軽に(?)環境を作ってお試しするもの • 無料で使える • CRCインストーラーのダウンロードにはRed Hatアカウントが必 要 12
  13. 13. Kubeadm • Kubernetesクラスターを構築するツール • コンテナーランタイムを予めインストールしたうえで、インス トーラーを実行 • CNIを追加するとKubernetes環境が完成 • クラスター化も可能 • HAはちょっと面倒 13
  14. 14. Conjure-up • カノニカルが作ったOpenStackとKubernetesを簡単にセット アップするパッケージ • Snapパッケージで提供 • ここ最近はOpenStackは「microstack」、Kubernetesは「 microk8s」を提供しているので、このプロジェクトの今後がど うなるかはわからない 14
  15. 15. microk8s • カノニカルが作ったKubernetesを簡単にセットアップするパッ ケージ • Snapパッケージで提供 • マイナーバージョンは自動更新 • コマンドを使っていくつかの主要機能を追加できる • クラスターも組める 15
  16. 16. Juju • カノニカルが提供するアプリケーションのオーケストレーショ ンツール • マルチクラウド対応 • Kubernetes、OpenStack etc…など高可用デプロイまでサポー ト • GUI/CLIが存在する • アプリケーションをカタログから選んでデプロイ 16
  17. 17. Rancher • Rancher Labが提供するツール • Dockerホストを用意して指示されたコマンドを実行するだけで Kubernetes環境を作れる • etcd、ctl、workerノードを分けた構成ができます • RancherのDashboardは便利 • 複数のKubernetesを管理 • CNIを選択可能(Flannel,Calico,Canal,Weave Net) • アプリケーションをカタログから選んでデプロイ 17
  18. 18. k3s • Rancher Labが提供するツール • 1バイナリーでKubernetesを構築 • クラスター化も対応 • マルチアーキテクチャー(amd64,armhf,arm64 etc) • Linuxをインストールして1行コマンドを打つだけ • クラスターもクレデンシャルを含めて1行コマンドを打つだけ • IoT機器でも動かせるくらい軽量(512MBメモリーでも動作) 18
  19. 19. k3OS • Rancher Labが提供するツール • k3sが動くMinimal LinuxのLiveイメージを提供 • インストールも可能 • Alpine Linuxベース(らしい) 19
  20. 20. k3d • Rancher Labが提供するツール • k3sをDockerコンテナー上で動かす • 必要なもの: Docker、wgetかcurl 20
  21. 21. rke • Rancher Labが提供するCLIツール • Dockerホストを用意してrkeを使ってKubernetesをデプロイ • 必要に応じてRancherにクラスターを登録 • CNIを選択可能(Flannel,Calico,Canal,Weave Net) 21
  22. 22. Docker for Windows/Mac • DockerのWindows版やmacOS版にはKubernetesをデプロイす る機能が提供されている • Windows版はHyper-Vが必要(なのでPro Edition以上が必要) • macOS版は特に前提条件なし 22
  23. 23. 他のソリューション • Kubernetesソリューションは各社色々用意されている • 一覧はこちら • https://kubernetes.io/docs/setup/ 23
  24. 24. (K8s関連ではないけど)Multipassの紹介 • WindowsやmacOSで簡単にUbuntuインスタンスを作って使え るCLIツール • コレ+snapパッケージを使って、KubernetesやOpenStackなど もセットアップできます • microstack • microk8s 24
  25. 25. インストールしてみよう 25
  26. 26. Minikubeの場合 • minikubeをダウンロード • minikube start • 詳細は公式サイトへ 26
  27. 27. Microk8sの場合 • snapdをインストール • snap install microk8s --classic --stable • sudo microk8s.status • 詳細は公式サイトへ 27
  28. 28. k3sの場合 • Linuxをインストール • curl -sfL https://get.k3s.io | sh - • k3s kubectl get node • 詳細は公式サイトへ 28
  29. 29. 動かしてみよう 29
  30. 30. チュートリアル • 「Kubernetesの基本を学ぶ」の項目2から実施してみよう 30

×