λ‘œμΌ“πŸΎ
article thumbnail
[Istio] ksniff λ₯Ό μ΄μš©ν•΄μ„œ νŒ¨ν‚·μ„ μ—Όνƒν•˜μž
DevOps/Istio 2025. 1. 4. 13:47

ν•΄λ‹Ή 글은 μ΄μŠ€ν‹°μ˜€ 인 μ•‘μ…˜μ΄λΌλŠ” μ±…μ˜ 일뢀 파트λ₯Ό μ°Έκ³ ν•˜μ˜€κ³ , μ±…μ—μ„œ λ‹€λ€˜λ˜ 방법보닀 ν•œ 단계 더 λ‚˜μ•„κ°€μ„œ μ§„ν–‰ν–ˆλ˜ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.μ΄μŠ€ν‹°μ˜€ 인 μ•‘μ…˜μ€ μ΄μŠ€ν‹°μ˜€μ— κ΄€ν•œ 책인데, μ΅œκ·Όμ— μ½μ—ˆλ˜ 쀑에 μ±… 쀑에 κ°€μž₯ ν₯미둭게 읽은 μ±…μ΄μ˜€μŠ΅λ‹ˆλ‹€.μ΄μŠ€ν‹°μ˜€κ°€ κΆκΈˆν•˜λ‹€λ©΄ λ§Žμ€ 도움을 얻을 수 μžˆλŠ” μ±…μœΌλ‘œ 적극 μΆ”μ²œν•©λ‹ˆλ‹€! λ‹€μ‹œ 본둠으둜 λŒμ•„μ™€μ„œ ksniff λŠ” tcpdump λ₯Ό μ‚¬μš©ν•΄ νŒŒλ“œμ˜ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ ν¬μ°©ν•˜κ³  이λ₯Ό μ™€μ΄μ–΄μƒ€ν¬λ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈν•˜λŠ” kubectl ν”ŒλŸ¬κ·ΈμΈμž…λ‹ˆλ‹€. ksniff λ₯Ό μ„€μΉ˜ν•˜κΈ° μœ„ν•΄μ„  μš°μ„  krew λ₯Ό λ¨Όμ € μ„€μΉ˜ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. krew λ¬Έμ„œλ‘œ κ°€μ„œ κ·ΈλŒ€λ‘œ μ§„ν–‰ν•΄μ€λ‹ˆλ‹€. μ € 같은 κ²½μš°λŠ” μ•„λž˜ μ‰˜ 슀크립트λ₯Ό μ‹€ν–‰μ‹œμΌ°μŠ΅λ‹ˆλ‹€.$ ( set -x; cd "$(mktemp -d)"..

article thumbnail
[Kubernetes] "자 이제 λˆ„κ°€ μ§„μ§œ 리더지?" - 리더 μ„ μΆœ λ©”μ»€λ‹ˆμ¦˜
DevOps/Kubernetes 2024. 11. 9. 14:37

ν•΄λ‹Ή 글은 ν‹€λ¦° 뢀뢄이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 마음껏 μ§€μ ν•΄μ£Όμ„Έμš”! μΏ λ²„λ„€ν‹°μŠ€ μœ„μ— μžˆλŠ” λͺ¨λ“  νŒŒλ“œμ™€ λ…Έλ“œλŠ” ephermeral ν•˜κ²Œ λ””μžμΈ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έμ— 따라 νŒŒλ“œμ™€ λ…Έλ“œλŠ” μ–Έμ œ κ°‘μžκΈ° 급사? 할지 λͺ¨λ¦…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 급사 ν•œλ‹€κ³  ν•΄μ„œ μ„œλΉ„μŠ€μ— 영ν–₯이 κ°€μ„  μ•ˆλ©λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μΏ λ²„λ„€ν‹°μŠ€λ₯Ό ꡬ성할 λ•Œ κ³ κ°€μš©μ„±(HA) 은 λ°˜λ“œμ‹œ λ™λ°˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. κ³ κ°€μš©μ„±μ„ μœ μ§€ν•˜μ§€ μœ„ν•΄μ„œλŠ” μ—¬λŸ¬ μ ˆμ°¨κ°€ λ™λ°˜λ˜μ–΄μ•Ό ν•˜λŠ”λ°, 이번 κΈ€μ—μ„œλŠ” κ·Έ 쀑 Stateful ν•œ μ„œλΉ„μŠ€μ˜ κ³ κ°€μš©μ„±μ„ μœ μ§€ν•˜λŠ” 방법 쀑 ν•˜λ‚˜μΈ '리더 μ„ μΆœ λ©”μ»€λ‹ˆμ¦˜(Leader Election Mechanism)' 에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€. κ·Έ 전에 Stateless ν•œ μ„œλΉ„μŠ€μ˜ κ³ κ°€μš©μ„±λΆ€ν„° μ•Œμ•„λ΄…μ‹œλ‹€. Stateless ν•œ νŒŒλ“œκ°€ μ—¬λŸ¬ 개 있고, Se..

article thumbnail
[Kubernetes] Controller 와 Operator, μ–΄λ””κΉŒμ§€ κΉŒλ΄€λ‹ˆ?
DevOps/Kubernetes 2024. 9. 3. 00:44

ν‹€λ¦° 뢀뢄이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ μžˆλ‹€λ©΄ μ§€μ ν•΄μ£Όμ„Έμš” :)  μΏ λ²„λ„€ν‹°μŠ€μ—μ„œ ReplicaSet 을 톡해 3개의 νŒŒλ“œλ₯Ό λ°°ν¬ν–ˆλ‹€κ³  μƒκ°ν•΄λ΄…μ‹œλ‹€. μ΄λ•Œ ν•˜λ‚˜μ˜ νŒŒλ“œλ₯Ό μ‚­μ œν•˜κ²Œ 되면 곧 λ‹€μ‹œ νŒŒλ“œκ°€ μƒμ„±λ©λ‹ˆλ‹€. 즉, νŒŒλ“œκ°€ μ΅œμ†Œ 3개 이상이 μ‹€ν–‰λ˜λ„λ‘ ReplicaSet λ₯Ό λ°°ν¬ν–ˆκΈ° λ•Œλ¬Έμ— μ£½μ—ˆλ˜ νŒŒλ“œλ₯Ό μƒˆλ‘­κ²Œ μ†Œμƒμ‹œν‚΅λ‹ˆλ‹€. μ΄λŠ” μΏ λ²„λ„€ν‹°μŠ€μ˜ νŠΉμ§• 쀑 ν•˜λ‚˜μΈ Self Healing 이기도 ν•©λ‹ˆλ‹€.ReplicaSet, Deployment λ“±μ—μ„œ λͺ…μ‹œν•˜λŠ” Replica 의 κ°―μˆ˜λŠ” κ³ μ •/μ΅œλŒ€κ°€ μ•„λ‹Œ μ΅œμ†Œλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.3개라고 κ°€μ •ν–ˆμ„ λ•Œ, λ‘€λ§μ—…λ°μ΄νŠΈλ‚˜ λΉ„μžλ°œμ μΈ μ’…λ£Œμ— μ˜ν•΄ 3개 μ΄μƒμ˜ νŒŒλ“œκ°€ μ‘΄μž¬ν•  수 있기 λ•Œλ¬Έμ΄μ£ . κ·ΈλŸΌ 이걸 μ’€ 더 전문적?으둜 μ ‘κ·Όν•΄λ΄…μ‹œλ‹€. μš°λ¦¬κ°€ μ›ν–ˆλ˜(Desired) ReplicaS..

article thumbnail
[Kubernetes] IRSA 인증뢀터 κ°±μ‹ κΉŒμ§€ 쭈욱~
DevOps/Kubernetes 2024. 8. 12. 17:02

이번 κΈ€μ˜ 주제인 "IRSA" λŠ” μ΄ν•΄ν•˜κΈ°λ„ νž˜λ“€μ—ˆμ§€λ§Œ, 이걸 κΈ€λ‘œ μž‘μ„±ν•˜λŠ” 건 더 μ–΄λ €μ›Œμ„œ λ§Žμ€ λΈ”λ‘œκ·Έ κΈ€λ“€κ³Ό κ°•μ˜λ₯Ό μ°Έκ³ ν–ˆμŠ΅λ‹ˆλ‹€.ν‹€λ¦° 뢀뢄이 μžˆμ„ 수 있으며, μ•„λž˜μ— λͺ…μ‹œν•œ μ°Έκ³  λΈ”λ‘œκ·Έλ“€λ„ μ½μ–΄μ£Όμ„Έμš”!  IRSA λŠ” IAM Roles for Service Account 의 μ•½μžλ‘œ, Kubernetes μ—μ„œ AWS λ¦¬μ†ŒμŠ€μ— μ•ˆμ „ν•˜κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•œ λ©”μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€. IRSA λ₯Ό μ‚¬μš©ν•˜λ©΄ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„° λ‚΄μ˜ νŠΉμ • Service Account 에 AWS IAM Role 을 맀핑할 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 ν•΄λ‹Ή Service Account 이 AWS λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ μ–»μŠ΅λ‹ˆλ‹€.  IRSA λŠ” AWS μ—μ„œ μ œκ³΅ν•˜λŠ” OIDC 와 IAM Role 을 μ‚¬μš©ν•˜μ—¬ μΏ λ²„λ„€ν‹°μŠ€ νŒŒλ“œκ°€ AWS..

article thumbnail
μž‘κ³  κ·€μ—¬μš΄ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό 2λ…„κ°„ μš΄μ˜ν•˜λ©΄μ„œ μ•Œλ©΄ 쒋은 것듀
DevOps/Kubernetes 2024. 6. 26. 00:05

비둝 크지 μ•Šμ€ 규λͺ¨μ˜ μΏ λ²„λ„€ν‹°μŠ€μ§€λ§Œ 2λ…„ λ™μ•ˆ μš΄μ˜ν•˜λ©΄μ„œ λ§Žμ€ 것듀을 κ²½ν—˜ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. κ²½ν—˜μ†μ—μ„œ 배울 수 μžˆμ—ˆλ˜ μž‘μ€ νŒλ“€μ„ κ³΅μœ ν•˜κ³ μž ν•©λ‹ˆλ‹€. μ œκ°€ κ³΅μœ ν•˜κ³ ν”ˆ νŒλ“€μ€λ…Έλ“œ 및 νŒŒλ“œ μŠ€μΌ€μ€„λ§HA μœ μ§€μΏ λ²„λ„€ν‹°μŠ€ λ§€λ‹ˆνŽ˜μŠ€νŠΈ 관리IaCμž…λ‹ˆλ‹€. κ·ΈλŸΌ λ°”λ‘œ 본둠으둜 가보죠. λ ›μΈ λ‘λ”μ½”λ“œ~   λ…Έλ“œ 및 νŒŒλ“œ μŠ€μΌ€μ€„λ§ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό 처음 κ³΅λΆ€ν–ˆμ„ λ•Œ, λ…Έλ“œ 및 νŒŒλ“œ μŠ€μΌ€μ€„λ§ νŒŒνŠΈλŠ” κ·Έλ ‡κ²Œ μœ μ‹¬νžˆ 보지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. κ·Έλ ‡κ²Œ μ–΄λ €μ›Œ 보이지 μ•Šμ•˜κ±°λ“ μš”. κ·Έλƒ₯ Resource Request/Limit, NodeAffinity/PodAffinity/AntiAffinity λ“± yaml 에 μž‘μ„±ν•˜λ©΄ νŒŒλ“œλŠ” 그에 맞게 μ•Œμ•„μ„œ 배포가 λ˜λ‹ˆκΉμš”. λ‹Ήμ—°ν•œ 것이 곡뢀할땐 기껏해야 3개 μ •λ„μ˜ νŒŒλ“œλ‘œ μ§„ν–‰ν•˜λŠ”λ°, ν˜„μ‹€μ—μ„  μ΅œμ†Œ λͺ‡ 백개..

article thumbnail
[Github Action] λ‚΄μ§λ‚΄λ§Œ - Setup Python Arm64 μ•‘μ…˜ λ§Œλ“€κΈ° (ν•˜νŽΈ)
DevOps/Github Action 2024. 6. 5. 01:53

ν˜„μž¬ 글은 μƒνŽΈμ—μ„œ μ΄μ–΄μ§‘λ‹ˆλ‹€.λ“€μ–΄κ°€κΈ° μ•žμ„œ ν•΄λ‹Ή κΈ€μ—μ„œλŠ” C Compiler 에 λŒ€ν•œ 지식을 ν•„μš”λ‘œ ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ „ C Compiler 에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ§€ λͺ»ν•˜κΈ° λ•Œλ¬Έμ— ν‹€λ¦° 뢀뢄이 μžˆμ„ 수 있으며, μ–Έμ œλ“ μ§€ μ§€μ λ°”λžλ‹ˆλ‹€. 그리고 Github Action κ³Ό κ΄€λ ¨λœ κ°œλ… 뢀뢄은 λ”°λ‘œ μ„€λͺ…ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.  μ‹œλ‚˜λ¦¬μ˜€λŠ” 크게 Local μ˜μ—­κ³Ό Remote(Git Runner) μ˜μ—­μœΌλ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.  Local Local μ˜μ—­λΆ€ν„° μ‹œμž‘ν•΄λ³΄μ£ . Local μ˜μ—­μ—μ„  미리 Python 을 λΉŒλ“œ ν•œ 후에 Artifacts Repository 에 μ—…λ‘œλ“œ ν•©λ‹ˆλ‹€.Official Setup Python μ•‘μ…˜μ„ 보면 versions-manifest.json 에 Python 을 λ‹€μš΄λ°›μ„ 수 μžˆλŠ” URL 이 λͺ…μ‹œλ˜..

article thumbnail
[Github Action] λ‚΄μ§λ‚΄λ§Œ - Setup Python Arm64 μ•‘μ…˜ λ§Œλ“€κΈ° (μƒνŽΈ)
DevOps/Github Action 2024. 5. 26. 16:57

λ“€μ–΄κ°€κΈ° μ•žμ„œ ν•΄λ‹Ή κΈ€μ—μ„œλŠ” C Compiler 에 λŒ€ν•œ 지식을 ν•„μš”λ‘œ ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ „ C Compiler 에 λŒ€ν•΄ μžμ„Έν•˜κ²Œ μ•Œμ§€ λͺ»ν•˜κΈ° λ•Œλ¬Έμ— ν‹€λ¦° 뢀뢄이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 지적은 μ–Έμ œλ“ μ§€ ν™˜μ˜ν•©λ‹ˆλ‹€ :) Github Action Marketplace μ—λŠ” λ‹€μ–‘ν•œ μ•‘μ…˜λ“€μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. κ·Έ 쀑 Setup Node, Setup Go, Setup Python μ•‘μ…˜ 등을 ν†΅ν•΄μ„œ ν•„μš”ν•œ μ–Έμ–΄λ‚˜ νˆ΄μ„ λŸ¬λ„ˆμ— μ„€μΉ˜ν•˜κ²Œ λ©λ‹ˆλ‹€. λ§Œμ•½ λŸ¬λ„ˆμ—μ„œ 파이썬이 ν•„μš”ν•˜λ‹€λ©΄,  Setup Python μ•‘μ…˜μ„ μ‹€ν–‰ν•΄μ„œ νŒŒμ΄μ¬μ„ μ‚¬μš©ν•  수 μžˆλŠ” ν™˜κ²½μ„ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.  κ·ΈλŸ°λ°,  μ•„μ‰½κ²Œλ„ Setup Python μ•‘μ…˜μ€ Linux x64, Windows x64, MacOS Apple Silicon(Intel 포함) 은 지원..

article thumbnail
[K6] K6 λ₯Ό μ‹œμž‘ν•˜κΈ° μ „ μ•Œμ•„λ‘λ©΄ 쒋은 점
DevOps/K6 2024. 5. 6. 17:45

k6 λŠ” Grafana μ‚¬μ—μ„œ μ œκ³΅λ˜λŠ” 퍼포먼슀 ν…ŒμŠ€νŠΈ νˆ΄μž…λ‹ˆλ‹€. k6 λ₯Ό μ΄μš©ν•˜λ©΄ 마치 μ—¬λŸ¬ λͺ…μ˜ μœ μ €κ°€ μžˆλŠ” κ²ƒμ²˜λŸΌ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 퍼포먼슀 ν…ŒμŠ€νŠΈλ₯Ό 진행할 수 μžˆμŠ΅λ‹ˆλ‹€. Smoke Test, Load Test, Stress Test λ“± λ‹€μ–‘ν•œ ν…ŒμŠ€νŠΈλ₯Ό μ‰½κ²Œ 진행할 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. κ·Έλ¦¬κ³  μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ 제곡되기 λ•Œλ¬Έμ— 어렡지 μ•Šκ²Œ ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μž‘μ„±ν•  μˆ˜λ„ 있죠. μ•„λž˜λŠ” μ•„μ£Ό κ°„λ‹¨ν•œ k6 μŠ€ν¬λ¦½νŠΈμž…λ‹ˆλ‹€.import http from 'k6/http';import { sleep } from 'k6';export const options = { vus: 10, duration: "10s",}export default function() { http.get('http://test.k..

article thumbnail
[Terraform] Multi-Cross-Backend X Multi-Cross-Account = μ„ΈλΆ„ν™”λœ μ•‘μ„ΈμŠ€ μ œμ–΄
DevOps/Terraform 2024. 4. 24. 23:30

ν…ŒλΌνΌμ€ λŒ€ν‘œμ μΈ IaC λ„κ΅¬λ‘œ AWS 와 같은 ν΄λΌμš°λ“œ ν™˜κ²½μ„ μ½”λ“œλ‘œ ꡬ성할 수 μžˆλ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ¦¬κ³  보톡 ν΄λΌμš°λ“œ ν™˜κ²½μ€ Dev κ³Ό Prod 으둜 λ‚˜λ‰˜κ²Œ λ©λ‹ˆλ‹€.  ν•œνŽΈ, ν…ŒλΌνΌμ„ μ΄μš©ν•΄μ„œ λ¦¬μ†ŒμŠ€λ₯Ό μƒμ„±ν•˜κ²Œ 되면 backend λΌλŠ” 곳에 tfstate λ₯Ό μ €μž₯ν•˜κ²Œ λ©λ‹ˆλ‹€.tfstate λŠ” λ¦¬μ†ŒμŠ€μ˜ ꡬ성 정보λ₯Ό 가지고 μžˆλŠ” 파일이고, backend λŠ” μ΄λŸ¬ν•œ tfstate λ₯Ό μ €μž₯ν•˜λŠ” λ³΄κ΄€μ†Œ μž…λ‹ˆλ‹€. backend λŠ” 둜컬이 될 μˆ˜λ„ 있고, AWS S3 와 같은 였브젝트 μŠ€ν† λ¦¬μ§€λ„ 될 수 μžˆμŠ΅λ‹ˆλ‹€. ν•œλ²ˆ, AWS S3 에 Demo 버킷을 Dev ν™˜κ²½κ³Ό Prod ν™˜κ²½μ— 같은 μ½”λ“œλ₯Ό 가지고 λ™μΌν•˜κ²Œ μƒμ„±ν•œλ‹€κ³  κ°€μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ˜ˆμ œ μ½”λ“œλŠ” μ—¬κΈ°μ„œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€! μ‚¬μš©..

article thumbnail
[Container] 무심코 Dockerfile 에 λ³΅μ‚¬ν•œ credentials... μ•ˆμ „ν• κΉŒ?
DevOps/Container 2024. 3. 19. 22:42

κ°œλ°œμ„ ν•˜λŠ”λ° μžˆμ–΄ μ»¨ν…Œμ΄λ„ˆλŠ” 더 이상 빠질 수 없을 만큼 μ€‘μš”ν•œ κ°œλ…μ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 그리고 Docker λŠ” μ»¨ν…Œμ΄λ„ˆ λ§€λ‹ˆμ§€ 툴 쀑 κ°€μž₯ λŒ€ν‘œμ μ΄λΌκ³  λ³Ό 수 있죠. μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄μ„  이미지가 ν•„μš”ν•˜κ³  보편적으둜 Docker λ₯Ό 톡해 이미지λ₯Ό λ§Œλ“€κ²Œ λ©λ‹ˆλ‹€. Dockerfile 에 μž‘μ„± ν•œ ν›„ Docker μ»€λ§¨λ“œλ₯Ό μ΄μš©ν•˜λ©΄ 이미지가 λ§Œλ“€μ–΄μ§€κ³  μ•„μ£Ό μ‰½κ²Œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이미지λ₯Ό λΉŒλ“œ ν•˜λŠ” 데 μžˆμ–΄μ„œ λ¬Όλ‘  κ²½λŸ‰ν™”λ„ μ€‘μš”ν•˜μ§€λ§Œ, κ·Έ λͺ»μ§€ μ•Šκ²Œ 이미지 λ³΄μ•ˆλ„ μ€‘μš”ν•©λ‹ˆλ‹€. --previliged κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” κ±Έ μ§€μ–‘ν•˜κ³ , Dockerfile 에 μ§μ ‘μ μœΌλ‘œ crendentials κ΄€λ ¨ν•œ 정보λ₯Ό μΆ”κ°€(COPY) ν•˜λŠ” κ±Έ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. trivy λ₯Ό μ΄μš©ν•˜λ©΄ μ†μ‰½κ²Œ μ΄λ―Έμ§€μ˜ 취약점 검사..

article thumbnail
[Kubernetes] HPA(Horizontal Pod Autoscaler) μ•Œκ³ λ¦¬μ¦˜
DevOps/Kubernetes 2024. 2. 25. 16:32

μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ—λŠ” 3κ°€μ§€μ˜ AutoScaler κ°€ μžˆμŠ΅λ‹ˆλ‹€. HPA, VPA, CA μ£ . κ°„λ‹¨νžˆ μ„€λͺ…ν•΄λ³΄μžλ©΄, HPA : Horizontal Pod Autoscaler 의 μ€„μž„λ§λ‘œ, νŒŒλ“œμ˜ 갯수λ₯Ό ν™•μž₯/μΆ•μ†Œ ν•΄μ€Œ VPA : Vertical Pod Autoscaler 의 μ€„μž„λ§λ‘œ, νŒŒλ“œμ˜ κ°―μˆ˜κ°€ μ•„λ‹Œ μ§€μ •λœ λ¦¬μ†ŒμŠ€λ₯Ό ν™•μž₯/μΆ•μ†Œ ν•΄μ€Œ CA : Cluster Autoscaler 의 μ€„μž„λ§λ‘œ, λ…Έλ“œμ˜ 갯수λ₯Ό ν™•μž₯/μΆ•μ†Œ ν•΄μ€Œ HPA, VPA λŠ” Metrics Server κ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜λ©°, 또 VPC 같은 κ²½μš°λŠ” λ”°λ‘œ μ„€μΉ˜ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. 그리고 CA λŠ” 보톡 Karpenter λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” HPA 에 λŒ€ν•΄ λ‹€λ€„λ³΄κ³ μž ν•˜λŠ”λ°, 사싀 HPA λŠ” μ–΄λ €μš΄ κ°œλ…μ΄ 크게 μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ”°..

article thumbnail
[Terraform] -migrate-state vs. -reconfigure
DevOps/Terraform 2024. 2. 19. 23:28

ν…ŒλΌνΌμ„ 처음 μ‹œμž‘ν•˜λ©΄ ν—·κ°ˆλ¦¬λŠ” λͺ…λ Ήμ–΄ μ˜΅μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ terraform init λͺ…λ Ήμ–΄μ˜ -migrate-state 와 -reconfigure μ£ . 보톡 backend ꡬ성을 λ³€κ²½ν•˜λ©΄ ν•΄λ‹Ή μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λΌλŠ” λͺ…λ Ήμ–΄λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ‘œκ·Έμ—μ„œ -migrate-state 와 -reconfigure 에 λŒ€ν•œ μ„€λͺ…이 λ‚˜μ™€μžˆμ§€λ§Œ λ”±νžˆ μ™€λ‹Ώμ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. tfstate 의 λ°©ν–₯성을 μ’Œμ§€μš°μ§€ ν•˜λŠ” μ˜΅μ…˜μ΄κΈ° λ•Œλ¬Έμ— 잘λͺ» 썼닀간 인프라가 꼬일 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λΆ„λͺ… λ³€κ²½(0 to change)ν•˜λŠ” 건데 μƒˆλ‘­κ²Œ(1 to add) μƒμ„±ν•œλ‹€λŠ” 문ꡬλ₯Ό λ³Ό 수 있죠. 이런 κ²½μš°λŠ” 보톡 backend ꡬ성을 λ³€κ²½ν•˜κ³ , -reconfigure λ₯Ό μ‚¬μš©ν–ˆμ„ λ•Œ λ°œμƒν•©λ‹ˆλ‹€. μ˜ˆμ œμ—¬μ„œ λ”± ν•˜λ‚˜μ˜ state 만 μ‘΄μž¬ν•˜..

article thumbnail
[Cert manager] μ„œλΉ„μŠ€ 도메인 svc.cluster.local κ³Ό HTTPS ν†΅μ‹ ν•˜κΈ°
DevOps/Cert Manager 2024. 2. 5. 21:06

μΏ λ²„λ„€ν‹°μŠ€ 내뢀끼리 톡신을 ν•  λ•Œ 보톡 μ„œλΉ„μŠ€μ˜ 도메인 svc.cluster.local 을 μ΄μš©ν•˜μ—¬ ν†΅μ‹ ν•˜κ²Œ λ©λ‹ˆλ‹€. μ™ΈλΆ€μ—μ„œ λ‚΄λΆ€λ‘œ λ“€μ–΄μ˜€λŠ” 톡신에 λŒ€ν•΄μ„œλŠ” Ingress λ₯Ό μ΄μš©ν•΄ https 톡신을 ν•˜κ²Œλ˜μ£ . ν•˜μ§€λ§Œ Ingress λŠ” λ‚΄λΆ€ 톡신에 λŒ€ν•΄μ„œλŠ” https 톡신을 보μž₯해주진 μ•Šμ£ . 이 뢀뢄에 λŒ€ν•΄μ„œλŠ” Istio 의 mTLS λ₯Ό μ΄μš©ν•΄μ„œ νŒŒλ“œμ™€μ˜ 톡신은 λͺ¨λ‘ https 톡신을 ν•˜κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Istio 의 mTLS κ°€ κΆκΈˆν•˜λ‹€λ©΄? [Istio] μ‰Ώ! 우리만의 비밀이야 - mTLS (ν™•μΈνŽΈ) [Istio] μ‰Ώ! 우리만의 비밀이야 - mTLS (κ²€μ¦νŽΈ) κ·Έλ ‡λ‹€λ©΄ mTLS λ₯Ό μ΄μš©ν•˜μ§€ μ•Šκ³  λ‚΄λΆ€ 톡신은 μ–΄λ–»κ²Œ https 톡신을 ν•  수 μžˆμ„κΉŒμš”? 정닡은 κ°„λ‹¨ν•©λ‹ˆλ‹€. νŒŒλ“œ λ§ˆλ‹€ certifica..

article thumbnail
[Kubernetes] Control Plane κ³Ό Data Plane 이 μΉœκ΅¬κ°€ λ˜λŠ” 방법 - kubeadm init 편
DevOps/Kubernetes 2024. 1. 24. 23:06

EKS 와 같은 ν΄λΌμš°λ“œκ°€ μ œκ³΅ν•΄μ£ΌλŠ” μΏ λ²„λ„€ν‹°μŠ€κ°€ μ•„λ‹Œ, μ˜¨ν”„λ ˆλ―ΈμŠ€ ν™˜κ²½μ—μ„œ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό μ„€μΉ˜ν•œλ‹€κ³  ν•˜λ©΄ 보톡 kubeadm μ΄λΌλŠ” νˆ΄μ„ μ΄μš©ν•΄μ„œ κ΅¬μ„±ν•˜κ²Œ λ©λ‹ˆλ‹€. Control Plane 은 kubeadm init λ₯Ό 톡해 κ΅¬μ„±λ˜κ³ , Data Plane 은 kubeadm join 을 톡해 μΏ λ²„λ„€ν‹°μŠ€μ— μ‘°μΈν•˜κ²Œ λ©λ‹ˆλ‹€. kubeadm 툴 ν•˜λ‚˜λ©΄ API Server, Scheduler, Control Manager, ETCD λ“± Control Plane 에 ν•„μš”ν•œ λͺ¨λ“  것듀이 λ§ˆλ²•μ²˜λŸΌ μžλ™μœΌλ‘œ κ΅¬μ„±λ˜μ£ . λ¬Όλ‘  kubelet 그리고 containerd 와 같은 cri-κ΅¬ν˜„μ²΄λŠ” 이미 μ‹€ν–‰λ˜κ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€! μžλ™μ΄λž€ 것이 ν™•μ‹€νžˆ νŽΈμ˜μ„±μ„ μ œκ³΅ν•΄μ£ΌκΈ΄ ν•˜μ§€λ§Œ, μžλ™μœΌλ‘œ κ΅¬μ„±λ˜κΈ° λ•Œλ¬Έμ— κ·Έ μ•ˆμ—μ„œ 무슨 일이 일어..

article thumbnail
[Kubernetes] 둜그 λ•Œλ¬Έμ— λ…Έλ“œ λ””μŠ€ν¬κ°€ λΆ€μ‘±ν•˜λ©΄? 이미지가 λ…Έλ“œ λ””μŠ€ν¬λ₯Ό μ „λΆ€ μ°¨μ§€ν•˜λ©΄ μ–΄λ–‘ν•˜μ§€? - Disk Pressure μ˜ˆλ°©ν•˜κΈ°
DevOps/Kubernetes 2024. 1. 9. 00:10

μ˜ˆμ „λΆ€ν„° μΏ λ²„λ„€ν‹°μŠ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” 데 μžˆμ–΄μ„œ κΆκΈˆν•œ 점이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. "μ—„μ²­ λ‚˜κ²Œ λ§Žμ€ 둜그λ₯Ό μƒμ„±ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ“€λ‘œ 인해 λ…Έλ“œμ˜ λ””μŠ€ν¬κ°€ 뢀쑱해지면 μ–΄λ–‘ν•˜μ§€?" "계속 μƒˆλ‘œμš΄ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό λ‹€μš΄ λ°›μ•„μ„œ 그둜 인해 λ…Έλ“œμ˜ λ””μŠ€ν¬κ°€ 뢀쑱해지면 μ–΄λ–‘ν•˜μ§€?" λ…Έλ“œμ˜ λ””μŠ€ν¬κ°€ λΆ€μ‘±ν•˜κ²Œ 되면 λ…Έλ“œμ—μ„œ DiskPressure λΌλŠ” λ©”μ‹œμ§€λ₯Ό λ±‰κ²Œ 될 κ²ƒμž…λ‹ˆλ‹€. 그런데 κΆκΈˆν•œ μš”μ μ€ λ””μŠ€ν¬κ°€ λΆ€μ‘±ν•  λ•Œ "μ–΄λ–»κ²Œ ν•΄κ²°ν•˜λƒ" κ°€ μ•„λ‹ˆκ³  "μ–΄λ–»κ²Œ μ˜ˆλ°©ν•˜λƒ" μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ 이번 κΈ€μ—μ„œλŠ” μ˜ˆλ°©ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ³ μž ν•©λ‹ˆλ‹€. λ ›μΈ λ‘λ”μ½”λ“œ~ μ €λŠ” 개인적으둜 μΏ λ²„λ„€ν‹°μŠ€λ₯Ό κ΄€λ¦¬ν•˜λ©΄μ„œ κ°€μž₯ μ€‘μš”μ‹œν•˜κ²Œ μƒκ°ν•˜λŠ” ν‚€μ›Œλ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ μΌμ‹œμ (empheral) κ³Ό 동적(Dynamic) μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μΏ λ²„λ„€ν‹°μŠ€μ˜ κ°€μž₯ κΈ°λ³Έ..

article thumbnail
[Github Action] MacOS.. λ„Œ μ™œ ARC 지원이 μ•ˆλ˜μ„œ... - Runner with MacOS
DevOps/Github Action 2023. 11. 12. 18:11

μΏ λ²„λ„€ν‹°μŠ€ ν™˜κ²½μ—μ„  ARC λ₯Ό μ΄μš©ν•˜λ©΄ 어렡지 μ•Šκ²Œ λ‹€μ–‘ν•œ OS μœ„μ— μ˜€ν† μŠ€μΌ€μΌλ§μ— κΈ°λ°˜ν•œ Runner κ΅¬ν˜„μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. Karpenter 와 ν•¨κ»˜λΌλ©΄ 더 효율적이죠. (Karpenter κ³Ό κΆκΈˆν•˜λ‹€λ©΄ μ—¬κΈ° μ°Έκ³ , ARC κ°€ κΆκΈˆν•˜λ‹€λ©΄ μ—¬κΈ° μ°Έκ³ ) λ˜ν•œ EKS μ—μ„œ Linux 와 Windows 기반의 λ…Έλ“œλ₯Ό 지원해주기 λ•Œλ¬Έμ— λ„μš°κΈ°λ§Œ ν•œλ‹€λ©΄ νŒŒλ“œ λ‹¨μœ„λ‘œ Runner λ₯Ό 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. (EKS μ—μ„œ Windows λ₯Ό ν™œμ„±ν™” ν•˜λŠ” 방법이 κΆκΈˆν•˜λ‹€λ©΄ μ—¬κΈ° μ°Έκ³ ) ν•˜μ§€λ§Œ MacOS λŠ” μ–˜κΈ°κ°€ λ‹¬λΌμš”.. EKS μ—μ„œ 지원을 μ•ˆν•΄μ€λ‹ˆλ‹€.. κ·Έλž˜μ„œ λ§Œμ•½ MacOS 기반의 μ›Œμ»€ λ…Έλ“œλ₯Ό ν”„λ‘œλΉ„μ €λ‹ ν•˜λ €κ³  ν•œλ‹€λ©΄, μ•„λ§ˆ MacOS 기반의 μΈμŠ€ν„΄μŠ€λ₯Ό λ„μš΄ ν›„ κ±°κΈ°μ„œ μˆ˜λ™μœΌλ‘œ EKS ν΄λŸ¬μŠ€ν„°μ— 쑰인해야 ν•  κ²ƒμž…λ‹ˆλ‹€...

article thumbnail
[Github Action] EKS, Karpenter 그리고 Window Runner
DevOps/Github Action 2023. 11. 6. 23:09

λ“€μ–΄κ°€κΈ° μ•žμ„œ μ €λŠ” Windows λ₯Ό 많이 닀뀄보지 μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λΆ€μ‘±ν•˜κ±°λ‚˜ ν‹€λ¦° 뢀뢄이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€! μΏ λ²„λ„€ν‹°μŠ€λŠ” v1.23 버전, Karpenter λŠ” v0.31 λ²„μ „μž…λ‹ˆλ‹€. μΏ λ²„λ„€ν‹°μŠ€(EKS) ν™˜κ²½μ— μœˆλ„μš°μ™€ Karpenter λ₯Ό ν™œμ„±ν™” ν•˜λŠ” 방법에 λŒ€ν•΄μ„  μ—¬κΈ°λ₯Ό μ°Έκ³ ν•˜μ„Έμš”. Karpenter 에 λŒ€ν•΄ κΆκΈˆν•˜λ‹€λ©΄ μ—¬κΈ°λ₯Ό μ°Έκ³ ν•˜μ„Έμš”. 그럼 λ ›μΈ λ‘λ”μ½”λ“œ~ μš°λ¦¬κ°€ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” 방법은 λ°”λ‘œ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ„ μœ„ν•¨μ΄μ£ . ν•˜λ‚˜μ˜ λ§ˆμŠ€ν„° ν”Œλ ˆμΈμœΌλ‘œ μ—¬λŸ¬ λ…Έλ“œμ˜ μ—¬λŸ¬ νŒŒλ“œλ₯Ό μ’€ 더 μ‰½κ²Œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄μ„œμž…λ‹ˆλ‹€. Action Runner μ—­μ‹œ μ˜ˆμ™ΈλŠ” μ•„λ‹ˆμ£ . Action Runner Controller λ₯Ό μ΄μš©ν•˜λ©΄ μ‰½κ²Œ μΏ λ²„λ„€ν‹°μŠ€ ν™˜κ²½μ—μ„œ νŒŒλ“œ λ‹¨μœ„μ˜ Runner 배포가 κ°€λŠ₯ν•©λ‹ˆλ‹€. 맨 처음 Action..

article thumbnail
[Kubernetes] λ„ˆ λ‚΄ λ…Έλ“œκ°€ 되라! - EKS Windows ν™œμ„±ν™”
DevOps/Kubernetes 2023. 10. 25. 01:26

μš°λ¦¬λŠ” 보톡 EKS 의 μ›Œμ»€ λ…Έλ“œλ‘œ x86 이든, arm64 이든 λ¦¬λˆ…μŠ€λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 특히 EKS ν™˜κ²½μ΄λΌλ©΄ μ•„λ§ˆμ‘΄ λ¦¬λˆ…μŠ€2λ₯Ό μ‚¬μš©ν•˜κ² μ§€μš”. 근데 κ°„ν˜Ή μ›Œμ»€ λ…Έλ“œλ‘œ μœˆλ„μš°λ₯Ό ν•„μš”λ‘œ ν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 라이브러리λ₯Ό λ§Œλ“€μ—ˆλŠ”λ°, λ¦¬λˆ…μŠ€ 뿐만 μ•„λ‹ˆλΌ μœˆλ„μš° ν™˜κ²½μ—μ„œλ„ 이 라이브러리λ₯Ό ν•„μš”λ‘œ ν•©λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 이 라이브러리λ₯Ό μ΄λ―Έμ§€λ‘œ λΉŒλ“œν•˜λ €λ©΄ λ¦¬λˆ…μŠ€κ°€ μ•„λ‹Œ μœˆλ„μš° ν™˜κ²½μ—μ„œ λ§Œλ“€μ–΄μ•Ό ν•˜μ£ . λ‹€ν–‰νžˆ EKS λŠ” μœˆλ„μš°λ₯Ό μ§€μ›ν•΄μ€λ‹ˆλ‹€. λ˜ν•œ Karpenter μ—μ„œλ„ μœˆλ„μš°λ₯Ό 지원해주죠. 그럼 μ–΄λ–»κ²Œ EKS ν™˜κ²½μ—μ„œ μœˆλ„μš°λ₯Ό ν™œμ„±ν™” ν•˜λŠ”μ§€, 이후 Karpenter μ—μ„œ μœˆλ„μš°λ₯Ό μ–΄λ–»κ²Œ ν”„λ‘œλΉ„μ €λ‹ ν•˜λŠ”μ§€ ν•œλ²ˆ μ•Œμ•„λ³΄λ„λ‘ ν•˜μ£ . 참고둜 μ§„ν–‰ν•œ μΏ λ²„λ„€ν‹°μŠ€ 버전은 1.23 이고, Karpenter λŠ” 0.31..

article thumbnail
[Github Action] cmake 와 일곱 파이썬
DevOps/Github Action 2023. 10. 6. 18:10

κ°œλ°œμ„ ν•˜λ‹€λ³΄λ©΄ ν•œκ°€μ§€ λ²„μ „λΏλ§Œ μ•„λ‹ˆλΌ λ‹€μ–‘ν•œ 버전을 μ§€μ›ν•΄μ€˜μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ νŒŒμ΄μ¬μ„ μ‚¬μš©ν•œλ‹€λ©΄ 3.8, 3.9, 3.10 버전 λͺ¨λ‘ 지원해주어야 ν•˜μ£ . λ²„μ „λΏλ§Œ OS 도 Linux x86, arm, Window, MacOS λ“± λ‹€μ–‘ν•˜κ²Œ 지원해주어야 ν•©λ‹ˆλ‹€. C/C++ 둜 λ§Œλ“€μ–΄μ§„ ν”„λ‘œμ νŠΈλ₯Ό swig λ₯Ό 톡해 파이썬, μžλ°”, Go λ“± λ‹€μ–‘ν•œ μ–Έμ–΄κ³Ό λ‹€μ–‘ν•œ λ²„μ „μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” νŒ¨ν‚€μ§€λ₯Ό λ§Œλ“€μ–΄μ•Ό ν–ˆλ˜ 적이 μžˆμŠ΅λ‹ˆλ‹€. C/C++ ν”„λ‘œμ νŠΈμ— μ‚¬μš©λ˜λŠ” CMakeLists.txt(cmake) 와 Github Action 의 matrix λ₯Ό μ΄μš©ν•˜λ©΄ 어렡지 μ•Šκ²Œ λ‹€μ–‘ν•œ λ²„μ „μ˜ νŒ¨ν‚€μ§€λ₯Ό λ§Œλ“€ 수 μžˆμ„ κ±° κ°™μŠ΅λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” 파이썬과 Linux x86 만 닀루며, 3.8, 3.9, 3.10 λ²„μ „μ˜ 파이..

article thumbnail
[Github Action] λ„ˆ cache λœκ±°μ•Ό! - ccache λ₯Ό μ΄μš©ν•œ c/c++ λΉŒλ“œ
DevOps/Github Action 2023. 10. 5. 22:16

C/C++ 기반의 ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•˜λŠ”λ° μžˆμ–΄ 보톡 cmake 와 make λ₯Ό μ΄μš©ν•΄μ„œ λΉŒλ“œλ₯Ό ν•˜κ²Œ λ©λ‹ˆλ‹€. κ°„λž΅ν•˜κ²Œ cmake λŠ” CMakeList.txt λ₯Ό 기반으둜 Makefile λ₯Ό λ§Œλ“€μ–΄μ£Όκ³ , make λŠ” Makefile λ₯Ό 톡해 ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•©λ‹ˆλ‹€. cmake λŠ” λΉŒλ“œλ₯Ό μœ„ν•œ ν”„λ‘œμ„ΈμŠ€μ΄κ³ , make λŠ” μ‹€μ œλ‘œ λΉŒλ“œλ₯Ό ν•΄μ£ΌλŠ” ν”„λ‘œμ„ΈμŠ€μΈ μ…ˆμ΄μ£ . 그런데 C/C++ ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•˜λŠ”λ°, λΉŒλ“œ μ‹œκ°„μ΄ λŒ€λž΅ 1μ‹œκ°„ 정도 μ†Œλͺ¨λ©λ‹ˆλ‹€. λ„ˆλ¬΄ μ˜€λž˜κ±Έλ €μš”.. μ§„ν–‰ν•œ runner λŠ” 2GB Memory 의 μΈμŠ€ν„΄μŠ€μž…λ‹ˆλ‹€. λΉŒλ“œ μ‹œκ°„μ„ λ‹¨μΆ•μ‹œν‚€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. λΉŒλ“œ μ‹œκ°„μ„ λ‹¨μΆ•μ‹œν‚€κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ κ°€μž₯ λ¨Όμ € λ– μ˜€λ₯΄λŠ” 것은 λ°”λ‘œ 캐싱 μž…λ‹ˆλ‹€. 맀번 같이 νŒŒμΌμ„ λΉŒλ“œν•˜μ§€ 말고, λ°˜λ³΅λ˜λŠ” λΉŒλ“œ νŒŒμΌμ„ μΊμ‹±ν•΄λ†“μœΌλ©΄ μ‹œκ°„μ΄..

article thumbnail
[Cert manager] Let's Encrypt λ₯Ό μ΄μš©ν•΄μ„œ Istio Gateway 에 TLS 을 μ μš©ν•΄λ³΄μž! - Route53
DevOps/Cert Manager 2023. 9. 13. 23:52

μ§€λ‚œ κΈ€μ—μ„œ Cloudflare μ—μ„œ μƒμ„±ν•œ 도메인과 Let's Encrypt λ₯Ό μ΄μš©ν•΄μ„œ TLS λ₯Ό httpbin 에 μ μš©ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€. μ΄λ²ˆμ—λŠ” Cloudflare 보닀 더 λŒ€μ€‘μ μΈ Route53 μ—μ„œ μƒμ„±ν•œ 도메인에도 TLS λ₯Ό μ μš©ν•΄λ³΄κ³ μž ν•©λ‹ˆλ‹€. Route53 μ—μ„œ κ΅¬λ§€ν•œ 도메인에 λŒ€ν•΄μ„œλŠ” AWS ACM 을 μ΄μš©ν•΄μ„œ 무료둜 TLS λ₯Ό λ°œκΈ‰λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 λ°œκΈ‰λ°›μ€ TLS λ₯Ό AWS ALB 에 λ°”λ‘œ μ μš©ν•˜κ²Œ 되면 μ•„μ£Ό μ‰½κ²Œ TLS 톡신이 κ°€λŠ₯ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ ALB 와 Istio λ₯Ό μ΄μš©ν•˜κ²Œ 되면 λŒ€λž΅ μ•„λž˜ κ·Έλ¦Όκ³Ό κ°™μ£ . ν•˜μ§€λ§Œ μ™ΈλΆ€λ§Œ TLS λ₯Ό 톡신이 κ°€λŠ₯ν•˜λ―€λ‘œ 내뢀에선 TLS 톡신이 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€. ACM 을 톡해 도메인에 λŒ€ν•œ Cert λ₯Ό λ°œκΈ‰λ°›μ„ 수 μžˆλŠ”λ°, 이 값은 λ‹€μš΄λ°›μ•„μ„œ μ‚¬μš©λΆˆκ°€λŠ₯..

article thumbnail
[Cert manager] Let's Encrypt λ₯Ό μ΄μš©ν•΄μ„œ Istio Gateway 에 TLS 을 μ μš©ν•΄λ³΄μž! - Cloudflare
DevOps/Cert Manager 2023. 9. 7. 21:48

이 글은 TLS 에 λŒ€ν•œ 기초적인 κ°œλ…μ΄ ν•„μš”ν•©λ‹ˆλ‹€. μ΅œμ†Œν•œ HTTPS κ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λ©°, CA, CSR, tls.cert λ“±κ³Ό 같은 것이 무엇인지 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€. λ―Έλ‹ˆ PC μ—μ„œ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°λ₯Ό κ΅¬μ„±ν•˜μ—¬ 이것저것 해보고 μžˆλŠ”λ°, 늘 ν•˜λ‚˜ λ§ˆμŒμ— κ±Έλ¦¬λŠ” 것이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ 도메인과 TLS μž…λ‹ˆλ‹€! 도메인 같은 경우 λ§₯ /etc/host 에 μΆ”κ°€ν•΄μ„œ μ‚¬μš©ν•˜κ³  μžˆμ—ˆκ³ , TLS κ°€ μ μš©λ˜μ§€ μ•Šλ‹€λ³΄λ‹ˆ 늘 주의 μš”ν•¨μ„ 달고 μžˆμ—ˆμ£ . AWS ALB λ₯Ό μ‚¬μš©ν•˜λ©΄ Route53 κ³Ό ACM 을 ν†΅ν•΄μ„œ TLS μ μš©ν•˜κΈ° μ‰½μ§€λ§Œ, AWS 없이 TLS λ₯Ό μ μš©ν•˜λ €λ©΄ κ²°κ΅­ TLS λ₯Ό ꡬ맀해야 ν•©λ‹ˆλ‹€. TLS λŠ” 보톡 유료인데, Let's Ecrypt λŠ” 무료둜 TLS 을 μ œκ³΅ν•΄μ£ΌκΈ° λ•Œλ¬Έμ— 이번 κΈ€μ—μ„œλŠ” 둜컬 ν™˜κ²½μ—μ„œ ..

article thumbnail
[Istio] μ‰Ώ! 우리만의 비밀이야 - mTLS (κ²€μ¦νŽΈ)
DevOps/Istio 2023. 8. 17. 22:52

μ§€λ‚œ κΈ€μ—μ„œ Istio mTLS 에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜κ³ , μ μš©λ„ ν•΄λ΄€μŠ΅λ‹ˆλ‹€. 또 Kiali λ₯Ό ν†΅ν•΄μ„œ μ‹€μ œ mTLS κ°€ 적용 λ˜μ—ˆλŠ” 지도 μ•Œμ•„λ΄€μ£ . Kiali μ—μ„œ mTLS κ°€ μ μš©λλ‹€κ³  μ•„μ΄μ½˜μœΌλ‘œ ν‘œμ‹œλ₯Ό ν•΄μ£ΌκΈ΄ ν•˜λŠ”λ° 제 눈으둜 직접 μ•”ν˜Έν™”κ°€ λ˜λŠ”μ§€ ν™•μΈν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 이번 κΈ€μ—μ„œλŠ” Istio 곡식 λ¬Έμ„œμ—μ„œ μ œκ³΅ν•΄μ£ΌλŠ” μ˜ˆμ œμ™€ tcpdump λ₯Ό μ΄μš©ν•΄μ„œ ν•œλ²ˆ 확인해보죠! λ ›μΈ λ‘λ”μ½”λ“œ~ λ“€μ–΄κ°€κΈ° μ•žμ„œ μ£Όμ˜ν•  점이 μžˆμŠ΅λ‹ˆλ‹€! istio-proxy container μ—μ„œ tcpdump λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ sudo λ₯Ό κΆŒν•œμ„ κ°€μ§ˆ 수 μžˆλ„λ‘ privilege λ₯Ό true 둜 μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό 톡해 istio λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. $ istioctl install --set values.global...

article thumbnail
[Kubernetes] AWS EFS Access Points μ™€λŠ” ꢁ합도 μ•ˆλ΄!
DevOps/Kubernetes 2023. 7. 21. 15:05

μŠ€ν† λ¦¬μ§€μ™€ κ΄€λ ¨λœ μΏ λ²„λ„€ν‹°μŠ€ λ¦¬μ†ŒμŠ€μ—λŠ” StorageClass, PersistentVolume 이 μžˆμŠ΅λ‹ˆλ‹€. 보톡 동적인 μŠ€ν† λ¦¬μ§€λŠ” μ›ν•œλ‹€λ©΄ StorageClass (μ΄ν•˜ SC) λ₯Ό, 정적인 μŠ€ν† λ¦¬μ§€λ₯Ό μ›ν•œλ‹€λ©΄ PersistentVolume (μ΄ν•˜ PV) 을 μ‚¬μš©ν•©λ‹ˆλ‹€. ν•œνŽΈ, νŒŒλ“œμ—μ„œ μŠ€ν† λ¦¬μ§€ 연결을 ν•˜λ €λ©΄ PersistentVolumeClaim (μ΄ν•˜ PVC) 을 μ΄μš©ν•΄μ„œ SC λ‚˜ PV λ₯Ό Bound ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. AWS EBS λ₯Ό μ‚¬μš©ν•˜κ²Œ 될 텐데, EBS λ§ŒμœΌλ‘œλŠ” ν•œκ³„κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ ν•˜λ‚˜μ˜ EBS λŠ” 닀쀑 μΈμŠ€ν„΄μŠ€ 연결이 λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 점이죠. 예λ₯Ό λ“€μ–΄ EBS 에 데이터λ₯Ό μ €μž₯ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ Deployment Replica 2 둜 λ°°ν¬ν•œλ‹€κ³  가정해보죠. 그리고 νŒŒλ“œλ“€μ€ μ„œλ‘œ λ‹€λ₯Έ μ›Œ..

article thumbnail
[Istio] μ‰Ώ! 우리만의 비밀이야 - mTLS (ν™•μΈνŽΈ)
DevOps/Istio 2023. 7. 2. 13:37

μΏ λ²„λ„€ν‹°μŠ€ μœ„μ—λŠ” λ‹€μ–‘ν•œ μ„œλΉ„μŠ€λ“€μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. 이 μ„œλΉ„μŠ€λ“€μ΄ ν•˜λ‚˜ν•˜λ‚˜ μƒκ²¨λ‚˜λ‹€ 보면 μ–΄λŠ μƒˆ λͺ‡ 백개, λͺ‡ 천개의 μ„œλΉ„μŠ€λ“€μ΄ μ‘΄μž¬ν•˜κ²Œ λ©λ‹ˆλ‹€. 이런 μ„œλΉ„μŠ€λ“€μ„ μ‰½κ²Œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄μ„œ μ΄μŠ€ν‹°μ˜€λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄μŠ€ν‹°μ˜€λŠ” μ„œλΉ„μŠ€ 메쉬 μ„œλΉ„μŠ€ λΌλŠ” 타이틀에 걸맞게 λ‹€μ–‘ν•œ κΈ°λŠ₯듀을 μ œκ³΅ν•΄μ£ΌλŠ”λ° 이번 κΈ€μ—μ„œλŠ” κ·Έ 쀑 핡심 κΈ°λŠ₯ 쀑 ν•˜λ‚˜μΈ mTLS (Mutual TLS) 에 λŒ€ν•΄ μ•Œμ•„λ³΄κ³ μž ν•©λ‹ˆλ‹€. λ¨Όμ € mTLS κ°€ 무엇인지 μ•Œμ•„λ³΄κΈ° 전에 μ™œ ν•„μš”ν•˜μ§„ λΆ€ν„° μ•Œμ•„λ³΄μ£ . μ΄μŠ€ν‹°μ˜€ 인그레슀 κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό 톡해 μš°λ¦¬λŠ” μΏ λ²„λ„€ν‹°μŠ€ 내뢀에 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ 데이터λ₯Ό 전솑할 λ•Œ μ•”ν˜Έν™”λ₯Ό ν•œ ν›„ μ „μ†‘ν•˜κ²Œ λ˜λŠ”λ° (HTTPS), λ¬Έμ œλŠ” 인그레슀 κ²Œμ΄νŠΈμ›¨μ΄ κΉŒμ§€λ§Œ 데이터가 μ•”ν˜Έν™”κ°€ 되고 μΏ λ²„λ„€ν‹°μŠ€ λ‚΄λΆ€μ—μ„œλŠ” HTTPS κ°€..

article thumbnail
[Karpenter] NVIDIA GPU κ°€ μ‚¬λΌμ§€μ§ˆ μ•Šμ•„μš”!
DevOps/Karpenter 2023. 6. 19. 20:17

Karpenter λŠ” AWS μ—μ„œ 진행 쀑인 μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈλ‘œ μΏ λ²„λ„€ν‹°μŠ€μ—μ„œ AWS ASG 보닀 ν•œ 차원 높은 μˆ˜μ€€μ˜ μŠ€μΌ€μΌλ§μ„ μ œκ³΅ν•΄μ€λ‹ˆλ‹€. Karpenter κ°€ 무엇인지 λͺ¨λ₯΄κ² λ‹€λ©΄ μ—¬κΈ°λ₯Ό μ°Έκ³ ! Karpenter λ₯Ό μ΄μš©ν•˜λ©΄ CPU μΈμŠ€ν„΄μŠ€ 뿐만 μ•„λ‹ˆλΌ GPU μΈμŠ€ν„΄μŠ€ λ˜ν•œ 정말정말 μœ λ™μ μœΌλ‘œ ν”„λ‘œλΉ„μ €λ‹ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Karpenter λ₯Ό μ“°λ©΄ μ“Έ 수둝 "와 이거 μ§„μ§œ 짱인데?" λΌλŠ” 생각이 많이 λ“­λ‹ˆλ‹€. μ•„μ£Ό μœ μš©ν•œ ν”„λ‘œμ νŠΈμΈκ±° κ°™μ•„μš”. CPU μΈμŠ€ν„΄μŠ€ 같은 κ²½μš°μ—λŠ” Karpenter 만 μ„€μΉ˜ν•˜λ©΄ ν”„λ‘œλΉ„μ €λ‹, λ””ν”„λ‘œλΉ„μ €λ‹ λͺ¨λ‘ 잘 λ™μž‘ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ GPU μΈμŠ€ν„΄μŠ€ 경우 ν”„λ‘œλΉ„μ €λ‹μ€ μž˜λ˜μ§€λ§Œ, λ””ν”„λ‘œλΉ„μ €λ‹μ€ λ™μž‘ν•˜μ§€ μ•Šμ•„μš”. μ²˜μŒμ—λŠ” 아직 메이저 λ²„μ „μ΄λΌμ„œ GPU κ΄€λ ¨ν•œ κΈ°λŠ₯이 개발이 μ•ˆλœ ..

article thumbnail
[Github Action] 데이터 μ’€ 맑길게! λ‚˜μ€‘μ— κ·ΈλŒ€λ‘œ λ‹€μ‹œμ€„λž˜? - action cache
DevOps/Github Action 2023. 6. 3. 14:27

μ§€λ‚œ κΈ€μ—μ„œλŠ” Action Controller Runner (μ΄ν•˜ ARC) λ₯Ό μ‚¬μš©ν•  λ•Œ AWS EFS λ₯Ό λ§ˆμš΄νŠΈν•΄μ„œ νŠΉμ • κ²½λ‘œμ— build 에 ν•„μš”ν•œ 데이터λ₯Ό μΊμ‹±ν–ˆμŠ΅λ‹ˆλ‹€. 근데 λ§Œμ•½ AWS EFS 와 같은 데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” μŠ€ν† λ¦¬μ§€κ°€ μ—†λ‹€λ©΄ μ–΄λ–¨κΉŒμš”? λ‹€ν–‰νžˆ μΆ©λΆ„νžˆ 쒋은 λŒ€μ±…μ•ˆμ΄ μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ Github Action μ—μ„œ μ œκ³΅ν•΄μ£ΌλŠ” Action Cache μ΄λΌλŠ” λ…€μ„μž…λ‹ˆλ‹€. Github Action 을 μ‚¬μš©ν•œλ‹€λ©΄ μ•„λ§ˆ 이미 λ‹€λ“€ 잘 μ•„μ‹€ μˆ˜λ„ μžˆκ² κ΅°μš”. Action Cache λŠ” μ’‹μ•„μš” 3.7k λ₯Ό 받을 만큼 λ§Žμ€ μ‚¬λž‘?을 λ°›κ³  μžˆλŠ” μ•‘μ…˜ μ€‘μ˜ ν•˜λ‚˜μž…λ‹ˆλ‹€. λ„νλ¨ΌνŠΈλ₯Ό 보면 κ½€ μžμ„Έν•˜κ²Œ μ„€λͺ…이 λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. 예제 μ½”λ“œλ„ μ‘΄μž¬ν•˜λ©°, 각 ν•„μš”ν•œ with 에 λŒ€ν•΄μ„œλ„ μΉœμ ˆν•˜κ²Œ μ„€λͺ…ν•΄μ£Όκ³  μžˆμŠ΅λ‹ˆλ‹€...

article thumbnail
[Istio] IngressGateway 에 TLS λ₯Ό μ μš©ν•΄λ³΄μž!
DevOps/Istio 2023. 5. 18. 22:47

Istio (μ΄ν•˜ μ΄μŠ€ν‹°μ˜€) λŠ” μΏ λ²„λ„€ν‹°μŠ€μ˜ λŒ€ν‘œμ μΈ μ„œλΉ„μŠ€ 메쉬 μ†ŒμŠ€μž…λ‹ˆλ‹€. 뿐만 μ•„λ‹ˆλΌ μ΄μŠ€ν‹°μ˜€λŠ” 인그레슀 μ»¨νŠΈλ‘€λŸ¬λ„ μ œκ³΅ν•΄μ£ΌκΈ° λ•Œλ¬Έμ— Nginx 와 같은 λ³„λ„μ˜ 인그레슀 μ»¨νŠΈλ‘€λŸ¬κ°€ ν•„μš” μ—†μ–΄μš”. 이번 κΈ€μ—μ„œ Istio 의 핡심 μžμ›μΈ IngressGateway 에 TLS λ₯Ό μ μš©μ‹œμΌœ 보고자 ν•©λ‹ˆλ‹€! Istio λ₯Ό μ„€λͺ…ν•˜λŠ” 글이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— Gateway, VirtualService 와 같은 λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ μ„€λͺ…은 ν•˜μ§€ μ•Šκ² μŠ΅λ‹ˆλ‹€. 그럼 λ ›μΈ λ‘λ”μ½”λ“œ~ μ‹€μŠ΅ ν™˜κ²½μ€ μ•„λž˜μ™€ κ°™μ•„μš”. μΏ λ²„λ„€ν‹°μŠ€ v1.26.2 μ΄μŠ€ν‹°μ˜€ v1.17.2 곡식 λ¬Έμ„œμ— λ‚˜μ™€μžˆλŠ” μ˜ˆμ œλŠ” λΆˆν•„μš”ν•œ λ‚΄μš©μ΄ λ§Žμ•„μ„œ λ”± ν•„μš”ν•œ λΆ€λΆ„λ§Œ μ‹€μŠ΅ν•˜λ €κ³  ν•©λ‹ˆλ‹€. λ§Œμ•½ 더 μžμ„Έν•œ 정보가 κΆκΈˆν•˜λ‹€λ©΄ μ—¬κΈ°λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”. TLS λ₯Ό 적용 ν•  것이기 λ•Œλ¬Έ..

article thumbnail
[Karpenter] λ…Έλ“œμ˜ Deprovisioning 을 μ’€ 더 μ•„λ¦„λ‹΅κ²Œ~
DevOps/Karpenter 2023. 5. 17. 00:04

맀우맀우맀우 μ€‘μš”! Karpenter v0.32 버전뢀터 λ¦¬μ†ŒμŠ€ 이름듀이 λ³€κ²½λ˜μ–΄ μ°Έκ³  λ°”λžλ‹ˆλ‹€. κ°œλ…μ€ λ˜‘κ°™μŠ΅λ‹ˆλ‹€. (ex. Provisioners -> NodePools) Karpenter 의 κ°œλ…μ„ μ•Œκ³  μ‹Άλ‹€λ©΄ μ—¬κΈ° μ°Έκ³ ! Karpenter λ₯Ό 파면 νŒ”μˆ˜λ‘ 정말 μœ μš©ν•œ μ˜€ν”ˆμ†ŒμŠ€μΈκ±° κ°™μ•„μš”. ASG λ₯Ό λ„˜μ–΄μ„œ 훨씬 효율적이고 μœ λ™μ μœΌλ‘œ λ…Έλ“œμ™€ νŒŒλ“œλ₯Ό 관리할 수 있게 ν•΄μ£Όκ±°λ“ μš”. μŠ€μΌ€μ€„λ§ μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜κ³  μžˆλŠ”λ°, Karpenter κ°€ μ—†μ—ˆλ‹€λ©΄ 많이 νž˜λ“€μ—ˆμ„ κ²λ‹ˆλ‹€... 이번 κΈ€μ—μ„œλŠ” Karpenter 의 Deprovisioning 에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€. κ°€μž₯ 핡심이라고 λ³Ό 수 있죠. Deprovisioning κ΄€λ ¨ μ˜΅μ…˜μ€ 크게 2κ°€μ§€λ‘œ λ‚˜λˆŒ 수 μžˆμ–΄μš”. - ttlSecondsAfterEmpty ..

article thumbnail
[Kubernetes] μ•”ν˜Έν™”ν•˜μ§€ μ•Šμ€ μ‹œν¬λ¦Ώμ€ 물가에 내놓은 아이 - Encrypt ETCD (μƒνŽΈ)
DevOps/Kubernetes 2023. 5. 14. 19:20

μΏ λ²„λ„€ν‹°μŠ€μ—μ„œ λ―Όκ°ν•œ λ°μ΄ν„°λŠ” μ‹œν¬λ¦Ώμ„ 톡해 κ΄€λ¦¬λ©λ‹ˆλ‹€. μƒμ„±λœ μ‹œν¬λ¦Ώμ€ mount fs λ˜λŠ” env var 을 ν†΅ν•΄μ„œ νŒŒλ“œμ— μ‹œν¬λ¦Ώ 데이터λ₯Ό λ„˜κ²¨μ€„ 수 있죠. μ‹œν¬λ¦Ώμ„ μƒμ„±ν•œ ν›„, kubectl create secret generic secret1 --from-literal user=admin kubectl create secret generic secret2 --from-literal user=12345678 μ•„λž˜μ™€ 같이 yaml 을 μž‘μ„±ν•΄μ„œ μ‚¬μš©ν•  수 있죠. apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: pod name: pod spec: containers: - image: nginx name: pod resourc..