ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

🐳 Π₯Π²Π°Ρ‚ΠΈΡ‚ Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ curl ΠΈ vim Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½! (Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ephemeral Containers)

🐳 Π₯Π²Π°Ρ‚ΠΈΡ‚ Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ curl ΠΈ vim Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½! (Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ephemeral Containers) Π‘Π°Π»ΡŽΡ‚, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, всСх с ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°Π·Π΄Π½ΠΈΠΊΠ°ΠΌΠΈ! πŸ‘‹ Бколько Ρ€Π°Π· я Π²ΠΈΠ΄Π΅Π» Dockerfile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся Π·Π° Π·Π΄Ρ€Π°Π²ΠΈΠ΅ (FROM alpine), Π° заканчиваСтся установкой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°: apk add curl vim net-tools bind-tools...? АргумСнт всСгда ΠΎΠ΄ΠΈΠ½: "Ну ΠΌΠ½Π΅ ΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π΄Π΅Π±Π°ΠΆΠΈΡ‚ΡŒ, Ссли ΠΏΠΎΠ΄ отвалится!" Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ: 1. Π Π°Π·Π΄ΡƒΡ‚Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·. (ΠŸΠ»Π°Ρ‚ΠΈΠΌ Π·Π° сторадТ ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ). 2. Π”Ρ‹Ρ€Ρƒ Π² бСзопасности. (Π₯Π°ΠΊΠ΅Ρ€, попавший Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, скаТСт спасибо Π·Π° curl ΠΈ nmap, любСзно оставлСнныС Π²Π°ΠΌΠΈ). ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ - это Distroless ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Alpine, Π³Π΄Π΅ Π½Π΅Ρ‚ Π΄Π°ΠΆΠ΅ шСлла. А для Π΄Π΅Π±Π°Π³Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ephemeral Containers (эфСмСрныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹). πŸ›  Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚? Π’ Kubernetes (начиная с v1.25 это ΡƒΠΆΠ΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Ρ„ΠΈΡ‡Π°) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ "ΠΏΠΎΠ΄ΡΠ΅Π»ΠΈΡ‚ΡŒ" Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Pod. Он Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠ΄ΠΎΠΌ пространство ΠΈΠΌΠ΅Π½ процСссов (PID) ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° сСти, Π½ΠΎ файловая систСма Ρƒ Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ своя. Π’ΠΎ Π΅ΡΡ‚ΡŒ: ваш ΠΏΡ€ΠΎΠ΄-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ остаСтся чистым, Π° Π΄Π΅Π±Π°Π³-Ρ‚ΡƒΠ»Π·Ρ‹ ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ. πŸ”₯ ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: kubectl debug Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ "Π³Π»ΡƒΡ…ΠΎΠΉ" ΠΏΠΎΠ΄ my-app, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠ° прилоТСния. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒ. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·, Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚Π°ΠΊ: kubectl debug -it my-app \ --image=nicolaka/netshoot \ --target=my-app-container Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ магию: πŸ”˜ --image=nicolaka/netshoot: Мой Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ ΠΎΠ±Ρ€Π°Π· для Ρ‚Ρ€Π°Π±Π»ΡˆΡƒΡ‚ΠΈΠ½Π³Π°. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ ВБЁ: tcpdump, curl, dig, iperf, mtr. πŸ”˜ --target: Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Π² ΠΏΠΎΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ (Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ процСссы Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π°, Π½ΠΎ со ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠΈΠΌ Π½ΠΎΠΆΠΎΠΌ Π² Ρ€ΡƒΠΊΠ°Ρ…. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ Π΄ΠΎ Π±Π°Π·Ρ‹, сняли Π΄Π°ΠΌΠΏ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π²Ρ‹ΡˆΠ»ΠΈ ΠΈ эфСмСрный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ исчСз. Чисто, красиво, ΡΠ΅ΠΊΡŒΡŽΡ€Π½ΠΎ. πŸ›‘ πŸ’‘ А Ссли я Π½Π΅ Π² K8s? Если Π²Ρ‹ сидитС Π½Π° чистом Docker, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Ρ‚Ρ€ΡŽΠΊ дСлаСтся Ρ‡Π΅Ρ€Π΅Π· --pid ΠΈ --network: docker run -it --rm \ --network container:my-prod-container \ --pid container:my-prod-container \ nicolaka/netshoot Π˜Ρ‚ΠΎΠ³: ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π±ΠΎΡΡ‚ΡŒΡΡ Distroless ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для внСшнСго Π΄Π΅Π±Π°Π³Π° ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ вырос. #k8s #docker #security #tips #debug Подпишись πŸ‘‰ @i_DevOps

893 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

3Β 014 подписчиков Β· IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Β«IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.