Mais conteúdo relacionado
Semelhante a 自宅k8s/vSphere入門 (20)
Mais de 富士通クラウドテクノロジーズ株式会社 (20)
自宅k8s/vSphere入門
- 5. 自宅インフラの紹介
Intel NUC NUC7i3BNH x 2
Crucial ノートPC用メモリ PC4-25600(DDR4-3200) 32GB x 1
Crucial ノートPC用メモリ PC4-19200(DDR4-2400) 16GB x 1
Western Digital SSD WD Blue NVMe M.2 PCIe Gen3×4 1TB x 1
Western Digital SSD WD Blue SATA 2.5インチ 500GB x 1 (ブート領域)
StarTech.com USB 3.0 - ギガビットイーサネットLANアダプタ x 1
Synology DS416slim
Cisco Catalyst 2960L-8TS-LL
Ubiquiti Networks EdgeRouter X
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
- 6. 自宅インフラの紹介
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
Intel NUC
EdgeRouter
Catalyst 2960L
USB LANア
ダプタ
DS416slim
オープンラック
- 7. 自宅インフラの紹介
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
EdgeRouter
Internet
Home Lab
Home LAN
AP
Catalyst 2960L
NUC Synology
PC NUC
L2 Swtich
trunk port
access port
- 8. 自宅インフラの紹介
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
Internet
Home Lab
Home LAN
NUC Synology
PC NUC
vlan1
vlan10
vlan20
VM VM
EdgeRouter
(DHCP,DNS)
vlan30
- 11. 自宅インフラの設計のポイント
Ubiquiti Networks EdgeRouter X
VLANが利用できる
vCenterやESXiの管理ネットワークと、仮想マシンネットワークを分離できる
DHCP、DNSが利用できる
vCenterの構築時にDNSが必要となるため、クラスタ外に持たせたかった
DHCPは仮想マシンを利用するためにあると便利。VyOSで構築してもよいが、クラスタ外にあると管理が楽
VyOSに似た操作ができ、機能が豊富
homelabでよく使われている
ファンレス
Cisco Catalyst 2960L
中小企業向け
VLAN、ジャンボフレームが利用可能
IOSのコマンドがたたける
ファンレス
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
- 12. 自宅インフラの設計のポイント
Intel NUC NUC7i3BNH
小型で設置場所に困らない
TDPが15Wで電気代を安くできる
メモリが公式では32GBが上限だが、64GBを認識する
M.2と2.5インチのドライブが利用できる
Intel NUCはVMwareのhomelabでよく使われており、動作の安定性が高い
NICを増やしたい場合は、USB NICを利用する
ファンはあるが静か
NUC7i5BNHはファンの音がうるさいというレビューあり
Synology DS416slim
homelabでよく使われているSynology。1GbEが2ポートついている
DS416slimはファンと音がうるさくあまり利用しなくなった
以前はNFSのデータストアとして利用
iSCSIやVAAI、マルチパスも使えるすごいやつ
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
- 13. 自宅インフラの変遷
さくらVPSを触る
PCサーバー PRIMERGY を一台購入
VMware Workstationをインストール
ESXiをインストールする
Intel NUCを一台購入
ESXiをインストールする
EdgeRouter、Catalyst 2960L、もう一台Intel NUC、Synologyを購入
HAやvMotionができる構成に
メモリ増強、NVMe 1TBを追加
より検証しやすい構成に
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
- 16. ネットワーク構成
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
Internet
Home Lab
Home LAN
ESXi
PC ESXi
vlan1
vlan10
vlan20
VM VM
EdgeRouter
(DHCP,DNS)
vlan30
vCenter
• vCenterのインストール前に、
DNSにvCenterとESXiのFQDNを
登録しておく
• 仮想マシン用のVLANにはDHCP
でIPアドレスを払い出すようにし
ておくと便利
- 17. vSphereのライセンス
vCenter、ESXiの評価モードであれば60日間は利用できる
再インストールが手間な場合は、ライセンスが必要
ライセンスの入手方法は2つ
VMUG Advnatage 評価ライセンス
2023/2時点
VMUG Member + Advantage Single User Subscription (1 year) - $200 USD
VMUG Member + Advantage Single User Subscription (2 years) - $360 USD
VMUG Member + Advantage Single User Subscription (3 years) - $510 USD
クーポンがあり安くなることも
vExpertを取得する
ライセンスの有効期限は1年間
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
- 18. Intel NUCの構成について
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
M.2 NVMe 1T
データ領域
2.5インチ SSD 500GB
ブート領域
Intel NUC
以前はUSBメモリをブート領域として利用し
ていた
ESXi 7.0からは、USBフラッシュメモリブー
トの非推奨化されたため、2.5インチのSSDを
ブート領域として使用
ブート領域がデフォルトで138GB消費される
ため、検証環境のためサイズを節約するため、
ESXiのインストール時にサイズを小さく指定
- 19. ストレージの構成について
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
NVMeをデータ領域として、シーケンシャルの書き込みが3000MB/s程度あり高性能。可用
性とトレードオフ。NFSは1GbEの帯域の上限にあたり、100MB/sしかでない。
NFSを使用しない
HAはできない
vMotionは共有ストレージを利用しないshared nothing vMotionを利用可能
DRSは使用しないので、vCLSは無効にしておく
M.2 NVMe 1T
データ領域
Intel NUC
M.2 NVMe 1T
データ領域
Intel NUC
Synology
VM VM
SSD
データ領域
1GbEで接続
IOは低速
IOは高速 VM
vMotionはOK
- 20. 仮想マシンのネットワーク
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
VM間のネットワーク速度の違いも考慮
検証したい内容によって、クラスタは同一Intel NUCに閉じると、10Gbps相当の速度で疎
通可能
Intel NUC間は1Gbps
Intel NUC
vDS
Intel NUC
vDS
vCenter VM VM VM VM
Catalyst 2960L
1Gbps
10Gbps
- 24. Kubernetesクラスタの構成
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
実行
マシン
PC
Control
Plane 1
Worker
Node 1
Worker
Node 2
VS Code
VS Code
Remote
Development Kubenetesインストール
Kubespray
実行環境
KubesprayのKubernetesクラスタのインストールイメージ
YAMLファイルが大量に登場するため、VS Codeでの操作がおすすめ
テンプレート
VM
クローン
- 25. Kubernetesクラスタの構成
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
Kubernetesクラスタと仮想マシンの配置
同一Intel NUC上にKubernetesクラスタを構築するとクローンや処理が高速
Intel NUC
vCenter
Control
Plane 1
vDS
vDS
Intel NUC
NVMe datastore
NVMe datastore
Control
Plane 2
Control
Plane 3
Worker
Node 1
Worker
Node 2
実行
マシン
テンプレート
VM
Kubenetes
クラスタ
- 27. テンプレートの用意
Ubuntu 22.04のVMテンプレートを用意
vSphere7.0U3からcloud-initを使った仮想マシンのカスタマイズがサポート
metadataを使えば、IPアドレスの設定からssh鍵の設定も可能
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
instance-id: kube-master01
local-hostname: kube-master01
hostname: kube-master01
network:
version: 2
ethernets:
ens192:
dhcp4: false
addresses:
- 10.0.50.30/24
gateway4: 10.0.50.1
nameservers:
addresses:
- 10.0.50.1
#cloud-config
users:
- default
- name: username
ssh_authorized_keys: “”
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo, wheel
lock_passwd: true
shell: /bin/bash
metadata-kube-master01.yaml userdata-kube.yaml
- 28. テンプレートVMの展開
Control Planeやworker nodeの仮想マシンのデプロイはgovcが便利
テンプレートVMからクローン作成、cloud-initのmetadataの投入、電源オンを複
数VMまとめて実行。
Controle planeとworkerノードは1vCPU、4GBメモリ、100GB Disk
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
$ for VMNAME in kube-master0{1..3}; do
echo ${VMNAME}
export VM="/Datacenter/vm/path/to/$VMNAME"
govc vm.clone -vm template-vm -on=false -folder="/Datacenter/vm/k8s" $VMNAME
export METADATA=$(gzip -c9 <metadata-${VMNAME}.yaml | { base64 -w0 2>/dev/null || base64; })
USERDATA=$(gzip -c9 <userdata-kube.yaml | { base64 -w0 2>/dev/null || base64; })
govc vm.change -vm "${VM}" -e guestinfo.metadata="${METADATA}" -e
guestinfo.metadata.encoding="gzip+base64" -e guestinfo.userdata="${USERDATA}" -e
guestinfo.userdata.encoding="gzip+base64"
govc vm.power -on "${VM}"
done
- 29. Kubernetesクラスタのインストール
hosts.ymlファイルを作成し、コマンドを実行
だいたい30分ぐらいでKubernetesクラスタ構築が完了
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
$ ansible-playbook -i inventory/mycluster/hosts.yml --become --become-user=root cluster.yml
$ export KUBECONFIG=$PWD/kubespray-do.conf
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kube-master01 Ready control-plane 23h v1.25.5
kube-master02 Ready control-plane 23h v1.25.5
kube-master03 Ready control-plane 23h v1.25.5
kube-worker01 Ready <none> 23h v1.25.5
kube-worker02 Ready <none> 23h v1.25.5
- 33. Ingressの名前解決について
© 2023 FUJITSU CLOUD TECHNOLOGIES LIMITED
実行
マシン
PC
Control
Plane 1
Worker
Node 1
Worker
Node 2
Serivce
nginx-ingress-controller
Load Balancer IP
10.0.50.201
Serivce
nginx-server
nginx.kube.home.labへのhttpsアクセス
EdgeRouter
DNS フォワーダ
名前解決
Serivce
k8s_gateway
Load Balancer IP
10.0.50.202
Pod
k8s_gateway
.kube.home.labの問い合わせ
CoreDNSのk8s_gatewayプラグインを使って、DNSサーバーへの
連携のイメージ
Pod
nginx-server