今さら聞けない人のための
K8s超入門
Big Sur対応版
日本仮想化技術株式会社
代表取締役社長兼CEO
宮原 徹(@tmiyahar)
http://VirtualTech.jp
自己紹介
• 本名:宮原 徹
• 1972年1月 神奈川県生まれ
• 1994年3月 中央大学法学部法律学科卒業
• 1994年4月 日本オラクル株式会社入社
– PCサーバ向けRDBMS製品マーケティングに従事
– Linux版Oracle8の日本市場向け出荷に貢献
• 2000年3月 株式会社デジタルデザイン 東京支社長および株
式会社アクアリウムコンピューター 代表取締役社長に就任
– 2000年6月 (株)デジタルデザイン、ナスダック・ジャパン上場(4764)
• 2001年1月 株式会社びぎねっと 設立
• 2006年12月 日本仮想化技術株式会社 設立
• 2008年10月 IPA「日本OSS貢献者賞」受賞
• 2009年10月 日中韓OSSアワード 「特別貢献賞」受賞
• ガンダム勉強会主宰・好きなモビルスーツはアッガイ
2
3
『Software Desgin』で
「宮原徹のオープンソース放浪記」
5年間60回 連載してました
2021年2月号で無事終了!
日本仮想化技術株式会社 概要
• 社名:日本仮想化技術株式会社
– 英語名:VirtualTech Japan Inc.
– 略称:日本仮想化技術/VTJ
• 設立:2006年12月
• 資本金:3,000万円
• 売上高:2億1235万円(2020年7月期)
• 本社:東京都渋谷区渋谷1-8-1
• 取締役:宮原 徹(代表取締役社長兼CEO)
• 伊藤 宏通(取締役CTO)
• スタッフ:8名(うち、6名が仮想化技術専門エンジニアです)
• URL:http://VirtualTech.jp/
• 仮想化技術に関する研究および開発
– 仮想化技術に関する各種調査
– 仮想化技術を導入したシステムの構築・運用サポート
– OpenStackの導入支援・新規機能開発・運用サポート
– 自動化・DevOps支援
ベンダーニュートラルな
独立系仮想化技術の
エキスパート集団
4
主な業務内容
• 仮想化技術を活かしたコンサルティング
– オンプレからクラウドまで
– DevOps案件のOpsとして運用・IaC開発
• 新技術のコンサルティング・PoC
– 新しい仮想化技術の活用に関する調査
– PoCによる実証検証
– 5G、MEC、GPU、コンテナなど幅広く
5
本日のアジェンダ
1. Kubernetes (K8s )とは
2. K8sの導入(Minikubeを使って)
3. K8sを動かしてみる
4. K8sの仕組みを少し探ってみる
• コンテナオーケストレーションツールであるKubernetes (K8s)
の使用方法を講師なりに勉強して仕組みを理解できるように
解説します
• 各種情報を参照すれば(私でも)分かるレベルの説明は省略
しています
• 説明自体もかなりザックリです
• 8月に弊社から出した『Kubernetes雑にまとめてみた 2020年8
月版』も合わせてご参照ください
– https://www.slideshare.net/VirtualTech-JP/kubernetes-20208
6
Kubernetes (K8s)とは
7
Kubernetes(K8s)とは
• 『Kubernetes (K8s)は、デプロイやスケーリ
ングを自動化したり、コンテナ化されたアプ
リケーションを管理したりするための、オー
プンソースのシステムです。』
• デプロイ:アプリケーションを配備すること。
ここではアプリケーションが実行されるコン
テナを動作させること
• スケーリング:複数コンテナを実行すること
8
※ https://kubernetes.io/ja/
Podとは
• Podは、アプリケーションのコンテナ(いくつか
の場合においては複数のコンテナ)、ストレー
ジリソース、ユニークなネットワークIP、および
コンテナの実行方法を管理するオプションを
カプセル化します。
• Podはデプロイメントの単位、すなわち
Kubernetesのアプリケーションの単一インスタ
ンス で、単一のコンテナ または密結合なリ
ソースを共有する少数のコンテナで構成され
る場合があります。
9
※ https://kubernetes.io/ja/docs/concepts/workloads/pods/pod-overview/
なぜK8s?
• コンテナオーケストレーション
– 複数のコンテナ(その他ネットワークなど)を一元
管理したい
• 自動回復
– デプロイしたコンテナが障害などで停止した時に
コンテナを再実行する
• CI/CD
– 素早くデプロイできるコンテナ環境
• マイクロサービス化
– APIのアクセス先をコンテナで構築
10
K8sの導入(Minikubeを使って)
11
K8sを使うには
A) クラウド上のサービスを使う
– 実は一番現実的?
– 色々なサービスがある
B) 自分で構築する
– 仕組みをしっかりと理解したいならコレ
– 思ったよりも情報が少ない
C) Minukubeを使う
– コマンド練習用
– VirtualBoxに入れたり、Katacoda使ったり
• Katacoda:ブラウザで試せる学習環境
12
VirtualBoxでMinikubeを動かす
• 公式ドキュメントの手順に従って導入
– https://kubernetes.io/ja/docs/tasks/tools/install-minikube/
• 使用環境:macOS Big Sur(11.2.1)
– 標準シェルがzshなのでプロンプトは%
– MinikubeはWindows、Linuxでも導入可能ですが、手順や環境、本資料
での記述が一部異なりますのでご注意ください
1. VirtualBoxのインストール
– https://www.virtualbox.org/
2. Homebrewのインストール
– https://brew.sh/index_ja
3. Minikubeのインストール
– % brew install minikube
– Minikubeとkubectlコマンドがインストールされる
13
Minikubeの起動
1. minikubeコマンドで起動
– Podを実行するハイパーバイザーにVirtualBox
を指定
– % minikube start --driver=virtualbox
2. 起動完了までに時間がかかる
– ISOイメージやKubernetesもダウンロード
– VMが作成され、Kubernetesをインストール
3. 起動完了したら状態を確認
– % minikube status
14
※--driverオプションは以前の--vm-driverオプション
Minikubeのインストールと起動
15
K8sを動かしてみる
16
ダッシュボードを使う
• WebブラウザでKubernetesの状態確認や
操作が行えます
• コマンドを実行するとWebブラウザで自動
的にアクセス
– % minikube dashboard &
17
ダッシュボード画面
18
簡単なPodを起動
1. Podの起動
– % kubectl create deployment hello-minikube
--image=k8s.gcr.io/echoserver:1.10
2. Podをアクセス可能にする
– % kubectl expose deployment hello-minikube --
type=NodePort --port=8080
3. アクセス用のURLを取得する
– % minikube service hello-minikube --url
4. 取得したURLでPodにアクセス
– 例:http://192.168.99.100:30258
19
Podにアクセス
20
Kubernetesオブジェクト
• Deployment
– Pod(≒コンテナ)の状態を宣言したオブジェクト
– Deploymentをcreateしただけでは外部からは
アクセスできない(内部からはアクセスできる)
• Service
– Podのアプリケーションを外部にサービスとし
て公開するオブジェクト
21
Kubernetesオブジェクト
基本オブジェクト
• Pod
• Service
• Volume
• Namespace
上位オブジェクト
• Deployment
• DaemonSet
• StatefulSet
• ReplicaSet
• Job
22
上位オブジェクトの説明:コントローラーに依存して基本オブジェクトを構築し、
追加の機能と便利な機能を提供する高レベルの抽象化も含まれています
https://kubernetes.io/ja/docs/concepts/#kubernetes-objects
サービスの情報取得
• サービス一覧を取得
– % kubectl get svc
• サービス詳細を取得
– % kubectl describe svc
• サービスのエンドポイントを取得
– % kubectl get ep
23
参考
スケールさせる
• Podに含まれる実行コンテナの数を増やす
– % kubectl scale deployment hello-minikube
--replicas=2
– ダッシュボードからも実行可能
• Podの状態を確認
– % kubectl get pods -o wide
– % kubectl describe pods
• コンテナ数を減らして、確認
– % kubectl scale deployment hello-minikube
--replicas=1
– % kubectl get pods -o wide
24
スケールさせた状態
25
Pod内に
コンテナが2つ
Deplymentで
スケールできる
仕組みを少し探ってみる
26
MinikubeのVMにSSH
• minikubeコマンドでログイン可能
– % minikube ssh
• IPアドレスを調べてログインする場合
– % minikube ip
– % ssh docker@IPアドレス
– パスワードは tcuser
27
Minikubeのネットワークは?
• ホストからVMへの接続:VirtualBoxのホス
トオンリーネットワークを使用
– VM初回起動時に作成される
– ホストが192.168.99.1、VMが192.168.99.100〜
• VMからコンテナへの接続:Dockerの仮想
ブリッジ
– 仮想ブリッジdocker0は172.l7.0.1
– コンテナは172.17.0.x
28
参考
Minikubeのネットワーク構成図
29
ホスト
VM
vboxnet1
ブラウザ
docker0
Dockerコンテナ
eth0
eth1
192.168.99.1
192.168.99.100:31529
DNAT
172.17.0.1
172.17.0.5:8080
Dockerのネットワーク構成例
30
Dockerコンテナ
eth0
eth0
docker0
veth veth
Dockerコンテナ
eth0
仮想的に直結
ブリッジ接続
NAPT接続(IPマスカレードやポート転送)
外部
参考
※「今さら聞けない人のためのDocker超入門」より
NodePortのiptables設定
• NodePortで起動した場合のiptables設定
– % kubectl expose deployment hello-minikube --
type=NodePort --port=8080
– iptables-saveの前後で追加されるルールから抜粋
1. -A PREROUTING -j KUBE-SERVICES
2. -A KUBE-SERVICES --dst-type LOCAL -j KUBE-
NODEPORTS
3. -A KUBE-NODEPORTS -p tcp --dport 31529 -j KUBE-
SVC-HELLOMINIKUBE
4. -A KUBE-SVC-HELLOMINIKUBE -j KUBE-SEP-
HELLOMINIKUBE
5. -A KUBE-SEP-HELLOMINIKUBE -p tcp -j DNAT --to-
destination 172.17.0.5:8080
31
※HELLOMINIKUBEは実際にはユニークID
スケールした場合
32
ホスト
VM
vboxnet1
ブラウザ
docker0
Dockerコンテナ
eth0
Dockerコンテナ
eth0
eth1
192.168.99.1
192.168.99.100:31529
DNAT
172.17.0.1
172.17.0.6:8080
172.17.0.5:8080
アクセスを振り分け
スケール時のiptables設定
iptablesの設定が変更され、Pod内の複数コンテナに
振り分けされるようになる
1. -A KUBE-SVC-HELLOMINIKUBE --mode
random --probability 0.50000000000 -j KUBE-
SEP-HELLOMINIKUBE5
2. -A KUBE-SVC-HELLOMINIKUBE -j KUBE-
SEP-HELLOMINIKUBE6
3. -A KUBE-SEP-HELLOMINIKUBE5 -p tcp -j
DNAT --to-destination 172.17.0.5:8080
4. -A KUBE-SEP-HELLOMINIKUBE6 -p tcp -j
DNAT --to-destination 172.17.0.6:8080
33
※HELLOMINIKUBExは実際にはユニークID
Minikubeの停止と削除
• Minikubeのノード停止
– % minikube stop
• MinikubeのノードVMの削除
– % minikube delete
• K8sがバージョンアップした際
– 起動時に警告が出る
– HomeBrew側のminikubeのバージョンアップ
– Minikubeそのもののバージョンアップ
– なんか動作が微妙な感じがするので、クリーンイ
ンストールした方が良さそう
34
HomeBrewでMinikubeを削除
minikube stopとdeleteをした状態で
• インストールされているものの確認
– % brew list
• インストールされているものの削除例
– % brew uninstall kubernetes-cli minikube
• キャッシュのクリーンナップ
– % brew cleanup --prune=all
35
今後の課題
• 環境を色々と変えてみる
– minikube startのオプションで変更可能
– Kubernetesのバージョンの変更
– ネットワークの変更(CNI)
– コンテナランタイムの変更(--driver)
– リソース量(CPU・メモリ)の変更
• アプリケーションの実行
– 公式のドキュメントにもあります
• 使用していない機能の利用
– ボリューム
• 複数ノードの構成
– Minikubeではできない
– K3sとかMicroK8sとか
36
個人的な課題
• Raspberry Pi 4クラスタで動かす
37
Raspberry Pi 4クラスタ
4GB×1+8GB×3
LED冷却ファン装備
Raspberry Pi 4でやってみた
• Raspberry Pi OSをインストール
• ARM用Dockerをインストール
• Minikubeをインストール
• 一応動いた、っぽい?
• Macで動作している状況と勝手が違う
Raspberry Piで動かすには研究が必要
38
ありがとうございました
39

More Related Content

PDF
今すぐ始める!Ubuntu入門
PPTX
今さら聞けない人のためのK8s超入門 Big Sur対応版
PPTX
今さら聞けない人のための K8s超入門 Big Sur対応版 CNDO2021 ショートバージョン
PPTX
今さら聞けない人のためのgit超入門
PPTX
今さら聞けない人のための K8s 超入門 Big Sur 対応版
PDF
今すぐ始める!Ubuntu入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのK8s超入門
今すぐ始める!Ubuntu入門
今さら聞けない人のためのK8s超入門 Big Sur対応版
今さら聞けない人のための K8s超入門 Big Sur対応版 CNDO2021 ショートバージョン
今さら聞けない人のためのgit超入門
今さら聞けない人のための K8s 超入門 Big Sur 対応版
今すぐ始める!Ubuntu入門
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのK8s超入門

What's hot (20)

PPTX
今さら聞けない人のための K8s超入門 Big Sur対応版 20210305
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
使ってわかった!現場担当者が語るOpenStack運用管理の課題 - OpenStack最新情報セミナー 2015年2月
PPTX
今さら聞けない人のためのK8s超入門 Big Sur対応版
PPTX
OpenStackコミュニティに対する取り組み - OpenStack最新情報セミナー 2016年5月
PPTX
今さら聞けない人のためのGit超入門 2020/12/19
PPTX
OpenStack Neutron プロジェクトから見たソフトウェアスイッチ動向
PPTX
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
PPTX
今さら聞けない人のためのDocker超入門
PPTX
今さら聞けない人のためのgit超入門
PPTX
Summit前にやることTODO
PPTX
今さら聞けない人のためのK8s超入門
PPTX
今さら聞けない人のためのGit超入門 GitLab 14対応版
PPTX
OpenStackで始めるクラウド環境構築入門 Havana&DevStack編
PPTX
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
PPTX
OSSコミッタの生活とその必要性
PPTX
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
PPTX
OpenStack開発のいろはの「い」
PPTX
今さら聞けない人のためのK8s超入門
PDF
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
今さら聞けない人のための K8s超入門 Big Sur対応版 20210305
今さら聞けない人のためのDevOps超入門
使ってわかった!現場担当者が語るOpenStack運用管理の課題 - OpenStack最新情報セミナー 2015年2月
今さら聞けない人のためのK8s超入門 Big Sur対応版
OpenStackコミュニティに対する取り組み - OpenStack最新情報セミナー 2016年5月
今さら聞けない人のためのGit超入門 2020/12/19
OpenStack Neutron プロジェクトから見たソフトウェアスイッチ動向
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのgit超入門
Summit前にやることTODO
今さら聞けない人のためのK8s超入門
今さら聞けない人のためのGit超入門 GitLab 14対応版
OpenStackで始めるクラウド環境構築入門 Havana&DevStack編
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
OSSコミッタの生活とその必要性
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
OpenStack開発のいろはの「い」
今さら聞けない人のためのK8s超入門
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
Ad

Similar to 今さら聞けない人のための K8s超入門 Big Sur対応版 (20)

PPTX
今さら聞けない人のためのKubernetes超入門
PPTX
今さら聞けない人のためのKubernetes超入門 ニフクラエンジニアミートアップ版
PPTX
今さら聞けない人のためのGit超入門
PPTX
今さら聞けない人のためのDevOps超入門 2025/2/20 OSC2025 Tokyp/Spring
PPTX
今さら聞けない人のためのDevOps超入門 OSC2024 Online/Fall版
PPTX
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
いまさら聞けないDockerコンテナ超入門
PPTX
今さら聞けない人のためのgit超入門 OSC2018京都 資料
PPTX
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
PPTX
今さら聞けない人のためのGit超入門 OSC2018名古屋版
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
PDF
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
PPTX
今さら聞けない人のためのDevOps超入門
PDF
Aws privte20110406 arai
PPTX
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのKubernetes超入門
今さら聞けない人のためのKubernetes超入門 ニフクラエンジニアミートアップ版
今さら聞けない人のためのGit超入門
今さら聞けない人のためのDevOps超入門 2025/2/20 OSC2025 Tokyp/Spring
今さら聞けない人のためのDevOps超入門 OSC2024 Online/Fall版
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
今さら聞けない人のためのDevOps超入門
いまさら聞けないDockerコンテナ超入門
今さら聞けない人のためのgit超入門 OSC2018京都 資料
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
今さら聞けない人のためのDevOps超入門
Aws privte20110406 arai
今さら聞けない人のためのDevOps超入門
Ad

More from VirtualTech Japan Inc./Begi.net Inc. (20)

PPTX
爆速!DBチューニング超入門 〜DB性能の基礎とPG-Stromによる高速化〜 2025/2/21
PPTX
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
PPTX
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
PPTX
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
PPTX
今さら聞けない人のためのSSH超入門
PPTX
OSCのこれまでを振り返るとしたらこんな感じ?
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
PPTX
今さら聞けない人のためのDevOps超入門 ODC2023編
PPTX
DBチューニング超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
MIRACLE LINUX 9にAnsibleをインストールした話
PPTX
最近のOSCと今後について
PPTX
オープンソースカンファレンスへの参加のススメ
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
アウトドア超入門マシマシ版
PPTX
サーバー構築の基礎
爆速!DBチューニング超入門 〜DB性能の基礎とPG-Stromによる高速化〜 2025/2/21
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
今さら聞けない人のためのSSH超入門
OSCのこれまでを振り返るとしたらこんな感じ?
今さら聞けない人のためのDevOps超入門
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
今さら聞けない人のためのDevOps超入門 ODC2023編
DBチューニング超入門
今さら聞けない人のためのDevOps超入門
MIRACLE LINUX 9にAnsibleをインストールした話
最近のOSCと今後について
オープンソースカンファレンスへの参加のススメ
今さら聞けない人のためのDevOps超入門
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
アウトドア超入門マシマシ版
サーバー構築の基礎

今さら聞けない人のための K8s超入門 Big Sur対応版