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
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
660
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
2
300
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
260
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.9k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
240
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
3.6k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
310
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
390
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
スマート反転とウェブアクセシビリティ
camiha
0
210
新卒PdEのリアル
ryu1013
1
510
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
340
Ethics towards AI in product and experience design
skipperchong
2
380
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Technical Leadership for Architectural Decision Making
baasie
3
580
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
880
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Code Review Best Practice
trishagee
74
20k
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を立てて 運用してみましょう