Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kubernetesクラスタを組む
Search
katsunori nakajima
April 17, 2021
Programming
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetesクラスタを組む
Kubernetesクラスタを組む
katsunori nakajima
April 17, 2021
More Decks by katsunori nakajima
See All by katsunori nakajima
オリジナルのKubectlを作る
karosuwindam
0
430
Other Decks in Programming
See All in Programming
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
450
Intent as Code
shoppingjaws
6
980
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
190
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
320
Security issues being discussed on Web Platforms
petamoriken
0
880
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.3k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
6
1.8k
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
160
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
120
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
120
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
780
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
790
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Evolving SEO for Evolving Search Engines
ryanjones
0
290
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
WENDY [Excerpt]
tessaabrams
13
39k
Building AI with AI
inesmontani
PRO
1
1.2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
Transcript
Kubernetesクラスタを作 る 2021/4/17
自己紹介 • HN:カロス • 小江戸らぐ歴:12年ぐらい • イベントとかスタッフボランティア やっている • Tiwtter:karosuwindam
自画像
Kubernetesについて • 読み方は「Ku-ber-netes」だと思っています • 最新バージョン「1.21.0」 • できること • コンテナ運用の自動化 •
複数のPCにまたいだ、コンテナの運用 • コンテナへの接続がDockerより簡単にできる • 自動化のカスタマイズ(Operator) • できないこと(別途:機能を導入すれば不可能でない) • コンテナを動かすこと • コンテナのビルド • コンテナの状態監視
Kubernetesクラスタを用意する • 手順 1. 仮想環境を2台以上用意 2. SWAPを無効 3. IPフォワード設定 4.
コンテナランタイム(CRI-O)をインストール 5. Kubernetesの三つのソフトインストール 6. コントロールプレイン(master)の初期化 7. Workerの追加 8. CNIを導入(flannelを導入)
仮想マシーンについて • 以下の環境を複数用意 • CPU 2 • Memory 4GB •
Disk 20GB • OS:Ubuntu 20.10 • IP 固定 コントロールプレイン ワーカー ネットワーク
CRI-Oについて • CRI-Oとはコンテナランタイムの一つ • Dockerのコンテナを動かすための機能を実装したもの • インストール手順 • 特定カーネルモジュール(overlayとbr_netfilter)のロード •
パッケージの参照先を登録 • キーの追加 • cri-oとcri-o-runcをインストール • crioサービスの開始
Kubernetesの三つのソフトについて • kubeadm • Kubernetesクラスタを作成や追加時に使用するコマンド • kubelet • Kubernetesクラスタを動作させるためのサービス •
kubectl • Kubernetesクラスタのアクセスするためのコマンド
Kubernetesの三つのソフトのインストー ル • パッケージの参照先を登録 • キーの追加 • kubectlとkubelet、kubeadmをインストール
コントロールプレインの初期化 • CRI-O用のkubelet設定ファイルを挿入 sudo wget -O /etc/default/kubelet https://gist.githubusercontent.com/haircommander/2c07cc23887fa7c7f083dc61c7ef5791/raw/73e3d27dcd57e7de237c08758f76e0a36 8547648/cri-o-kubeadm •
初期化コマンド sudo kubeadm init --pod-network-cidr=10.244.0.0/16 • クラスタアクセスできるように mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Workerを登録する • コントロールプレインへの登録 sudo kubeadm join 192.168.223.210:6443 --token roodeq.5e15i0m9qgnox7k5 --discovery-token-ca-cert-hash
sha256:c954f1bb27a4a085b5a1c3bf1ef60569e0226fba309fbe3 50d4bb660abbd817b
Joinの値を忘れたら? • Kubeadmで有効なtokenの情報を調べる。 • /etc/kubernetes/pki/ca.crtにある証明書のハッシュ値を調べ る。 echo sudo kubeadm join
$(hostname -I|awk '{print $1}'):6443 - -token $(kubeadm token list |sed -n 2P|awk '{print $1}') -- discovery-token-ca-cert-hash sha256:$(openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //')
クラスタを組んだら • kubectl get nodeコマンドでノードの登録状態を確認 • CNIを導入 • 自分はarmでも動くflannelを導入している kubectl
apply -f https://raw.githubusercontent.com/coreos/flannel/master/Document ation/kube-flannel.yml
今回の実行コマンドについて • 自分のGithubのサイト • https://github.com/karosuwindam/k8s-build-cri-o
Kubernetesクラスタを作ったら • Nginxのサービスを立ててみる • Prometheusの監視エージェントを導入してノード監視やPod監 視をやってみる • Dockerで運用していることをKubernetesで運用してみる • アプリをコンテナ化してKuberenetes運用をしてみる
Kubernetesを立てて 運用してみましょう