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.2k
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
480
最小権限を目指して / least privilege of service account
okepy
0
1.7k
security-profiles-operatorをさわってみた / try-security-profiles-operator
okepy
0
2.3k
Other Decks in Technology
See All in Technology
Claude in Chromeで始める自律的フロントエンド開発
diggymo
1
170
「違う現場で格闘する二人」——社内コミュニティがつないだトヨタ流アジャイルの実践とその先
shinichitakeuchi
0
530
Vivre en Bitcoin : le tutoriel que votre banquier ne veut pas que vous voyiez
rlifchitz
0
340
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
210
これまでのネットワーク運用を変えるかもしれないアプデをおさらい
hatahata021
4
230
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
820
AWS監視を「もっと楽する」ために
uechishingo
0
190
Kaggleコンペティション「MABe Challenge - Social Action Recognition in Mice」振り返り
yu4u
1
640
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
420
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
持続可能な開発のためのミニマリズム
sansantech
PRO
3
410
アウトプットはいいぞ / output_iizo
uhooi
0
130
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
190
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
67
Building Adaptive Systems
keathley
44
2.9k
The SEO Collaboration Effect
kristinabergwall1
0
340
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Designing Experiences People Love
moore
143
24k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Side Projects
sachag
455
43k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
54
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
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