Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
150
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
520
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
190
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
560
メールのエイリアス機能を履き違えない
isshinfunada
0
240
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
240
「人を評価する AI」の設計と実装
ryoyanara
0
210
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.8k
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
860
Side Projects
sachag
455
43k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
650
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Crafting Experiences
bethany
1
250
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
210
Google's AI Overviews - The New Search
badams
0
1.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
The Spectacular Lies of Maps
axbom
PRO
1
910
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を立てて 運用してみましょう