Masaya Aoyama
CyberAgent
kind Ͱ࢝ΊΔ͓खܰ Kubernetes ڥ
ʙԶͨͪงғؾͰ Local ͷ Kubernetes ڥΛ͍ͬͯΔʙ
@Cloud Native Meetup Tokyo #9
amsy810 @amsy810
Slide 2
Slide 2 text
Publicity (一部抜粋)
書籍 『Kubernetes 完全ガイド』 『みんなの Docker/K8s』
基調講演 『Japan Container Days v18.04』 『Google Cloud K8s Day』
招待講演 『情報処理学会 コンピュータシステムシンポジウム』
『AWS Dev Day Tokyo』 『IBM Think Japan』 『JEITA 委員会』
登壇 『KubeCon + CNCon China 2019』 『Open Source Summit 2019』 等
資格 『CKAD #2』 『CKA #138』
Masaya Aoyama (@amsy810)
Infrastructure Engineer
Community
Co-chair 『Cloud Native Days Tokyo (旧 Japan Container Days)』
Organizer 『Cloud Native Meetup Tokyo』
『Kubernetes Meetup Tokyo』
『KubeCon Japanese exchange meeting』
Contribute to OpenStack and Kubernetes
主業務:
K8s as a Service の実装
K8s / CloudNative 関連のアーキテクト
+ CREATIONLINE / DENSO - 技術アドバイザ
+ SAKURA Internet Research Center – 客員研究員
Slide 3
Slide 3 text
Local Kubernetes
Slide 4
Slide 4 text
Local Kubernetes ͷબࢶ
Docker for Mac
https://docs.docker.com/
docker-for-mac/
microk8s
https://microk8s.io/
Minikube
https://github.com/
kubernetes/minikube
kind
Kubernetes in Docker
https://kind.sigs.k8s.io/
Slide 5
Slide 5 text
Docker for Mac by Docker, Inc.
ワンクリックで Kubernetes を有効化可能
Mac 上の Docker と同じレイヤに起動
• = ビルド済みイメージがそのまま利⽤可能
• spec.containers[].imagePullPolicy: Never/IfNotPresent
“type: LoadBalancer” Service は localhost で binding
• 1 Service のみ
• 任意の 127.0.0.0/8 で binding してくれればいいのに…と思う
Slide 6
Slide 6 text
Docker for Mac by Docker, Inc.
Mac 上の領域をコンテナにマウント可能
1 クラスタしか起動できない
バージョンを選択できない
• Docker for Mac のバージョンに紐づく
• 例) Docker 19.03.0-rc2 = Kubernetes v1.14.3
Slide 7
Slide 7 text
microk8s by Canonical Ltd.
• snap を利⽤するため Linux での利⽤前提
• シングルノード Kubernetes を 1 コマンドでデプロイ
• バージョン指定可能
• addon 機能
• GPU Support
Slide 8
Slide 8 text
Minikube by Kubernetes SIG-Cluster-Lifecycle
• Node に VM を⽤いてシングルノード K8s を起動
• マルチクラスタ対応
• minikube start –p NAME
• Tunneling して ClusterIP Service に接続可能
• minikube tunnel
• type: LB の場合は ClusterIP のエントリが書き込まれる
• Addon 機能
• GPU サポート
γϯάϧϊʔυΫϥελͷߏங
kubeconfig は ~/.kube/kind-config-NAME
• kind get kubeconfig-path --name NAME でも確認可能
# kind create cluster --name NAME
Slide 18
Slide 18 text
ΫϥελͷҰཡදࣔ
# kind get clusters
sample-k8s
...
kind で作成されているクラスタ⼀覧を確認可能
kind [create|delete] cluster --name NAME で作成|削除
Slide 19
Slide 19 text
ϊʔυҰཡͷදࣔ
各クラスタに割り当てられているノードを確認可能
# kind get nodes --name NAME
sample-k8s-control-plane
# kubectl get nodes \
--kubeconfig ~/.kube/kind-config-sample-k8s
NAME STATUS ROLES AGE VERSION
sample-k8s-control-plane Ready master 55s v1.15.0