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
740
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
生成AI時代のデータ基盤
shibuiwilliam
6
3.7k
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
120
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
3
970
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
170
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
0
190
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
1.5k
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.3k
Kubernetes における cgroup driver のしくみ: runwasi の bugfix より
z63d
2
220
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
PRO
11
930
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
120
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.2k
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
110
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Code Reviewing Like a Champion
maltzj
525
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Optimizing for Happiness
mojombo
379
70k
Visualization
eitanlees
148
16k
Done Done
chrislema
185
16k
Become a Pro
speakerdeck
PRO
29
5.5k
Writing Fast Ruby
sferik
628
62k
How STYLIGHT went responsive
nonsquared
100
5.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
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