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 debugを試してみた / k8snovice8-kubectl-debug
Search
Naoki Oketani
February 08, 2021
Technology
0
2.1k
kubectl debugを試してみた / k8snovice8-kubectl-debug
Kubernetes Novice Tokyo #8
Naoki Oketani
February 08, 2021
Tweet
Share
More Decks by Naoki Oketani
See All by Naoki Oketani
Observe the Conference / observe-the-conference
okepy
0
460
最小権限を目指して / least privilege of service account
okepy
0
1.6k
security-profiles-operatorをさわってみた / try-security-profiles-operator
okepy
0
2.2k
Other Decks in Technology
See All in Technology
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
1
220
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
170
SEQUENCE object comparison - db tech showcase 2025 LT2
nori_shinoda
0
140
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
4
13k
What’s new in Android development tools
yanzm
0
310
SaaS型なのに自由度の高い本格CMSでサイト構築と運用のコスパ&タイパUP! MovableType.net の便利機能とユーザー事例のご紹介
masakah
0
110
Geminiとv0による高速プロトタイピング
shinya337
1
270
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
470
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
2
9.2k
ゼロからはじめる採用広報
yutadayo
3
920
Sansanのデータプロダクトマネジメントのアプローチ
sansantech
PRO
0
150
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
120
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Code Reviewing Like a Champion
maltzj
524
40k
What's in a price? How to price your products and services
michaelherold
246
12k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Done Done
chrislema
184
16k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
It's Worth the Effort
3n
185
28k
We Have a Design System, Now What?
morganepeng
53
7.7k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
Kubernetes Novice Tokyo #8 kubectl debug を試してみた February 9, 2021
Naoki Oketani
$ cat whoami.yaml social: github: oke-py twitter: ngoktanio job: role:
Cloud Native Security Architect keyword: [“NIST SP 800-190”, “Sysdig”]
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
distroless 使ってる?
攻撃ベクトルを小さくする centos distroless App App bash openssl “Minimal images lower
operational burden and reduce attack vectors.” [3][4]
デプロイを高速化する REPOSITORY TAG SIZE alpine latest 5.35MB ubuntu 18.04 56.7MB
centos 7 301MB gcr.io/distroless/base-debian10 latest 16.1MB “Smaller image size reduces resource usage and speeds deployments.” [3][4]
distrolessベースのコンテナを運用していた、ある日のこと
ん、おかしいな。デバッグしよう。
$ kubectl exec -it ephemeral-demo -- sh [2] OCI runtime
exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"sh\": executable file not found in $PATH": unknown あ、”sh”が入っていなくてトラブルシューティングできない・・・ ここで、エフェメラルコンテナとkubectl debugの出番
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
エフェメラルコンテナを利用する $ k run demo --image=k8s.gcr.io/pause:3.1 --restart=Never $ k debug
-it demo --image=busybox # ps aux PID USER TIME COMMAND 1 root 0:00 sh 7 root 0:00 ps aux プロセスをみることができない Pod: demo Container pause EphemeralContainer busybox
エフェメラルコンテナを利用する $ k run demo --image=k8s.gcr.io/pause:3.1 --restart=Never $ k debug
-it demo --image=busybox --target=demo # ps aux PID USER TIME COMMAND 1 root 0:00 /pause 8 root 0:00 sh 15 root 0:00 ps aux Pod: demo Container pause EphemeralContainer busybox
Podのコピーを利用する $ k run myapp --image=busybox --restart=Never -- sleep 1d
$ k debug myapp -it --image=ubuntu --share-processes \ --copy-to=myapp-debug $ k get pod NAME READY ... myapp 1/1 myapp-debug 2/2 Pod: myapp-debug Container busybox Container ubuntu Pod: myapp Container busybox
Nodeのデバッグをする $ k debug node/mynode -it --image=ubuntu “The container runs
in the host IPC, Network, and PID namespaces. The root filesystem of the Node will be mounted at /host.” [2] 強力すぎてセキュリティおじさんはヒヤヒヤしてしまう マルチテナントクラスターでは使えるとまずいかも?
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
kubectl debugは強力、Minimal imagesを実現しよう centos distroless App App bash openssl “Minimal
images lower operational burden and reduce attack vectors.” [3][4]
GAしていないため変更の可能性あり エフェメラルコンテナ • v1.16 alpha • v1.21 beta [5] kubectl
debug • v1.18 alpha • v1.20 beta
kubectl debug 完全に理解した
reference [1] Ephemeral Containers https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/ [2] Debug Running Pods https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/
[3] KEP-277: Ephemeral Containers https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/277-ephemeral-containers [4] KEP-1441: kubectl debug https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug [5] Update Ephemeral Containers KEP for beta in 1.21 https://github.com/kubernetes/enhancements/pull/2244