ν΄λΉ κΈμ AWS λ²μ© ν΄λΌμ°λ μν€ν μ²μ λ°μ΄ν° μ μ‘ λΉμ© μμ보기μ κ±°μ λ€ μ°Έκ³ νμ΅λλ€! ν΄λΌμ°λ λΉμ© μ μ½μ IT νμ¬λΌλ©΄ λ νμ΄μΌ ν μμ μ λλ€. μ΄λ»κ² 보면 ν μ μλ μμ μ΄κΈ°λ ν©λλ€. κ·Έλ¦¬κ³ AWS ν΄λΌμ°λμ EKS λ₯Ό μ΄μνλ μ μ₯μμ λΉμ©μ μ μΌλ©΄ μ μμλ‘ λΉμ°ν μ’μ£ . μΌλΆλ¬ λΉμ©μ λ§μ΄ λμ€κ² νλ €λ μμ§λμ΄λ μμκ²λλ€! νμ§λ§... κ²°κ΅ "λꡬμκ²λ κ·Έλ΄λ―ν κ³νμ μλ€, λΉμ© μ²κ΅¬μλ₯Ό λ°κΈ° μ κΉμ§λ" κ°μ μν©μ΄ νΌμ³μ§λλ€. ν΄λΌμ°λ λΉμ© μΈ‘λ©΄μΌλ‘ λ΄€μ λ ν¬κ² 2κ°μ§λ‘ λλ μ μμ κ² κ°μ΅λλ€.λ°μ΄ν° μ μ‘λ(Data Transfer)κ³Ό 리μμ€ μ¬μ©λ(Resource Usage) μ λλ€. μ΄λ² κΈμμλ AWS μμ λ°μ΄ν° μ μ‘ λΉμ©μ μλ μ μλ λ°©λ²μ λν΄ μ€λͺ νκ³ μ ..
ν΄λΉ κΈμ νλ¦° λΆλΆμ΄ μμ μ μμ΅λλ€. λ§μκ» μ§μ ν΄μ£ΌμΈμ! μΏ λ²λ€ν°μ€ μμ μλ λͺ¨λ νλμ λ Έλλ ephermeral νκ² λμμΈ λμμ΅λλ€. κ·Έμ λ°λΌ νλμ λ Έλλ μΈμ κ°μκΈ° κΈμ¬? ν μ§ λͺ¨λ¦ λλ€. νμ§λ§ κΈμ¬ νλ€κ³ ν΄μ μλΉμ€μ μν₯μ΄ κ°μ μλ©λλ€. κ·Έλ κΈ° λλ¬Έμ μΏ λ²λ€ν°μ€λ₯Ό ꡬμ±ν λ κ³ κ°μ©μ±(HA) μ λ°λμ λλ°λμ΄μΌ ν©λλ€. κ³ κ°μ©μ±μ μ μ§νμ§ μν΄μλ μ¬λ¬ μ μ°¨κ° λλ°λμ΄μΌ νλλ°, μ΄λ² κΈμμλ κ·Έ μ€ Stateful ν μλΉμ€μ κ³ κ°μ©μ±μ μ μ§νλ λ°©λ² μ€ νλμΈ '리λ μ μΆ λ©μ»€λμ¦(Leader Election Mechanism)' μ λν΄ μμλ³΄λ €κ³ ν©λλ€. κ·Έ μ μ Stateless ν μλΉμ€μ κ³ κ°μ©μ±λΆν° μμλ΄ μλ€. Stateless ν νλκ° μ¬λ¬ κ° μκ³ , Se..
κ±°μ λλ¬μ΄ λλλ‘ λΈλ‘κ·Έ κΈμ μμ±νμ§ λͺ»νλλ°, κ°μλ₯Ό μ€λΉνλλ κ·Έλ¬μ΅λλ€!! 3κ°μ μ λ μ€λΉλ₯Ό νλλ°, μ΄μ μΌ λ°μΉμ νκ²λμμ΅λλ€. ν¬μ§ μμ κ·λͺ¨μμ μΏ λ²λ€ν°μ€λ₯Ό μ¬μ©νλ©΄μ νμν ν΄λ€μ΄λ κ³ κ°μ©μ±μ μ μ§νκΈ° μν νλ€μ λ€λ£¨λ κ°μμ λλ€.μΏ λ²λ€ν°μ€ κΈ°λ³Έ κ°λ κ°μλ μλλλ€! μΏ λ²λ€ν°μ€ μνκ³λ CNCF λ₯Ό νλλ‘ μμ²λκ² λ°©λν©λλ€. κ·Έμ λ°λΌ μ΄λ€κ±Έ μ¬μ©ν μ§λ μΏ λ²λ€ν°μ€λ₯Ό μ¬μ©νλ©΄μ ν° κ³ λ―Όκ±°λ¦¬μ λλ€.λ IaC λ₯Ό μ΄μ©ν΄μ μΈνλΌλ₯Ό μ½λλ‘ κ΄λ¦¬νκ³ μΆμν λ°, μ΄λ¬ν κ³ λ―Όκ±°λ¦¬λ₯Ό ν΄κ²°νλλ° μμ΄μ μ‘°κΈμ΄λΌλ λμμ΄ λμμΌλ©΄ νλ λ°λμ κ°μλ₯Ό μ€λΉνκ² λμμ΅λλ€. 짧μ μκ° λ΄μ μ΅λν λ§μ κ±Έ λ΄μλμ΄μΌ νκΈ° λλ¬Έμ λ€μ λΆμ‘±ν λΆλΆμ΄ μμΌλ, "μ΄λ°μμΌλ‘ μΏ λ²λ€ν°μ€κ° λμκ°λ ꡬλ"..
μμ μ μλμ κ°μ κΈμ μμ±νμλλ°, μ΄ν ν¬κ² λ§μ§μ§ μμμ μ΄λ²μ BIOS λͺ¨λ μΌμ Proxmox λ₯Ό μΉ λ°μ΄λ²λ Έκ³ , μλ‘κ² λ€μ μΆλ°νμλ μλ―Έμμ Proxmox μ¬μ€μΉμ μ΄λ²μλ Kubespray λ₯Ό μ΄μ©ν΄μ μΏ λ²λ€ν°μ€λ₯Ό μ€μΉνμ΅λλ€. Proxmox λ μμ κ³Ό κ°μ λ°©λ²κ³Ό λκ°μ΄ λΆνλ³λ‘ ꡬ맀ν΄μ 쑰립ν λ―ΈλPC μμ μ€μΉνμ΅λλ€.μ μ λ―ΈλPC κ° κΆκΈνλ€λ©΄ μ¬κΈ° ν΄λ¦! μ λ―Έλ PC μ μ¬μμ CPU 16, RAM 64GB, SSD 1TB μ λλ€. κ·Έλ¦¬κ³ μ΄ 4λμ Ubuntu Jammy λ₯Ό μ€λΉνκ³ , νλλ λ§μ€ν°λ‘ λλ¨Έμ§λ μ컀 λ Έλλ‘ μ¬μ©νμ΅λλ€.k8s-worker-03 λ 4CPU λ₯Ό μ£Όκ³ μΆμμ§λ§.. μΆν λ€λ₯Έκ³³μμ νΉμ λͺ¨λ₯Ό CPU λ₯Ό μ¬μ©ν μ μμΌλ 2CPU λ§ μ£Όμμ΅λλ€.CPU..
νλ¦° λΆλΆμ΄ μμ μ μμ΅λλ€. λ§μ½ μλ€λ©΄ μ§μ ν΄μ£ΌμΈμ :) μΏ λ²λ€ν°μ€μμ ReplicaSet μ ν΅ν΄ 3κ°μ νλλ₯Ό λ°°ν¬νλ€κ³ μκ°ν΄λ΄ μλ€. μ΄λ νλμ νλλ₯Ό μμ νκ² λλ©΄ 곧 λ€μ νλκ° μμ±λ©λλ€. μ¦, νλκ° μ΅μ 3κ° μ΄μμ΄ μ€νλλλ‘ ReplicaSet λ₯Ό λ°°ν¬νκΈ° λλ¬Έμ μ£½μλ νλλ₯Ό μλ‘κ² μμμν΅λλ€. μ΄λ μΏ λ²λ€ν°μ€μ νΉμ§ μ€ νλμΈ Self Healing μ΄κΈ°λ ν©λλ€.ReplicaSet, Deployment λ±μμ λͺ μνλ Replica μ κ°―μλ κ³ μ /μ΅λκ° μλ μ΅μλ₯Ό μλ―Έν©λλ€.3κ°λΌκ³ κ°μ νμ λ, λ‘€λ§μ λ°μ΄νΈλ λΉμλ°μ μΈ μ’ λ£μ μν΄ 3κ° μ΄μμ νλκ° μ‘΄μ¬ν μ μκΈ° λλ¬Έμ΄μ£ . κ·ΈλΌ μ΄κ±Έ μ’ λ μ λ¬Έμ ?μΌλ‘ μ κ·Όν΄λ΄ μλ€. μ°λ¦¬κ° μνλ(Desired) ReplicaS..
μ΄λ² κΈμ μ£Όμ μΈ "IRSA" λ μ΄ν΄νκΈ°λ νλ€μμ§λ§, μ΄κ±Έ κΈλ‘ μμ±νλ 건 λ μ΄λ €μμ λ§μ λΈλ‘κ·Έ κΈλ€κ³Ό κ°μλ₯Ό μ°Έκ³ νμ΅λλ€.νλ¦° λΆλΆμ΄ μμ μ μμΌλ©°, μλμ λͺ μν μ°Έκ³ λΈλ‘κ·Έλ€λ μ½μ΄μ£ΌμΈμ! IRSA λ IAM Roles for Service Account μ μ½μλ‘, Kubernetes μμ AWS 리μμ€μ μμ νκ² μ κ·Όν μ μλλ‘ νκΈ° μν λ©μ»€λμ¦μ λλ€. IRSA λ₯Ό μ¬μ©νλ©΄ μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν° λ΄μ νΉμ Service Account μ AWS IAM Role μ 맀νν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ ν΄λΉ Service Account μ΄ AWS 리μμ€μ μ κ·Όν μ μλ κΆνμ μ»μ΅λλ€. IRSA λ AWS μμ μ 곡νλ OIDC μ IAM Role μ μ¬μ©νμ¬ μΏ λ²λ€ν°μ€ νλκ° AWS..
λλμ΄ kubestronaut λ₯Ό μ·¨λνμμ΅λλ€! κ³νλλ‘ μ νλ €μ λ€νμ λλ€. kubestronaut μ CNCF μμ μλͺ νλ μΏ λ²λ€ν°μ€ 리λ?λ‘ CKA, CKAD, CKS, KCNA, KCSA λ₯Ό λͺ¨λ μ·¨λνλ©΄ λΆμ¬λ©λλ€. CKA, CKAD, CKS, KCNA, KCSA λ κ° 2λ μ μ ν¨κΈ°κ°μ΄ μ‘΄μ¬νμ§λ§ kubestronaut μ μ ν¨κΈ°κ°μ΄ μκΈ° λλ¬Έμ λ°λμΌλ©΄ μ΄μ°λλ μ’λ€κ³ μκ°ν΄μ CKS κ° λ§λ£λκΈ° μ μ 빨리 λ°λ²λ Έμ΅λλ€. kubestronaut μ ν¨κΈ°κ°μ΄ μ‘΄μ¬νλ€κ³ νλ€μ γ γ μ¬μ§μ΄ kubestronaut μ κΈ μμ± κΈ°μ€μΌλ‘ νμ¬ μ ν¬ν¨ νκ΅μ 11λͺ , μ μΈκ³μ 424λͺ λ°μ λμ§ μμ΅λλ€. κ·Έλ¦¬κ³ kubestronaut λλ©΄ CNCF ννμ΄μ§μ μΌκ΅΄μ΄ κΈ°μ¬λ©λλ€! (λΏλ―..
CKAD κΉμ§ μ·¨λνλ©΄μ kubestronaut μ μꡬ 쑰건μ μΆ©μ‘±μμΌ°μ΅λλ€! μΌμ£ΌμΌ λ΄λ‘ λ°λ‘ λ©μΌμ μ€λ€κ³ νλ κΈ°λ€λ €μΌ νκ² λ€μ. κ·ΈλΌ kubestronaut νκΈ°λ λ€μ κΈμμ λ€λ£¨κ³ , μ΄λ² κΈμμ λ°λ‘ CKAD νμ 곡μ ν΄λ³΄μ£ ! Tips 첫λ²μ§Έκ°μ₯ λ¨Όμ μμ μνμ΄ μ΄λ€ 컀리νλΌμΌλ‘ μ§νλλμ§ νμΈν΄λ΄μΌκ² μ£ ? λκ° λ§κΈ΄ νμ§λ§, μ΄λ €μ΄ ννΈλ μμ΅λλ€. μΏ λ²λ€ν°μ€μ μμ£Ό κΈ°λ³Έμ μΈ κ²λ€λ§ λ€λ£¨κ³ μμ΅λλ€. λ§μ½ μ€λ¬΄μμ μΏ λ²λ€ν°μ€λ₯Ό μ¨λ³Έ κ²½νμ΄ μλ€λ©΄, 무리μμ΄ μΆ©λΆν 컀λ²κ° κ°λ₯νλ€κ³ μκ°ν©λλ€. λλ²μ§ΈKCSA μ KCNA κ° μ΄ 90λΆμΌλ‘ μ§νλλ κ°κ΄μ μν(Mutliple Exam) μ΄μλ€λ©΄, CKAD, CKA, CKS λ μ΄ 2μκ°μΌλ‘ μ§νλλ νΈμ¦μ¨ μνμ λλ€. λ°λΌμ μν©μ΄ μ£Όμ΄μ§..
KCSA μνμ κ½€λ κ±±μ μ€λ¬μ λλ° λ€νν μ·¨λνλ©΄μ kubestronaut κΉμ§ CKAD λ§ λ¨μμ΅λλ€! κ±°μ λ€ μμ΅λλ€. κ·ΈλΌ κ±°λμ λ―Έ νκ³ λ°λ‘ νμΌλ‘ λμ΄κ°λ³΄μ£ ! Tips 첫λ²μ§Έ κ°μ₯ λ¨Όμ μμ μνμ΄ μ΄λ€ 컀리νλΌμΌλ‘ μ§νλλμ§ νμΈν΄λ΄μΌκ² μ£ ? μ무λλ KCNA μ λ¬λ¦¬ 보μ κ΄λ ¨ν νλͺ©λ€μ΄ λ§μ΅λλ€. KCNA μ KCSA λ CKA, CKS 보기 μ νκΈ°μν? λλμΈλ°, μ λ μ΄λ―Έ CKS λ₯Ό μ·¨λνκΈ° λλ¬Έμ μ£Όμ λ€μ΄ μμ² μ΄μ§μ μ΄μ§ μμμ΅λλ€. μ! KCNA, KCSA λ CKAD, CKA, CKS μ λ¬λ¦¬ νΈμ¦μ¨ μνμ΄ μλ κ°κ΄μ(Multiple Choice Exam) μ λλ€! κ·Έλ¦¬κ³ 60λ¬Έμ μ΄ 90λΆμΌλ‘ μ§νλ©λλ€. νμ€ν KCNA, CKA μλ€λ 20λΆλ μκ±Έλ Έλλ°, CKS λ μ..
CKA, CKS κΉμ§λ§ μ·¨λνκ³ , μΏ λ²λ€ν°μ€ μ격μ¦μ μΆ©λΆνλ€κ³ μκ°νλλ° μ΄λ²μ kubestronaut λΌλ κ²μ μ νκ² λμμ΅λλ€. kubeastronaut λ 5κ°μ μΏ λ²λ€ν°μ€ μκ²©μ¦ CKAD, CKA, CKS, KCNA, KCSA λ₯Ό λͺ¨λ μ·¨λνλ©΄, 리λ μ€ νμ΄λ°μ΄μ μμ μ£Όμ΄μ§λ μΉνΈ?μ λλ€. κ·Έλμ μ΄μ°¨νΌ CKS λ μ·¨λνκ² λ€, λλ¨Έμ§λ μ·¨λν΄μΌκ² λ€κ³ λ§μ λ¨Ήμμ΅λλ€. κ·Έλ κ² λ§μ λ¨Ήκ³ κ·Έ λ§μ λ¨Ήμ μ£Όμ λ°λ‘ KCNA λ₯Ό μ·¨λνμμ΅λλ€. κ·ΈλΌ λ°λ‘ νμ 곡μ ν΄λ³΄μ£ ! Tips 첫λ²μ§Έ κ°μ₯ λ¨Όμ μμ μνμ΄ μ΄λ€ 컀리νλΌμΌλ‘ μ§νλλμ§ νμΈν΄λ΄μΌκ² μ£ ? λκ° μμ² λ§μκ±° κ°μλ°, CNCF νλ‘μ νΈμ μΏ λ²λ€ν°μ€λ₯Ό μ‘°κΈμ΄λΌλ λ€λ€λ³΄μ ¨λ€λ©΄ μ¬μ€ 곡λΆνμ§ μμλ μ΄λ ΅μ§ μκ² μ·¨λν μ μμκ±°λΌ μκ°ν©λλ€..
λΉλ‘ ν¬μ§ μμ κ·λͺ¨μ μΏ λ²λ€ν°μ€μ§λ§ 2λ λμ μ΄μνλ©΄μ λ§μ κ²λ€μ κ²½νν μ μμμ΅λλ€. κ²½νμμμ λ°°μΈ μ μμλ μμ νλ€μ 곡μ νκ³ μ ν©λλ€. μ κ° κ³΅μ νκ³ ν νλ€μλ Έλ λ° νλ μ€μΌμ€λ§HA μ μ§μΏ λ²λ€ν°μ€ 맀λνμ€νΈ κ΄λ¦¬IaCμ λλ€. κ·ΈλΌ λ°λ‘ λ³Έλ‘ μΌλ‘ κ°λ³΄μ£ . λ μΈ λλμ½λ~ λ Έλ λ° νλ μ€μΌμ€λ§ μΏ λ²λ€ν°μ€λ₯Ό μ²μ 곡λΆνμ λ, λ Έλ λ° νλ μ€μΌμ€λ§ ννΈλ κ·Έλ κ² μ μ¬ν λ³΄μ§ μμμ΅λλ€. κ·Έλ κ² μ΄λ €μ 보μ΄μ§ μμκ±°λ μ. κ·Έλ₯ Resource Request/Limit, NodeAffinity/PodAffinity/AntiAffinity λ± yaml μ μμ±νλ©΄ νλλ κ·Έμ λ§κ² μμμ λ°°ν¬κ° λλκΉμ. λΉμ°ν κ²μ΄ 곡λΆν λ κΈ°κ»ν΄μΌ 3κ° μ λμ νλλ‘ μ§ννλλ°, νμ€μμ μ΅μ λͺ λ°±κ°..
νμ¬ κΈμ μνΈμμ μ΄μ΄μ§λλ€.λ€μ΄κ°κΈ° μμ ν΄λΉ κΈμμλ C Compiler μ λν μ§μμ νμλ‘ ν©λλ€. νμ§λ§ μ C Compiler μ λν΄ μμΈν μμ§ λͺ»νκΈ° λλ¬Έμ νλ¦° λΆλΆμ΄ μμ μ μμΌλ©°, μΈμ λ μ§ μ§μ λ°λλλ€. κ·Έλ¦¬κ³ Github Action κ³Ό κ΄λ ¨λ κ°λ λΆλΆμ λ°λ‘ μ€λͺ νμ§ μμ΅λλ€. μλ리μ€λ ν¬κ² Local μμκ³Ό Remote(Git Runner) μμμΌλ‘ λλ μ μμ΅λλ€. Local Local μμλΆν° μμν΄λ³΄μ£ . Local μμμμ 미리 Python μ λΉλ ν νμ Artifacts Repository μ μ λ‘λ ν©λλ€.Official Setup Python μ‘μ μ 보면 versions-manifest.json μ Python μ λ€μ΄λ°μ μ μλ URL μ΄ λͺ μλ..
λ€μ΄κ°κΈ° μμ ν΄λΉ κΈμμλ 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 ν¬ν¨) μ μ§μ..
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..
ν λΌνΌμ λνμ μΈ IaC λκ΅¬λ‘ AWS μ κ°μ ν΄λΌμ°λ νκ²½μ μ½λλ‘ κ΅¬μ±ν μ μλ€λ μ₯μ μ΄ μμ΅λλ€. κ·Έλ¦¬κ³ λ³΄ν΅ ν΄λΌμ°λ νκ²½μ Dev κ³Ό Prod μΌλ‘ λλκ² λ©λλ€. ννΈ, ν λΌνΌμ μ΄μ©ν΄μ 리μμ€λ₯Ό μμ±νκ² λλ©΄ backend λΌλ κ³³μ tfstate λ₯Ό μ μ₯νκ² λ©λλ€.tfstate λ 리μμ€μ κ΅¬μ± μ 보λ₯Ό κ°μ§κ³ μλ νμΌμ΄κ³ , backend λ μ΄λ¬ν tfstate λ₯Ό μ μ₯νλ 보κ΄μ μ λλ€. backend λ λ‘μ»¬μ΄ λ μλ μκ³ , AWS S3 μ κ°μ μ€λΈμ νΈ μ€ν 리μ§λ λ μ μμ΅λλ€. νλ², AWS S3 μ Demo λ²ν·μ Dev νκ²½κ³Ό Prod νκ²½μ κ°μ μ½λλ₯Ό κ°μ§κ³ λμΌνκ² μμ±νλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. μμ μ½λλ μ¬κΈ°μ κ°μ Έμμ΅λλ€! μ¬μ©..
μ΄μ κΈμΈ [νΈλ¬λΈ λΉ΅μΌ] 6κ°μ λμ μ¦κ±°μ λ€.. μκ°κ³ λ€μ λ³΄μ§ λ§μ! - 504 Gateway Timeout (μ΄μ νΈ) μμ μ΄μ΄μ§λλ€! κ³°κ³°μ΄ μκ°ν΄λ΄€μ΅λλ€. 504 Gateway Timeout ... κ²°κ΅ μ΄λμ κ° Response λ₯Ό λ°μμΌ νλλ° λ°μ§ λͺ»ν΄μ μκΈ°λ μ΄μ μ λλ€. μ΄λμ Response μ λ°μ§ λͺ»νμκΉμ? μ μν€ν μ²λ§ λ΄€μλ, λ μ΄μ λμ ν λͺ¨λ₯΄κ² μ΅λλ€. κ·Έλμ μ μ΄λ―Έμ§λ³΄λ€ μ‘°κΈ λ μν€ν μ²λ₯Ό ꡬ체νμμΌλ΄€μ΅λλ€. AWS ALB λ Target Group μ λ±λ‘λ λ Έλμκ² νΈλν½μ λΌμ°ν ν΄μ£Όλλ°, Karpenter λ‘ μμ±λλ λ Έλλ€μ λͺ¨λ λμΌν Target Group μ λ±λ‘λ©λλ€. (λμλ‘μ§ μκ² λμΌν Target Group μ λ±λ‘λκ²λ ꡬμ±νμ£ ) μ¬κΈ°μ..
κ°λ°μ νλλ° μμ΄ μ»¨ν μ΄λλ λ μ΄μ λΉ μ§ μ μμ λ§νΌ μ€μν κ°λ μ΄ λμμ΅λλ€. κ·Έλ¦¬κ³ Docker λ 컨ν μ΄λ 맀λμ§ ν΄ μ€ κ°μ₯ λνμ μ΄λΌκ³ λ³Ό μ μμ£ . 컨ν μ΄λλ₯Ό μ€ννκΈ° μν΄μ μ΄λ―Έμ§κ° νμνκ³ λ³΄νΈμ μΌλ‘ Docker λ₯Ό ν΅ν΄ μ΄λ―Έμ§λ₯Ό λ§λ€κ² λ©λλ€. Dockerfile μ μμ± ν ν Docker 컀맨λλ₯Ό μ΄μ©νλ©΄ μ΄λ―Έμ§κ° λ§λ€μ΄μ§κ³ μμ£Ό μ½κ² 컨ν μ΄λλ₯Ό μ€νν μ μμ΅λλ€. μ΄λ―Έμ§λ₯Ό λΉλ νλ λ° μμ΄μ λ¬Όλ‘ κ²½λνλ μ€μνμ§λ§, κ·Έ λͺ»μ§ μκ² μ΄λ―Έμ§ 보μλ μ€μν©λλ€. --previliged κΆνμ λΆμ¬νλ κ±Έ μ§μνκ³ , Dockerfile μ μ§μ μ μΌλ‘ crendentials κ΄λ ¨ν μ 보λ₯Ό μΆκ°(COPY) νλ κ±Έ μ£Όμν΄μΌ ν©λλ€. trivy λ₯Ό μ΄μ©νλ©΄ μμ½κ² μ΄λ―Έμ§μ μ·¨μ½μ κ²μ¬..
μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν°μλ 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 λ μ΄λ €μ΄ κ°λ μ΄ ν¬κ² μλ€κ³ μκ°ν©λλ€. λ°..
ν λΌνΌμ μ²μ μμνλ©΄ ν·κ°λ¦¬λ λͺ λ Ήμ΄ μ΅μ μ΄ μμ΅λλ€. λ°λ‘ terraform init λͺ λ Ήμ΄μ -migrate-state μ -reconfigure μ£ . λ³΄ν΅ backend ꡬμ±μ λ³κ²½νλ©΄ ν΄λΉ μ΅μ μ μ¬μ©νλΌλ λͺ λ Ήμ΄λ₯Ό λ³Ό μ μμ΅λλ€. λ‘κ·Έμμ -migrate-state μ -reconfigure μ λν μ€λͺ μ΄ λμμμ§λ§ λ±ν μλΏμ§λ μμ΅λλ€. tfstate μ λ°©ν₯μ±μ μ’μ§μ°μ§ νλ μ΅μ μ΄κΈ° λλ¬Έμ μλͺ» μΌλ€κ° μΈνλΌκ° κΌ¬μΌ μλ μμ΅λλ€. μλ₯Ό λ€μ΄, λΆλͺ λ³κ²½(0 to change)νλ κ±΄λ° μλ‘κ²(1 to add) μμ±νλ€λ 문ꡬλ₯Ό λ³Ό μ μμ£ . μ΄λ° κ²½μ°λ λ³΄ν΅ backend ꡬμ±μ λ³κ²½νκ³ , -reconfigure λ₯Ό μ¬μ©νμ λ λ°μν©λλ€. μμ μ¬μ λ± νλμ state λ§ μ‘΄μ¬ν..
μΏ λ²λ€ν°μ€ λ΄λΆλΌλ¦¬ ν΅μ μ ν λ λ³΄ν΅ μλΉμ€μ λλ©μΈ svc.cluster.local μ μ΄μ©νμ¬ ν΅μ νκ² λ©λλ€. μΈλΆμμ λ΄λΆλ‘ λ€μ΄μ€λ ν΅μ μ λν΄μλ Ingress λ₯Ό μ΄μ©ν΄ https ν΅μ μ νκ²λμ£ . νμ§λ§ Ingress λ λ΄λΆ ν΅μ μ λν΄μλ https ν΅μ μ 보μ₯ν΄μ£Όμ§ μμ£ . μ΄ λΆλΆμ λν΄μλ Istio μ mTLS λ₯Ό μ΄μ©ν΄μ νλμμ ν΅μ μ λͺ¨λ https ν΅μ μ νκ² ν μ μμ΅λλ€. Istio μ mTLS κ° κΆκΈνλ€λ©΄? [Istio] μΏ! μ°λ¦¬λ§μ λΉλ°μ΄μΌ - mTLS (νμΈνΈ) [Istio] μΏ! μ°λ¦¬λ§μ λΉλ°μ΄μΌ - mTLS (κ²μ¦νΈ) κ·Έλ λ€λ©΄ mTLS λ₯Ό μ΄μ©νμ§ μκ³ λ΄λΆ ν΅μ μ μ΄λ»κ² https ν΅μ μ ν μ μμκΉμ? μ λ΅μ κ°λ¨ν©λλ€. νλ λ§λ€ certifica..
EKS μ κ°μ ν΄λΌμ°λκ° μ 곡ν΄μ£Όλ μΏ λ²λ€ν°μ€κ° μλ, μ¨νλ λ―Έμ€ νκ²½μμ μΏ λ²λ€ν°μ€λ₯Ό μ€μΉνλ€κ³ νλ©΄ λ³΄ν΅ kubeadm μ΄λΌλ ν΄μ μ΄μ©ν΄μ ꡬμ±νκ² λ©λλ€. Control Plane μ kubeadm init λ₯Ό ν΅ν΄ ꡬμ±λκ³ , Data Plane μ kubeadm join μ ν΅ν΄ μΏ λ²λ€ν°μ€μ μ‘°μΈνκ² λ©λλ€. kubeadm ν΄ νλλ©΄ API Server, Scheduler, Control Manager, ETCD λ± Control Plane μ νμν λͺ¨λ κ²λ€μ΄ λ§λ²μ²λΌ μλμΌλ‘ ꡬμ±λμ£ . λ¬Όλ‘ kubelet κ·Έλ¦¬κ³ containerd μ κ°μ cri-ꡬν체λ μ΄λ―Έ μ€νλκ³ μμ΄μΌ ν©λλ€! μλμ΄λ κ²μ΄ νμ€ν νΈμμ±μ μ 곡ν΄μ£ΌκΈ΄ νμ§λ§, μλμΌλ‘ ꡬμ±λκΈ° λλ¬Έμ κ·Έ μμμ λ¬΄μ¨ μΌμ΄ μΌμ΄..
μμ λΆν° μΏ λ²λ€ν°μ€λ₯Ό κ΄λ¦¬νλ λ° μμ΄μ κΆκΈν μ μ΄ μμμ΅λλ€. "μμ² λκ² λ§μ λ‘κ·Έλ₯Ό μμ±νλ μ ν리μΌμ΄μ λ€λ‘ μΈν΄ λ Έλμ λμ€ν¬κ° λΆμ‘±ν΄μ§λ©΄ μ΄λ‘νμ§?" "κ³μ μλ‘μ΄ μ»¨ν μ΄λ μ΄λ―Έμ§λ₯Ό λ€μ΄ λ°μμ κ·Έλ‘ μΈν΄ λ Έλμ λμ€ν¬κ° λΆμ‘±ν΄μ§λ©΄ μ΄λ‘νμ§?" λ Έλμ λμ€ν¬κ° λΆμ‘±νκ² λλ©΄ λ Έλμμ DiskPressure λΌλ λ©μμ§λ₯Ό λ±κ² λ κ²μ λλ€. κ·Έλ°λ° κΆκΈν μμ μ λμ€ν¬κ° λΆμ‘±ν λ "μ΄λ»κ² ν΄κ²°νλ" κ° μλκ³ "μ΄λ»κ² μλ°©νλ" μ λλ€. κ·Έλμ μ΄λ² κΈμμλ μλ°©νλ λ°©λ²μ λν΄ μμλ³΄κ³ μ ν©λλ€. λ μΈ λλμ½λ~ μ λ κ°μΈμ μΌλ‘ μΏ λ²λ€ν°μ€λ₯Ό κ΄λ¦¬νλ©΄μ κ°μ₯ μ€μμνκ² μκ°νλ ν€μλκ° μμ΅λλ€. λ°λ‘ μΌμμ (empheral) κ³Ό λμ (Dynamic) μ λλ€. μλ₯Ό λ€μ΄, μΏ λ²λ€ν°μ€μ κ°μ₯ κΈ°λ³Έ..
μμ μμ±νλ νΈλ¬λΈ μν κ΄λ ¨ κΈ μ€μ ν κΈμ μ λͺ©μ΄ "νλ Έμ€λ μ΄λ° λλμΌκΉ?" λΌκ³ μ§μμ λ§νΌ κ½€λ νλ€μλ μλ¬μμ£ . κ·Όλ° μ΄λ²μ κ²ͺμ μ΄μλ μμ κΈ μ λͺ©μ νλ Έμ€ λΌκ³ λΆμ΄κΈ° λ―Όλ§ν μ λλ‘ μμΈμ μ°ΎκΈ°κ° νλ€μκ³ , λν μ΄μκ° 6κ°μμ΄λ μ§μλ μ λλ‘ λ§μ μν λ νΈλ¬λΈ μν μ΄μμ΅λλ€. λ€μ΄κ°κΈ° μμ κ°λ΅νκ² νκ²½μ λ€μκ³Ό κ°μμ. μΏ λ²λ€ν°μ€λ AWS EKS(v1.28) λ₯Ό μ΄μ©νκ³ μμΌλ©°, μλΉμ€λ©μ μλΉμ€μΈ μ΄μ€ν°μ€(v1.18)μ μΈκ·Έλ μ€ κ²μ΄νΈμ¨μ΄μ AWS ALB λ₯Ό 맡ννμ¬ ν΄λ¬μ€ν° μΈλΆμμ ν΄λ¬μ€ν° λ΄λΆ μλΉμ€μ μ κ·Όμ΄ κ°λ₯ν©λλ€. κ·Έλ¦¬κ³ μ¬κΈ°μ μ¬μ©ν λ΄λΆ μλΉμ€λ ArgoCD(v2.5) μ λλ€. μ΄μλ ME! κ° ArgoCD μ μ κ·Όμ νμλ λΆνΉμ νκ² 504 Gateway ..
μΏ λ²λ€ν°μ€ νκ²½μμ ARC λ₯Ό μ΄μ©νλ©΄ μ΄λ ΅μ§ μκ² λ€μν OS μμ μ€ν μ€μΌμΌλ§μ κΈ°λ°ν Runner ꡬνμ΄ κ°λ₯ν©λλ€. Karpenter μ ν¨κ»λΌλ©΄ λ ν¨μ¨μ μ΄μ£ . (Karpenter κ³Ό κΆκΈνλ€λ©΄ μ¬κΈ° μ°Έκ³ , ARC κ° κΆκΈνλ€λ©΄ μ¬κΈ° μ°Έκ³ ) λν EKS μμ Linux μ Windows κΈ°λ°μ λ Έλλ₯Ό μ§μν΄μ£ΌκΈ° λλ¬Έμ λμ°κΈ°λ§ νλ€λ©΄ νλ λ¨μλ‘ Runner λ₯Ό λ°°ν¬ν μ μμ΅λλ€. (EKS μμ Windows λ₯Ό νμ±ν νλ λ°©λ²μ΄ κΆκΈνλ€λ©΄ μ¬κΈ° μ°Έκ³ ) νμ§λ§ MacOS λ μκΈ°κ° λ¬λΌμ.. EKS μμ μ§μμ μν΄μ€λλ€.. κ·Έλμ λ§μ½ MacOS κΈ°λ°μ μ컀 λ Έλλ₯Ό νλ‘λΉμ λ νλ €κ³ νλ€λ©΄, μλ§ MacOS κΈ°λ°μ μΈμ€ν΄μ€λ₯Ό λμ΄ ν κ±°κΈ°μ μλμΌλ‘ EKS ν΄λ¬μ€ν°μ μ‘°μΈν΄μΌ ν κ²μ λλ€...
λ€μ΄κ°κΈ° μμ μ λ Windows λ₯Ό λ§μ΄ λ€λ€λ³΄μ§ μμκΈ° λλ¬Έμ λΆμ‘±νκ±°λ νλ¦° λΆλΆμ΄ μμ μ μμ΅λλ€! μΏ λ²λ€ν°μ€λ v1.23 λ²μ , Karpenter λ v0.31 λ²μ μ λλ€. μΏ λ²λ€ν°μ€(EKS) νκ²½μ μλμ°μ Karpenter λ₯Ό νμ±ν νλ λ°©λ²μ λν΄μ μ¬κΈ°λ₯Ό μ°Έκ³ νμΈμ. Karpenter μ λν΄ κΆκΈνλ€λ©΄ μ¬κΈ°λ₯Ό μ°Έκ³ νμΈμ. κ·ΈλΌ λ μΈ λλμ½λ~ μ°λ¦¬κ° μΏ λ²λ€ν°μ€λ₯Ό μ¬μ©νλ λ°©λ²μ λ°λ‘ μ€μΌμ€νΈλ μ΄μ μ μν¨μ΄μ£ . νλμ λ§μ€ν° νλ μΈμΌλ‘ μ¬λ¬ λ Έλμ μ¬λ¬ νλλ₯Ό μ’ λ μ½κ² κ΄λ¦¬νκΈ° μν΄μμ λλ€. Action Runner μμ μμΈλ μλμ£ . Action Runner Controller λ₯Ό μ΄μ©νλ©΄ μ½κ² μΏ λ²λ€ν°μ€ νκ²½μμ νλ λ¨μμ Runner λ°°ν¬κ° κ°λ₯ν©λλ€. 맨 μ²μ Action..
μ°λ¦¬λ λ³΄ν΅ EKS μ μ컀 λ Έλλ‘ x86 μ΄λ , arm64 μ΄λ 리λ μ€λ₯Ό μ¬μ©ν©λλ€. νΉν EKS νκ²½μ΄λΌλ©΄ μλ§μ‘΄ 리λ μ€2λ₯Ό μ¬μ©νκ² μ§μ. κ·Όλ° κ°νΉ μ컀 λ Έλλ‘ μλμ°λ₯Ό νμλ‘ νλ κ²½μ°κ° μμ΅λλ€. μλ₯Ό λ€μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ§λ€μλλ°, 리λ μ€ λΏλ§ μλλΌ μλμ° νκ²½μμλ μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό νμλ‘ ν©λλ€. κ·Έλ λ€λ©΄ μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄λ―Έμ§λ‘ λΉλνλ €λ©΄ 리λ μ€κ° μλ μλμ° νκ²½μμ λ§λ€μ΄μΌ νμ£ . λ€νν EKS λ μλμ°λ₯Ό μ§μν΄μ€λλ€. λν Karpenter μμλ μλμ°λ₯Ό μ§μν΄μ£Όμ£ . κ·ΈλΌ μ΄λ»κ² EKS νκ²½μμ μλμ°λ₯Ό νμ±ν νλμ§, μ΄ν Karpenter μμ μλμ°λ₯Ό μ΄λ»κ² νλ‘λΉμ λ νλμ§ νλ² μμ보λλ‘ νμ£ . μ°Έκ³ λ‘ μ§νν μΏ λ²λ€ν°μ€ λ²μ μ 1.23 μ΄κ³ , Karpenter λ 0.31..
κ°λ°μ νλ€λ³΄λ©΄ νκ°μ§ λ²μ λΏλ§ μλλΌ λ€μν λ²μ μ μ§μν΄μ€μΌ ν©λλ€. μλ₯Ό λ€μ΄ νμ΄μ¬μ μ¬μ©νλ€λ©΄ 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 λ²μ μ νμ΄..
C/C++ κΈ°λ°μ νλ‘μ νΈλ₯Ό λΉλνλλ° μμ΄ λ³΄ν΅ cmake μ make λ₯Ό μ΄μ©ν΄μ λΉλλ₯Ό νκ² λ©λλ€. κ°λ΅νκ² cmake λ CMakeList.txt λ₯Ό κΈ°λ°μΌλ‘ Makefile λ₯Ό λ§λ€μ΄μ£Όκ³ , make λ Makefile λ₯Ό ν΅ν΄ νλ‘μ νΈλ₯Ό λΉλν©λλ€. cmake λ λΉλλ₯Ό μν νλ‘μΈμ€μ΄κ³ , make λ μ€μ λ‘ λΉλλ₯Ό ν΄μ£Όλ νλ‘μΈμ€μΈ μ μ΄μ£ . κ·Έλ°λ° C/C++ νλ‘μ νΈλ₯Ό λΉλνλλ°, λΉλ μκ°μ΄ λλ΅ 1μκ° μ λ μλͺ¨λ©λλ€. λ무 μ€λκ±Έλ €μ.. μ§νν runner λ 2GB Memory μ μΈμ€ν΄μ€μ λλ€. λΉλ μκ°μ λ¨μΆμν€κ³ μΆμ΅λλ€. λΉλ μκ°μ λ¨μΆμν€κΈ° μν λ°©λ²μΌλ‘ κ°μ₯ λ¨Όμ λ μ€λ₯΄λ κ²μ λ°λ‘ μΊμ± μ λλ€. λ§€λ² κ°μ΄ νμΌμ λΉλνμ§ λ§κ³ , λ°λ³΅λλ λΉλ νμΌμ μΊμ±ν΄λμΌλ©΄ μκ°μ΄..
μ§λ κΈμμ Cloudflare μμ μμ±ν λλ©μΈκ³Ό Let's Encrypt λ₯Ό μ΄μ©ν΄μ TLS λ₯Ό httpbin μ μ μ©νμμ΅λλ€. μ΄λ²μλ Cloudflare λ³΄λ€ λ λμ€μ μΈ Route53 μμ μμ±ν λλ©μΈμλ TLS λ₯Ό μ μ©ν΄λ³΄κ³ μ ν©λλ€. Route53 μμ ꡬ맀ν λλ©μΈμ λν΄μλ AWS ACM μ μ΄μ©ν΄μ 무λ£λ‘ TLS λ₯Ό λ°κΈλ°μ μ μμ΅λλ€. κ·Έλ¦¬κ³ λ°κΈλ°μ TLS λ₯Ό AWS ALB μ λ°λ‘ μ μ©νκ² λλ©΄ μμ£Ό μ½κ² TLS ν΅μ μ΄ κ°λ₯ν©λλ€. κ·Έλμ ALB μ Istio λ₯Ό μ΄μ©νκ² λλ©΄ λλ΅ μλ κ·Έλ¦Όκ³Ό κ°μ£ . νμ§λ§ μΈλΆλ§ TLS λ₯Ό ν΅μ μ΄ κ°λ₯νλ―λ‘ λ΄λΆμμ TLS ν΅μ μ΄ λΆκ°λ₯ν©λλ€. ACM μ ν΅ν΄ λλ©μΈμ λν Cert λ₯Ό λ°κΈλ°μ μ μλλ°, μ΄ κ°μ λ€μ΄λ°μμ μ¬μ©λΆκ°λ₯..
μ΄ κΈμ TLS μ λν κΈ°μ΄μ μΈ κ°λ μ΄ νμν©λλ€. μ΅μν HTTPS κ° μ΄λ»κ² λμνλ©°, CA, CSR, tls.cert λ±κ³Ό κ°μ κ²μ΄ 무μμΈμ§ μμμΌ ν©λλ€. λ―Έλ PC μμ μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν°λ₯Ό ꡬμ±νμ¬ μ΄κ²μ κ² ν΄λ³΄κ³ μλλ°, λ νλ λ§μμ 걸리λ κ²μ΄ μμμ΅λλ€. λ°λ‘ λλ©μΈκ³Ό TLS μ λλ€! λλ©μΈ κ°μ κ²½μ° λ§₯ /etc/host μ μΆκ°ν΄μ μ¬μ©νκ³ μμκ³ , TLS κ° μ μ©λμ§ μλ€λ³΄λ λ μ£Όμ μν¨μ λ¬κ³ μμμ£ . AWS ALB λ₯Ό μ¬μ©νλ©΄ Route53 κ³Ό ACM μ ν΅ν΄μ TLS μ μ©νκΈ° μ½μ§λ§, AWS μμ΄ TLS λ₯Ό μ μ©νλ €λ©΄ κ²°κ΅ TLS λ₯Ό ꡬ맀ν΄μΌ ν©λλ€. TLS λ λ³΄ν΅ μ λ£μΈλ°, Let's Ecrypt λ 무λ£λ‘ TLS μ μ 곡ν΄μ£ΌκΈ° λλ¬Έμ μ΄λ² κΈμμλ λ‘컬 νκ²½μμ ..