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
750
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
ソースを読むプロセスの例
sat
PRO
15
9.3k
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
240
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
1
520
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
310
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
150
20251014_Pythonを実務で徹底的に使いこなした話
ippei0923
0
210
LLMアプリの地上戦開発計画と運用実践 / 2025.10.15 GPU UNITE 2025
smiyawaki0820
1
640
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
3
240
HR Force における DWH の併用事例 ~ サービス基盤としての BigQuery / 分析基盤としての Snowflake ~@Cross Data Platforms Meetup #2「BigQueryと愉快な仲間たち」
ryo_suzuki
0
230
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
500
ニッポンの人に知ってもらいたいGISスポット
sakaik
0
170
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
990
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Site-Speed That Sticks
csswizardry
13
910
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Speed Design
sergeychernyshev
32
1.2k
How GitHub (no longer) Works
holman
315
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Designing for humans not robots
tammielis
254
26k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
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