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
Shinichirow KAMITO
July 17, 2015
Technology
1
730
Kubernetes 触ってみた
Container EngineでKubernetesを触ってみた記録です。
Shinichirow KAMITO
July 17, 2015
Tweet
Share
More Decks by Shinichirow KAMITO
See All by Shinichirow KAMITO
GCP概要 - 福岡クラウド UG Night
kamito
0
1.7k
Other Decks in Technology
See All in Technology
A2Aのクライアントを自作する
rynsuke
1
220
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
900
Model Mondays S2E03: SLMs & Reasoning
nitya
0
190
GitHub Copilot の概要
tomokusaba
1
140
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
11
4k
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
660
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
280
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
150
解析の定理証明実践@Lean 4
dec9ue
0
180
Kotlin Coroutine Mechanisms: A Surprisingly Deep Rabbithole
amanda_hinchman
2
100
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
180
Wasm元年
askua
0
160
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Writing Fast Ruby
sferik
628
62k
Designing for Performance
lara
609
69k
Documentation Writing (for coders)
carmenintech
72
4.9k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Fireside Chat
paigeccino
37
3.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
The Pragmatic Product Professional
lauravandoore
35
6.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Bash Introduction
62gerente
614
210k
Transcript
Kubernetes Shinichirow KAMITO Groovenauts, Inc. 1 / 23
Me Name: Shinichirow KAMITO Company: Groovenauts, Inc. Languages: Ruby, Erlang,
JavaScript (Python, Golang) 2 / 23
kubernetes 3 / 23
kubernets kubernetesはGoogleがGoogleが公開したオープンソースのDockerコンテナオーケストレー ションツール。 via http://kubernetes.io/ 4 / 23
最近のDockerブームによりアプリケーションをDockerコンテナで動かす機会が増えた。 docker runすれば起動するけど、何十台、何百台とコンテナを起動する度にdocker runす んの? 稼動してるコンテナはどうやって管理すんの? コンテナ死んだらどうすんの? という問題が出てくるので、これらを解決するために生まれた。 5 /
23
Google Container Engine 6 / 23
Google Container Engine Dockerコンテナのを展開し、Kubenetesで管理されるGoogleが提供しているサービス。 (現 在はアルファリリース) 今日はKubernetesそのものというよりも、こちらの紹介になります。 7 / 23
Container Engine Google Developer Consoleのメニューから「Container Engine > コンテナ クラスタ」を選 択して、「無料試用に登録」をクリックしてコンテナクラスタを有効にします。
8 / 23
「新しいコンテナ クラスタ」をクリックして新しいコンテナクラスタを作成します。 名前や マシンタイプ、クラスタ数を入力して作成します。 9 / 23
Container Engineではgcloudコマンドツールで提供されているツールを利用して、 Kubernetesの管理を行ないます。 10 / 23
gcloud コンテナエンジンのクラスタを操作するには、gcloudコマンドの kubectl コマンドを利用しま す。 $ gcloud components list --------------------------------------------------------------------------------------------------
| Components | |------------------------------------------------------------------------------------------------| | Status | Name | ID | Size | |------------------+-----------------------------------------------+-------------------+---------| | Update Available | BigQuery Command Line Tool | bq | < 1 MB | | Update Available | Cloud SDK Core Libraries | core | 2.0 MB | | Update Available | Default set of gcloud commands | gcloud | < 1 MB | | Update Available | Developer Preview gcloud Commands | preview | < 1 MB | | Deprecated | Compute Engine Command Line Tool (deprecated) | gcutil | < 1 MB | | Not Installed | App Engine Command Line Interface (Preview) | app | < 1 MB | | Not Installed | Compute Engine Command Line Tool Checker | gcutil-msg | < 1 MB | | Not Installed | gcloud app Java Extensions | app-engine-java | 95.2 MB | | Not Installed | gcloud app Python Extensions | app-engine-python | 6.9 MB | | Installed | Cloud Storage Command Line Tool | gsutil | 2.7 MB | | Installed | gcloud Alpha Commands | alpha | < 1 MB | | Installed | gcloud Beta Commands | beta | < 1 MB | | Installed | kubectl | kubectl | | -------------------------------------------------------------------------------------------------- To install new components or update existing ones, run: $ gcloud components update COMPONENT_ID 11 / 23
kubectl kubectlコマンドをインストールします。 $ gcloud components update kubectl インストールできたらversionが確認できます。 $ kubectl
version Client Version: version.Info{Major:"0", Minor:"20.1", GitVersion:"v0.20.1", GitCommit:"", GitTreeSt ate:"not a git tree"} Server Version: version.Info{Major:"0", Minor:"21", GitVersion:"v0.21.2", GitCommit:"4e89f2e6670b16 62021a86ac42b99c5c50c37d05", GitTreeState:"clean"} kubectl helpするとなんかいっぱい出ます。 12 / 23
gcloud config kubectlで使用するプロジェクトやゾーン、クラスタの設定をします。 $ gcloud config set project PROJECT_ID $
gcloud config set compute/zone asia-east1-c $ gcloud config set container/clouster CLUSTER_NAME $ gcloud config list [compute] zone = asia-east1-c [container] cluster = CLUSTER_NAME [core] account =
[email protected]
disable_usage_reporting = False project = PROJECT_ID 13 / 23
コンテナクラスタをDeveloper Consoleから作成したり、別のマシンで作成した場合は、以下 のコマンドを実行して、 kubectlがクラスタAPIにアクセスするために認証情報(Credentials) を作成する必要があります。 $ gcloud beta container get-credentials
必要に応じて、--zoneや--clusterを指定できます。 via: https://cloud.google.com/container‒engine/docs/before‒you‒begin 14 / 23
Cluster 15 / 23
VM 「Compute Engine > VM インスタンス」でインスタンス一覧を確認すると、名前に先ほど入 力したクラスタ名が含まれているインスタンスがクラスタ入力数分作成されています。 Kubernetesはここで作成されて登録されているクラスタインスタンスに対してDockerコンテ ナの展開を行ないます。 これらインスタンスのことをノード(Node)といいます。
ノードの一覧を確認するには、 $ kubectl get nodes で確認できます。 16 / 23
(Pod) ポッド(Pod)とは、ノードの中で起動するコンテナのグループみたいなもの。 JSONまたは YAMLで記述することができ、名前やラベルをつけることもできます。 クラスタ内のコンテナはこのポッド単位で管理を行ないます。 17 / 23
Pod ReplicationController Service 18 / 23
ポッドの起動を行なうには、kubectl createコマンドを利用します。 $ kubectl create -f /path/to/your-directory/locust-master-controller.yml replicationcontrollers/locust-master 起動したポッドの一覧を確認するにはkubectl getコマンドを利用します。
$ kubectl get pods kubectl getコマンドはその他の各種リソースも取得することができます。 19 / 23
createしたときのポッド数はPodファイルの replicas で指定した個数分しか起動していませ ん。 例えば負荷が増大してより夛くのポッド数を必要としたときには、 kubectl scale コマン ドを利用して、 ポッド数を増減させることができます。
$ kubectl scale --replicas=10 replicationcontroller locust-worker scaled もう一度 kubectl get pods してみます。 $ kubectl get pods TODO: Pending 20 / 23
KubernetesはDockerコンテナを管理するためのオーケストレーションツール。 Kubernetesを動かすためのサービスとしてGoogle Container Engine(alpha)がある。 まずはノードを準備する。 次に構成をポッドとして作成する。 起動も、スケールも超簡単 21 / 23
¿Questions? 22 / 23
Thank You 23 / 23