k8sクラスタ構築
asuka y
話すこと
1. Kubernetesとは
2. クラスタ構築
3. 用途
4. 最後に
Kubernetesとは
コンテナ化したアプリケーションのデプロイ、スケーリング、および管理を行うための、
オープンソースのコンテナオーケストレーションシステム
by Wikipadia
VM | Node VM | Node VM | Node VM | Node
k8s
Container
(Pod)
Routing (Service)
Container Container Container
https://k8s:80
:80
:80
:80
:80
※イメージ
できること: deploy, auto scale, auto healing and more.
Kubernetesとは
コンテナ化したアプリケーションのデプロイ、スケーリング、および管理を行うための、
オープンソースのコンテナオーケストレーションシステム
by Wikipadia
VM | Node VM | Node VM | Node VM | Node
k8s
Container
Routing
Container Container Container
https://k8s:80
:80
:80
:80
:80
※イメージ
かっこいいから
自宅にも欲しい!!
できること: deploy, auto scaling, auto healing and more.
必要なもの
+ ラズベリーパイ4 (&SDカード) x4
+ スイッチングハブ(8 ports)
- ラズベリーパイ用 PoE HAT x4
- LANケーブル x4
クラスタ構築
必要なもの
+ ラズベリーパイ4 (&SDカード) x4
+ スイッチングハブ(8 ports)
- ラズベリーパイ用 PoE HAT x4
- LANケーブル x4
クラスタ構築
クラスタ構築
ネットワークイメージ
k8sノードを 10.16.1.1 ~ 10.16.1.4に固定
k8s用ネットワーク: 10.16.0.0/16 家のネットワーク: 10.8.0.0/16
k8sを操作するコンピュータのみ通信を許可
クラスタ構築
条件
- RAM 2GB以上
- CPU 2 cores以上
- Swap無効化
- Cgroupの有効化
インストールは公式ドキュメント通りにやれば大体できる
クラスタ構築
Container Runtime
- v1.20からDockershimが非推奨になるらしい? → Containerd採用
- v1.20はまだ Dockerを使うのがインストールが楽
→ v1.21からDocker以外も楽になった
Cluster Network
- クラスタを組んでもNetwork Plugin(CNI)を入れないとコンテナを デプロイできない
- よく分からない → Flannel採用
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
クラスタ構築
最後に操作するコンピュータからアクセスできるようにする
用途
M1 Macの開発環境に良いんじゃないか?
- 検討していた時はまだDockerForDesktopがM1対応していなかった
- 16GBしかないMacに仮想環境は勿体無い
用途
M1 Macの開発環境に良いんじゃないか?
- 検討していた時はまだDockerForDesktopがM1対応していなかった
- 16GBしかないMacに仮想環境は勿体無い
Dockerの動いていない
Macに何ができる?
用途
M1 Macの開発環境に良いんじゃないか?
- 検討していた時はまだDockerForDesktopがM1対応していなかった
- 16GBしかないMacに仮想環境は勿体無い
Dockerの動いていない
Macに何ができる?
救世主!
Docker in Docker!!
用途
Docker in Dockerを用いたセルフホスト環境
VM | Node VM | Node VM | Node VM | Node
k8s
Docker in
Docker
DockerHubからDocker in Dockerをデプロイする
用途
Docker in Dockerを用いたセルフホスト環境
VM | Node VM | Node VM | Node VM | Node
k8s
Docker in
Docker
DockerHubからコンテナ Registryをデプロイする
Registry
用途
Docker in Dockerを用いたセルフホスト環境
VM | Node VM | Node VM | Node VM | Node
k8s
Docker in
Docker
Registry
push
Service (NodePort: 30000)
10.16.1.1:30000/sample:latest
DinDからRegistryへコンテナ ImageをBuild & Push
用途
Docker in Dockerを用いたセルフホスト環境
VM | Node VM | Node VM | Node VM | Node
k8s
Docker in
Docker
Registry
push
sample
deploy
Service (NodePort: 30000)
10.16.1.1:30000/sample:latest
クラスタ上のRegistryからデプロイ
apiVersion: v1
kind: Pod
metadata:
name: sample
spec:
containers:
- name: webapp
image: 10.16.1.1:30000/sample
ports:
- containerPort: 8080
用途
Docker in Dockerを用いたセルフホスト環境
VM | Node VM | Node VM | Node VM | Node
k8s
Docker in
Docker
Registry
push
sample
deploy
Service (NodePort: 30000)
10.16.1.1:30000/sample:latest
クラスタ上のRegistryからデプロイ
apiVersion: v1
kind: Pod
metadata:
name: sample
spec:
containers:
- name: webapp
image: 10.16.1.1:30000/sample
ports:
- containerPort: 8080
自己完結!!
用途
TLSを適切に設定できない場合、insecure registryとしてContainer runtimeに設定す
る必要がある
# vim /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.16.1.1:30000"]
endpoint = ["http://10.16.1.1:30000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."10.16.1.1:30000".tls]
insecure_skip_verify = true
最後に
1. 本番運用するときは、
a. TLSを適切に設定するべき
b. ManagedなRegistryを利用するべき
c. ManagedなK8sを利用するべき
2. PoEを利用すると配線はスッキリするが、ファンの騒音がひどい
a. RaspPiは電源タップを買ってファンレス運用するのがおすすめ
3. M1 Mac利用者は v1.21~を利用しよう
a. v1.21は Go v1.16でbuildされているため、Nativeサポートされている
ありがとうございました。

More Related Content

PDF
Kubernete超概要
PDF
Kubernetes に開かれる新しい海 -Project Pacific とは?-
PDF
Kubernetes Operator for vSphere VM
PDF
”30分”ぐらいでわかる「Kubernetes」について
PPTX
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
PPTX
Rootlessコンテナ
PDF
対話AI on Kubernetes
PPTX
社内勉強会(Docker)
Kubernete超概要
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Kubernetes Operator for vSphere VM
”30分”ぐらいでわかる「Kubernetes」について
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Rootlessコンテナ
対話AI on Kubernetes
社内勉強会(Docker)

What's hot (20)

PPTX
Knative Lambda Runtimeを試してみた
PDF
Harbor RegistryのReplication機能
PDF
DockerとKubernetesが作る未来
PDF
Arukas meet Mesos/Marathon
PDF
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
PPTX
Kubernetesと暮らすRancherな生活
PDF
Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...
PPTX
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
PPTX
俺とKubernetes
PPTX
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
PDF
20分でわかるgVisor入門
PDF
Lattice深掘り話
PDF
kpackによるコンテナイメージのビルド
PDF
おにいぽんでもわかるContainer
PPTX
AKS と ACI を組み合わせて使ってみた
PPTX
Virtual Kubelet and Virtual Node
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
PDF
Githubを使って簡単に helm repoを公開してみよう
PDF
kubernetes(GKE)環境におけるdatadog利用
PDF
Kubernetes雑にまとめてみた 2019年12月版
Knative Lambda Runtimeを試してみた
Harbor RegistryのReplication機能
DockerとKubernetesが作る未来
Arukas meet Mesos/Marathon
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Kubernetesと暮らすRancherな生活
Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
俺とKubernetes
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
20分でわかるgVisor入門
Lattice深掘り話
kpackによるコンテナイメージのビルド
おにいぽんでもわかるContainer
AKS と ACI を組み合わせて使ってみた
Virtual Kubelet and Virtual Node
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Githubを使って簡単に helm repoを公開してみよう
kubernetes(GKE)環境におけるdatadog利用
Kubernetes雑にまとめてみた 2019年12月版
Ad

Similar to k8sクラスタ構築 (20)

PPTX
今さら聞けない人のための K8s超入門 Big Sur対応版 CNDO2021 ショートバージョン
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
半日でわかる コンテナー技術 (応用編)
PDF
【K.M】Kubernetes.pdf
PPTX
Kubernetesオンラインセミナー kubernetesの始め方
PDF
AKSとTerraformでKubernetesクラスター作成
PDF
Kubernetes1.9でWindowsコンテナーをクラスタ化
PDF
AlibabaCloudではじめるKubernetes
PPTX
ニフクラでも できる!Kubernetes。
PPTX
Kubernetes ときどき Serverless -- cndjp第1回勉強会
PPTX
今さら聞けない人のための K8s超入門 Big Sur対応版
PPTX
Java on Kubernetes on Azure
PDF
Kubernetesを触ってみた
PPTX
今さら聞けない人のためのK8s超入門 Big Sur対応版
PPTX
k3s のすすめ
PPTX
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
PPTX
今さら聞けない人のためのK8s超入門 Big Sur対応版
PPTX
45分で理解するKubernetesの世界
PPTX
今さら聞けない人のためのK8s超入門
PDF
Rancher2.3とwindows Containerで作るkubernetesクラスタ
今さら聞けない人のための K8s超入門 Big Sur対応版 CNDO2021 ショートバージョン
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
半日でわかる コンテナー技術 (応用編)
【K.M】Kubernetes.pdf
Kubernetesオンラインセミナー kubernetesの始め方
AKSとTerraformでKubernetesクラスター作成
Kubernetes1.9でWindowsコンテナーをクラスタ化
AlibabaCloudではじめるKubernetes
ニフクラでも できる!Kubernetes。
Kubernetes ときどき Serverless -- cndjp第1回勉強会
今さら聞けない人のための K8s超入門 Big Sur対応版
Java on Kubernetes on Azure
Kubernetesを触ってみた
今さら聞けない人のためのK8s超入門 Big Sur対応版
k3s のすすめ
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
今さら聞けない人のためのK8s超入門 Big Sur対応版
45分で理解するKubernetesの世界
今さら聞けない人のためのK8s超入門
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Ad

More from asuka y (6)

PDF
易しいVim
PDF
Async await完全に理解した
PDF
Go1.18 Genericsを試す
PDF
Flutter2
PDF
自宅ネットワーク構築
PDF
CASL2実行環境紹介
易しいVim
Async await完全に理解した
Go1.18 Genericsを試す
Flutter2
自宅ネットワーク構築
CASL2実行環境紹介

k8sクラスタ構築