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
kubectlの基礎
Search
hhiroshell
February 28, 2018
Technology
6
1.3k
kubectlの基礎
hhiroshell
February 28, 2018
Tweet
Share
More Decks by hhiroshell
See All by hhiroshell
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
98
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
5
700
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
3
1.7k
Architecting Kubernetes-Based Internal Developer Platforms: Essential Patterns and Practices
hhiroshell
0
250
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
270
Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
11
4.2k
Platform EngineeringにおけるKubernetesの活用法とLINEヤフーにおける事例のご紹介 / Platform Engineering and Kubernetes Findy Lunch LT Edition
hhiroshell
7
2.4k
大規模Webアプリケーションプラットフォームを開発して軌道に乗るまでにやったこと / How to Put Platforms on Track
hhiroshell
2
2.7k
Kubernetesとカスタムコントローラーを活用したプラットフォーム開発・運用の勘所 / Platform Engineering and Kubernetes
hhiroshell
1
1.7k
Other Decks in Technology
See All in Technology
組織改革から開発効率向上まで! - 成功事例から見えたAI活用のポイント - / 20251016 Tetsuharu Kokaki
shift_evolve
PRO
1
180
Introduction to Bill One Development Engineer
sansan33
PRO
0
300
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
1
530
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
Claude Code Subagents 再入門 ~cc-sddの実装で学んだこと~
gotalab555
10
17k
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
430
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
160
ローカルLLMとLINE Botの組み合わせ その2(EVO-X2でgpt-oss-120bを利用) / LINE DC Generative AI Meetup #7
you
PRO
0
110
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
1k
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
1k
技育祭2025【秋】 企業ピッチ/登壇資料(高橋 悟生)
hacobu
PRO
0
120
CoRL 2025 Survey
harukiabe
1
230
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Unsuck your backbone
ammeep
671
58k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Thoughts on Productivity
jonyablonski
70
4.9k
Side Projects
sachag
455
43k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Gamification - CAS2011
davidbonilla
81
5.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Speed Design
sergeychernyshev
32
1.2k
A Modern Web Designer's Workflow
chriscoyier
697
190k
KATA
mclloyd
PRO
32
15k
Transcript
Cloud Native Developers JP kubectlの基礎 @hhiroshell 1
Cloud Native Developers JP Kubernetesの全体像 k8sクラスター >_ kubectl (CLI) マシンとネットワーク
2
Cloud Native Developers JP kubectl • Kubernetesクラスターの管理操作を行うためのコマンドラインイン ターフェース • Kubernetesクラスターを操作するときの最も基本的な手段
• コマンドをapiserverが提供するREST APIの呼び出しに変換してい る 3
Cloud Native Developers JP kubectlの設定情報 • kubectlの設定情報の実体は、デフォルトで ~/.kube/config にyaml 形式で保存されている
• kubectl config view とすると現在の設定情報を表示できる • 設定ファイルを明示的に指定して利用したい場合 – kubectlコマンドの --kubeconfig フラグで毎回指定: kubectl get nodes --kubeconfig=~/some_directory/config_file – 環境変数 KUBECONFIG に設定ファイルのパスを設定: export KUBECONFIG=~/some_directory/config_file 4
Cloud Native Developers JP kubectlでよく使うコマンド(チートシート) 5
Cloud Native Developers JP kubectlの接続先クラスターを切り替える • kubectlの設定情報には、複数のクラスターへの接続情報を持てる • kubectl config
use-context <cluster name> で接続先のクラスターを 切り替えることができる 6
Cloud Native Developers JP コマンドの効力が及ぶNamespaceを指定する • Namespaceの一覧を取得するには、kubectl get namespaces •
kubectlのほとんどのコマンドで、効力が及ぶNamespaceを指定す るオプションが使える – すべてのNamespaceを指定するには、--all-namespaces kubectl --all-namespaces get pods – Namespaceの名前を指定するには、--namespace=<namespace-name> kubectl --namespace=mynamespace get pods • デフォルトのNamespaceを変更することも可能 kubectl config set-context $(kubectl config current-context) --namespace=mynamespace 7
Cloud Native Developers JP Kubernetes Objectの情報を取得する • オブジェクトの一覧を取得するには kubectl get
<object type> kubectl get pods kubectl get services • 所定のオブジェクトの詳細情報を取得するには kubectl describe <object type> <object name> kubectl describe pods mypod-1029384756-zxc0x
Cloud Native Developers JP Deploymentを作成する/削除する • kubectl run <deployment name/pod
name prefix> -- image=<image>:<tag> <command> 9
Cloud Native Developers JP manifestファイルでKubernetes Objectを操作する • manifestはKubernetes Objectの構成情報を記述したjson/yamlファイル •
-f オプションでファイル自体のパスか、manifestのあるディレクトリの パスを指定する • 命令的方式 – オブジェクトに対する作用(create, delete, replace...)を明示して実行する kubectl create –f ./deployment-nginx.yaml • 宣言的方式 – maninfestファイルから要求された状態を識別し、自動的にオブジェクトを変更する kubectl apply -f ./deployment-nginx.yaml 10
Cloud Native Developers JP 最もシンプルなmanifestファイルの例 • Podを定義したmanifestの例 – この例では、busyboxというコンテナを含むPodを定義している 11
apiVersion: v1 kind: Pod metadata: name: counter spec: containers: - name: count image: busybox args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']
Cloud Native Developers JP Podの標準出力/標準エラー出力を表示する • コンソールに表示するには kubectl logs <pod
name> kubectl logs mypod-1029384756-zxc0x • tailするには -f オプション(follow) • kubectl logs -f mypod-1029384756-zxc0x • 所定の時間内の出力を表示するには --since で時間を指定 kubectl logs -f since 1m mypod-1029384756-zxc0x 12
Cloud Native Developers JP 実行中のPodで任意のコマンドを実行する • kubectl exec <pod name>
<command> でOK • “hello world”を出力 kubectl exec mypod-1029384756-zxc0x echo hello world • シェルにアクセス kubectl exec -it mypod-1029384756-zxc0x /bin/bash 13
Cloud Native Developers JP 14 Fin