Slide 1

Slide 1 text

Harvesterで始める自宅プライベートクラウド Tsuzu(@_tsuzu_) @ Kubernetes Meetup Tokyo #50 1

Slide 2

Slide 2 text

Who am I? Handle: Tsuzu GitHub: tsuzu Twitter: @_tsuzu_ Name: TSUHIYA Tsuzuki Like: Go/Kubernetes/cluster-api Hobby: RFA, Automation Games(ex. factorio) The Go gopher was designed by Renee French 2

Slide 3

Slide 3 text

Agenda Harvesterとは? Harvesterを支える技術 Harvester Pros/Cons まとめ 3

Slide 4

Slide 4 text

自宅でプライベートクラウドを作りたい →自宅でVM建てまくりたい 4

Slide 5

Slide 5 text

Harvesterとは? https://harvesterhci.io https://github.com/harvester/harvester Rancher Labsが開発する Hyper-converged Infrastructure を実現するソフトウェア Rancher LabsはSUSEに2020年に買収された 5

Slide 6

Slide 6 text

Hyper-converged infrastructure Hyperconverged infrastructure (HCI) is a software-defined IT infrastructure that virtualizes all of the elements of conventional "hardware-defined" systems. HCI includes, at a minimum, virtualized computing (a hypervisor), software-defined storage, and virtualized networking. ... are implemented virtually in software (at or via the hypervisor) rather than physically in hardware. VM、ストレージ、ネットワーク等がソフトウェアによって仮想的に実現 別途共有ストレージなどが必要なく物理サーバ1台から構築可能 Wikipedia(en) より引用 6

Slide 7

Slide 7 text

Harvesterとは? https://harvesterhci.io https://github.com/harvester/harvester Rancher Labsが開発する Hyper-converged Infrastructure を実現するソフトウェア Rancher LabsはSUSEに2020年に買収された OpenStackやVMware vSphereに(比較的)近い存在 VM管理機能、分散ブロックストレージを持つ 最新 v1.0.1(2022/04/27 現在) 7

Slide 8

Slide 8 text

Harvesterの仕組み https://docs.harvesterhci.io/v1.0/assets/architecture.svg 8

Slide 9

Slide 9 text

KubeVirtとは? https://kubevirt.io/ Kubernetes上のカスタムリソースとしてVMを管理 できるコントローラ 実装はQEMUのラッパー CNCF incubating project(2022/04/19~) https://www.cncf.io/blog/2022/04/19/kubevi rt-becomes-a-cncf-incubating-project/ 最新 v0.52.0 (2022/04/27現在) 9

Slide 10

Slide 10 text

KubeVirt Pros Kubernetesの資産が使える コントローラによるReconciliation Loop CNI: Container Network Interface CSI: Container Storage Interface コンテナ化していない/出来ないアプリケーションをKubernetes上で管理できる 10

Slide 11

Slide 11 text

Longhorn Rancher Labsが開発する分散ブロックストレージ CSI driverとして実装 https://longhorn.io/ https://github.com/longhorn/longhorn CNCF incubating project 最新 v1.2.4 (2022/04/27現在) 11

Slide 12

Slide 12 text

Harvesterの仕組み KubeVirt + Longhorn + ... multus: 複数のNIC及びCNIプラグインを併用するためのCNIプラグイン Prometheus/Grafana: 監視 kube-vip: Control Planeの冗長化 openSUSE Leap: メンテナンスコストが低いOS Web UI (Terraform Provider) 12

Slide 13

Slide 13 text

13

Slide 14

Slide 14 text

Harvester Pros 慣れ親しんだKubernetes(要出典) インストールが楽(ISO/PXEブート等で入れるだけで全て入る) 簡単に複数ノードのHAクラスタを構築 Kubernetesクラスタも簡単に構築 Rancher Kubernetes Engine cluster-api-provider-kubevirt(未検証) Web UIが便利 14

Slide 15

Slide 15 text

Harvester Cons リソース要求が大きすぎる(自宅的に) 機能のopt-outが出来ない 15

Slide 16

Slide 16 text

Spec requirements Type Requirements CPU x86_64 only. Hardware-assisted virtualization is required. 8-core processor minimum; 16-core or above preferred Memory 32 GB minimum, 64 GB or above preferred Disk Capacity 140 GB minimum, 500 GB or above preferred Disk Performance 5,000+ random IOPS per disk(SSD/NVMe). Management nodes (first 3 nodes) must be fast enough for Etcd. Network Card 1 Gbps Ethernet minimum, 10Gbps Ethernet recommended 16

Slide 17

Slide 17 text

セットアップ直後でも 17

Slide 18

Slide 18 text

Harvester Cons リソース要求が大きすぎる(自宅的に) 機能のopt-outが出来ない PrometheusやGrafanaも自動的にインストールされる 最悪インストール後にkubectl delete 18

Slide 19

Slide 19 text

まとめ KubeVirtでVMを起動できる環境が簡単に建てられる 分散ブロックストレージも監視もついてくる 必要リソースが大きめ(Intel NUCとかだと厳しい) 19

Slide 20

Slide 20 text

参考文献 https://docs.harvesterhci.io/v1.0/ https://kubevirt.io/user-guide/ https://github.com/k8snetworkplumbingwg/multus-cni 20

Slide 21

Slide 21 text

Appendix 21

Slide 22

Slide 22 text

↑めちゃおもろい SUSE: /ˈsʊːsʌ/ https://www.youtube.com/watch?v=nLdexZlVkAY 22