Kubernetes on Cloud Private

 

 

  • Cloud private ์ด๋ž€?

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ) ๊ธฐ๋ฐ˜์˜ IaaS์™€ PaaS๊ฐ€ ํ†ตํ•ฉ๋œ Private Cloud ํ”Œ๋žซํผ์œผ๋กœ์จ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ์ƒ์—์„œ ์šด์˜ํ•˜๊ธฐ ์–ด๋ ค์šด ํด๋ผ์šฐ๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ ๊ฐ์˜ ๋ฐ์ดํ„ฐ์„ผํ„ฐ์— ์„ค์น˜ํ•ด ์ƒ์„ฑ, ์šด์˜ ๋ฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ํ”Œ๋žซํผ(์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ Bluemix Local)์ž…๋‹ˆ๋‹ค.

 

ย 
๊ทธ๋ฆผ1. Cloud private ์ ์šฉ ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ ๋ชจ๋ธ

ย 

  • Cloud private ์‚ฌ์šฉ์ด ๊ณ ๋ ค๋˜๋Š” ํ™˜๊ฒฝ
  • ์ปดํ”Œ๋ผ์ด์–ธ์Šค๋‚˜ ๊ทœ์ œ๊ฐ€ ์—„๊ฒฉํ•˜์—ฌ Public Cloud ํ™˜๊ฒฝ์—์„œ ์šด์˜ํ•  ์ˆ˜ ์—†๋Š” ์›Œํฌ๋กœ๋“œ
  • ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ํ˜•ํƒœ์˜ ์„œ๋น„์Šค ์šด์˜ ๊ณ ๋ ค ๋ฐ Bluemix PaaS ์˜คํผ๋ง๊ณผ ์—ฐ๊ณ„ํ•œ ์„œ๋น„์Šค ๊ณ ๋ ค์‹œ
  • ์ƒˆ๋กœ์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•  ์‹œ

 

  • Cloud private ์˜ ์ฐจ๋ณ„์ 
  • ์ปจํ…Œ์ด๋„ˆํ™”ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค
  • ์„ ํƒ ์˜ต์…˜ ์ œ๊ณต: IaaS(Openstack, VMware) ๋ฐ CaaS(Docker, rkt, LXC/LXD)
  • ๊ธฐ์กด ํˆด๋“ค๊ณผ ์—ฐ๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ API ์ œ๊ณต ๋ฐ ์˜คํ”ˆ ์Šคํƒ ๋‹ค๋“œ ์ง€ํ–ฅ
  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ ๊ด€๋ฆฌ์™€ ๊ธฐ ๊ตฌ์„ฑ๋œ ์ž๋™ํ™” ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ ˆ๋ฒจ์˜ ํ†ตํ•ฉ๋œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ, ๋ฏธ๋“ค์›จ์–ด, ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค ์ œ๊ณต

 


๊ทธ๋ฆผ2.IBM Cloud private Dashboard

 


๊ทธ๋ฆผ 3. IBM Cloud private App Center


๊ทธ๋ฆผ 4. Node Memory ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ Node ํ˜„ํ™ฉ

 

  • Cloud private ํ™œ์šฉ ๊ฐ€๋Šฅ ๋ถ„์•ผ

์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ ๊ตฌ์„ฑ, DevOps, ์ฝ”๊ทธ๋‹ˆํ‹ฐ๋ธŒ ์†”๋ฃจ์…˜ ํ™œ์šฉ

 

  • Cloud Private ์„ค์น˜์‹œ ํฌํ•จ ํ•ญ๋ชฉ
  • Kubernetes ํด๋Ÿฌ์Šคํ„ฐ
  • ๊ด€๋ฆฌ ์ฝ˜์†”
  • ์ธ์ฆ ๊ด€๋ฆฌ
  • LDAP ํ†ตํ•ฉ
  • ํ”„๋ผ์ด๋น— ๋„์ปค ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ

 

  • Cloud Private ๊ตฌ์„ฑ ์ŠคํŽ™
    • Hardware
      • ์‹ฑ๊ธ€ ๋…ธ๋“œ ๊ตฌ์„ฑ(์ตœ์†Œ): 2Core / 4GB RAM / 40GB Disk
      • ๋ฉ€ํ‹ฐ ๋…ธ๋“œ ๊ตฌ์„ฑ(์ตœ์†Œ)
        • Boot node: 1Core / 4GB RAM / 40GB Disk
        • Master node: 2Core / 8GB RAM / 40GB Disk
        • Proxy node: 1Core / 4GB RAM / 40GB Disk
        • Worker node: 1Core / 4GB RAM / 40GB Disk
      • Network
        • Calico
          : OSI 7๊ณ„์ธต ์ค‘ 3๊ณ„์ธต์— ์†ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์†”๋ฃจ์…˜์œผ๋กœ ๋ผ์šฐํ„ฐ, ์Šค์œ„์น˜, IP๋ฅผ ํฌํ•จํ•จ
          : ์Šค์ผ€์ผ ํ™•์žฅ์„ ์œ„ํ•œ BGP ํ”„๋กœํ† ์ฝœ(border gateway protocol) ์‚ฌ์šฉ

: ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ํšจ์œจ์ ์ธ IP ํฌ์›Œ๋”ฉ ์—”์ง„ ์‚ฌ์šฉ
: ๊ฐ Tenant๋“ค์„ ๊ฒฉ๋ฆฌํ•จ
: ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์ด ์žˆ์„์‹œ ๊ฐ ํ˜ธ์ŠคํŠธ์— ํ•ด๋‹น ์ •์ฑ… ์ ์šฉ

  • Logging & Monitoring
    • ElasticSearch: ๊ณต์œ , ๋ณต์ œ, ํƒ์ƒ‰ ๊ฐ€๋Šฅํ•œ json ๋ฌธ์„œ ์ €์žฅ์†Œ
    • Logstash: ๋กœ๊ทธ ๊ธฐ๋ก ์ˆ˜์‹ , ์ •์ œ ๋ฐ ์ „๋‹ฌํ•˜๋Š” ๋„๊ตฌ. Elasticsearch ๋‚ด๋ถ€์—์„œ ๋กœ๊ทธ ์ธ๋ฑ์‹ฑ
    • Filebeat: ์‹œ์Šคํ…œ ๋ฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ๊ธฐ๋ก ์ˆ˜์ง‘
    • Heapster: ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ํผํฌ๋จผ์Šค ๋ถ„์„. ์ปดํ“จํŠธ ๋ฆฌ์†Œ์Šค, ์ˆ˜๋ช… ์ฃผ๊ธฐ ์ด๋ฒคํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ์‹ ํ˜ธ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ด ํด๋Ÿฌ์Šคํ„ฐ ๋งคํŠธ๋ฆญ์Šค๋ฅผ REST ๋ฐฉ์‹์œผ๋กœ ์†ก์‹ .
      (Elasticsearch, InfuxDB, Kafka, Google Cloud Logging ๋“ฑ ์ง€์›)
  • Authentication
    • ์˜คํ”ˆ์•„์ด๋””(OpenID) Connect: OAuth 2.0 ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜
    • LDAP๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๋ฐ ํ…Œ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌ

 

  • Cloud Private ์ปดํฌ๋„ŒํŠธ ํŠน์ง• ๋ฐ ๊ตฌ์„ฑ์š”์†Œ
    • Docker
      : Docker ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
      : ํ•˜๋“œ์›จ์–ด ์ธํ”„๋ผ ์ž์›์„ ๊ฐ€์ƒํ™” ํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•œ ์ž์› ํ™œ์šฉ์œผ๋กœ ๊ฐ€์ƒํ™” ๊ตฌ์„ฑ ๋Œ€๋น„ ๋†’์€ ํผํฌ๋จผ์Šค๊ฐ€ ๊ฐ€๋Šฅ
      : ๊ณ„์ธตํ™”๋œ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ์„ ํ†ตํ•ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋‚ด์šฉ๋งŒ ์—…๋ฐ์ดํŠธ ํ•˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ ๋น ๋ฅธ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ฐ€๋Šฅ

 

  • Kubernetes
    : ๊ตฌ๊ธ€์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง€๊ณ  ํ˜„์žฌ ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋œ ํ”„๋กœ์ ํŠธ
    : ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ
    : ํด๋Ÿฌ์Šคํ„ฐ๋งŒ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋“ฑ์˜ ๊ณผ์ •์€ ๊ณ ๊ฐ์ด ์ง์ ‘ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ PaaSํ˜•ํƒœ์˜ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด์•ผ ํ•จ

[๊ตฌ์„ฑ ์š”์†Œ]

  • Pod: ํ•˜๋‚˜ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ์ปจํ…Œ์ด๋„ˆ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทธ๋ฃน์œผ๋กœ Pod ๋‹จ์œ„๋กœ ํ•จ๊ป˜ ๋ฐฐํฌ, ์ƒ์„ฑ, ์ •์ง€ ๋ฐ ๋ณต์ œ๋จ. Pod ๋‚ด ์ปจํ…Œ์ด๋„ˆ๋“ค๋ผ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ณต์œ ํ•จ
  • Service(=Proxy): ์—ฌ๋Ÿฌ Pod์„ ๋Œ€ํ‘œํ•˜๋Š” ํ•˜๋‚˜์˜ ๊ณ ์ • IP๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋ผ๋ฒจ๋ง ๋˜์–ด ์žˆ๋Š” Pod๋ฅผ ์ฐธ์กฐ ๊ฐ€๋Šฅ. ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•จ
  • Volume: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ง€์†์ ์ธ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋ณผ๋ฅจ์„ ํ• ๋‹นํ•ด ์‚ฌ์šฉํ•˜๋ฉฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ด์•„ ์žˆ๋Š” ๋™์•ˆ์—๋งŒ ์ง€์†๋จ. Configmaps, Secrets, HostPath, ServiceAccount ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณผ๋ฅจ์œผ๋กœ์จ ๋งˆ์šดํŠธ ๋  ์ˆ˜ ์žˆ์Œ
  • Deployment: ์š”๊ตฌ ๋˜๋Š” ๋ณต์ œ ์ˆ˜์— ๋”ฐ๋ผ ๋ฐฐํฌ ๋ชฉ์ ์„ ์ •์˜ํ•˜๊ณ  ์ด์— ๋”ฐ๋ผ Pod ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•จ. ์šด์˜ ์ค‘์ธ Pod๋“ค์„ ๋กค์•„์›ƒ ์—…๋ฐ์ดํŠธ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•จ
  • StatefulSet: Pod๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑ ๋˜์—ˆ๋Š”์ง€ ํ˜น์€ ์•ˆ์ •์ ์ธ ๋„คํŠธ์›Œํฌ ์‹ ์›์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์„ ๊ด€๋ฆฌ
  • DaemonSet: ํ•˜๋‚˜์˜ pod์— ํด๋Ÿฌ์Šคํ„ฐ ์ €์žฅ์†Œ ๋ฐ๋ชฌ, ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ๋ชฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ๋ชฌ ๋“ฑ ํ•„์š”ํ•œ ๋ฐ๋ชฌ๋“ค์ด ์ž˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ๊ด€๋ฆฌ
  • Job: ํ•˜๋‚˜ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ๊ธฐ์ค€์— ๋ช…์‹œ๋œ ์ˆ˜๋งŒํผ์˜ pod์„ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œํ•˜๋Š” ์—ญํ• 
  • Cron Job: ํŠน์ • ์‹œ๊ฐ„ ํ˜น์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐ€๋™๋˜๋„๋ก job๋“ค์„ ๊ด€๋ฆฌ

 

IBM Cloud private architecture

๊ทธ๋ฆผ5. IBM Cloud private Architecture

ย 

  • Cloud Private ๊ตฌ์„ฑ ๋…ธ๋“œ
    • Boot Node
      : ์„ค์น˜, ๊ตฌ์„ฑ, ๋…ธ๋“œ ํ™•์žฅ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋กค๋ง ์—…๋ฐ์ดํŠธ์— ํ•„์š”ํ•œ ๋…ธ๋“œ.
      : Boot ๋…ธ๋“œ ํ•˜๋‚˜๋กœ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ ์ œ์–ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ[๊ตฌ์„ฑ ์š”์†Œ] – Ansible ๊ธฐ๋ฐ˜์˜ ์ธ์Šคํ†จ๋Ÿฌ ๋ฐ ์šด์˜ ๋งค๋‹ˆ์ €
      – Calico: Kubernetes ๋„คํŠธ์›Œํฌ ๋ฐ ์ •์ฑ… ์„ค์ •
      – Filebeat: ๊ฐ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์‹œ์Šคํ…œ ์š”์†Œ ๋ฐ ์‚ฌ์šฉ์ž์˜ ์ปจํ…Œ์ด๋„ˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ˆ˜์ง‘

 

  • Master Node
    : ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์˜ API ์„œ๋ฒ„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ Worker ๋…ธ๋“œ ๋‚ด Pods, Service ๊ด€๋ฆฌ ๋ฐ Replication control๋“ฑ์˜ ์—ญํ•  ์ˆ˜ํ–‰
    : ๋ฆฌ์†Œ์Šค ํ• ๋‹น, ๋…ธ๋“œ ์ƒํƒœ ์ด์ƒ ์—ฌ๋ถ€ ํ™•์ธ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์ˆ˜ํ–‰
    : ๋‹จ์ผ ์žฅ์• ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด HA(High Availability) ๊ตฌ์„ฑ์ด ํ•„์š”ํ•จ[๊ตฌ์„ฑ ์š”์†Œ] – Authorized Manager: ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ HTTP API๋ฅผ ์ œ๊ณต. Keystone์ด ๊ถŒํ•œ ๊ด€๋ฆฌ์— ์‚ฌ์šฉ๋จ
    – Keystone: ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹ ์› ์กฐํšŒ ์„œ๋น„์Šค๋กœ ๊ธฐ์กด์— LDAP์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์—ฐ๋™ ๊ฐ€๋Šฅ
    – Calico: Kubernetes ๋„คํŠธ์›Œํฌ ๋ฐ ์ •์ฑ… ์„ค์ •
    – Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ: Private Docker image ๋ณด๊ด€
    – Default backend: ์ธ๋ฐ”์šด๋“œ๋กœ ๋“ค์–ด์˜ค๋Š” ๋„คํŠธ์›Œํฌ์˜ ๋ถ„์‚ฐ์„ ๋ณด์กฐํ•˜๋Š” ์—ญํ• 
    – etcd: ์„œ๋น„์Šค์— ์„ค์ •ํ•œ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ถ„์‚ฐํ˜• ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ
    – Filebeat: ๊ฐ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ ๋ฐ ์‚ฌ์šฉ์ž ์ปจํ…Œ์ด๋„ˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ˆ˜์ง‘
    – Elasticsearch: ์‹œ์Šคํ…œ๊ณผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ๊ธฐ๋ก ๋ฐ ๋งคํŠธ๋ฆญ์Šค๋ฅผ ์ €์žฅ. ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ API ์ œ๊ณต
    – Heapster: ๊ฐ Worker ๋…ธ๋“œ์•ˆ์—์„œ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” kubelet์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋…ธ๋“œ์™€ ์ปจํ…Œ์ด๋„ˆ ๋งคํŠธ๋ฆญ์Šค๋ฅผ ์ˆ˜์ง‘(๋งคํŠธ๋ฆญ์Šค: CPU, memory, ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰)
    – Helm(Tiller): Kubernetes ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ
    – IBM Cloud private management console: Master ๋…ธ๋“œ ip๋ฅผ ํ†ตํ•œ ์ฝ˜์†” UI ์ œ๊ณต
    – Image manager: Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ํ‘ธ์‹œ, ํ’€ ๋ฐ ์ œ๊ฑฐ์™€ ์ด๋ฏธ์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๊ถŒํ•œ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ด€๋ฆฌ
    – Kubelet: ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์ด๊ด„ ๊ด€๋ฆฌ
    – Kube-dns: Kubernetes: ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ์—ญํ• (ํƒ์ง€)
    – Kubernetes apiserver: pods, services ๋ฐ replication controller๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ REST API ์ œ๊ณต
    – Kubernetes control manager(=replication controller): Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ณต์œ  ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์š”๊ตฌ๋˜๋Š” ์„œ๋น„์Šค ๊ธฐ์ค€์— ๋งž๊ฒŒ ํ˜„ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์—ญํ• (Km api์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ)
    – Kubernetes proxy: Kubernetes ์„œ๋น„์Šค๋กœ ํ–ฅํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์ ํ•ฉํ•œ pod์— ํ–ฅํ•  ์ˆ˜ ์žˆ๋„๋ก(Round Robin) ์—ญํ•  ์ˆ˜ํ–‰
    – Kubernetes scheduler: ์Šค์ผ€์ฅด ์ •์ฑ…์— ๋”ฐ๋ผ worker ๋…ธ๋“œ์— pods ์„ ํ• ๋‹น ์ˆ˜ ์žˆ๋„๋ก kubectl ๋ช…๋ น์„ API ์„œ๋ฒ„์— ์ „์†ก
    – Logstash: Filebeat๊ฐ€ ์ˆ˜์ง‘ํ•œ ๋กœ๊ทธ ๊ธฐ๋ก์„ ๋ณ€ํ˜•ํ•ด Elasticsearch์— ์ „๋‹ฌ
    – Maria DB: Keystone์ด ์‚ฌ์šฉํ•˜๋Š” DB
    – Rescheduler: ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด pod ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•˜๋ฉฐ ์šด์˜์ค‘์ธ pod ์œ„์น˜๋ฅผ ์žฌ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ๊ตฌ์„ฑ์„ ์ตœ์ ํ™” ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰
    – Router: ๋ชจ๋“  ์‹œ์Šคํ…œ ์š”์†Œ API๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ฒ„์‹œ ํ”„๋ก์‹œ ์—ญํ•  ์ˆ˜ํ–‰ ๋ฐ ๊ด€๋ฆฌ ์ฝ˜์†” ํ˜ธ์ŠคํŒ…
    (๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์˜ˆ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ com๋กœ ์š”์ฒญ์‹œ ํ”„๋ก์‹œ๊ฐ€ zxc.com์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์‘๋‹ตํ•˜๋Š” ์ฆ‰ ํ”„๋ก์‹œ๊ฐ€ ์ค‘๊ฐ„์—์„œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ํ˜•ํƒœ)
    – Ucarp: Master ๋…ธ๋“œ์˜ VIP๋ฅผ ๊ด€๋ฆฌ
    – Unified router: IBM Cloud private ๊ด€๋ฆฌ ์ฝ˜์†”์˜ ๋ฐฑ์—”๋“œ ๊ธฐ๋Šฅ ์ง€์›
  • Proxy Node
    : ์™ธ๋ถ€ ์š”์ฒญ์„ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์˜ ์„œ๋น„์Šค์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰
    : ๋ถ€ํ•˜๋ถ„์‚ฐ(L4)์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์ ์–ด๋„ 1๊ฐœ ์ด์ƒ์˜ Proxy ๋…ธ๋“œ๊ฐ€ ํ•„์š”ํ•จ
    : Master ๋…ธ๋“œ์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ์œ„ํ•ด ๋”ฐ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ๊ณ  ๋จ
    : ๋‹จ์ผ ์žฅ์• ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด HA(High Availability) ๊ตฌ์„ฑ์ด ํ•„์š”ํ•จ[๊ตฌ์„ฑ ์š”์†Œ] – Calico: Kubernetes ๋„คํŠธ์›Œํฌ ๋ฐ ์ •์ฑ… ์„ค์ •
    – Filebeat: ๊ฐ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ ๋ฐ ์‚ฌ์šฉ์ž ์ปจํ…Œ์ด๋„ˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ˆ˜์ง‘
    – kubelet: ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์ด๊ด„ ๊ด€๋ฆฌ
    – Kubernetes proxy: Kubernetes ์„œ๋น„์Šค๋กœ ํ–ฅํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์ ํ•ฉํ•œ pod์— ํ–ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ญํ•  ์ˆ˜ํ–‰
    – Ucarp: Master ๋…ธ๋“œ์˜ VIP๋ฅผ ๊ด€๋ฆฌ
    – Ingress controller: Kubernetes์˜ Nodeport์— ๋Œ€ํ•œ ๋ถ€ํ•˜๋ถ„์‚ฐ ์ˆ˜ํ–‰
  • Worker Node
    : ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜น์€ ํ”„๋กœ์„ธ์Šค์— ๊ฒฉ๋ฆฌ๋œ(์ปจํ…Œ์ด๋„ˆํ™” ๋œ) ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๋…ธ๋“œ
    : ์ถ”๊ฐ€ํ•˜๋Š” ๋…ธ๋“œ ๊ฐœ์ˆ˜์—๋Š” ์ œํ•œ์ด ์—†์œผ๋‚˜, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ 1๊ฐœ ์ด์ƒ์˜ ๋…ธ๋“œ ๊ตฌ์„ฑ์ด ์š”๊ตฌ๋จ[๊ตฌ์„ฑ ์š”์†Œ] – Calico: Kubernetes ๋„คํŠธ์›Œํฌ ๋ฐ ์ •์ฑ… ์„ค์ •
    – Filebeat: ๊ฐ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ ๋ฐ ์‚ฌ์šฉ์ž ์ปจํ…Œ์ด๋„ˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ˆ˜์ง‘
    – kubelet: ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์ด๊ด„ ๊ด€๋ฆฌ
    – Kubernetes proxy: Kubernetes ์„œ๋น„์Šค๋กœ ํ–ฅํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์ ํ•ฉํ•œ pod์— ํ–ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ญํ•  ์ˆ˜ํ–‰
    – cAdvisor: ์ปจํ…Œ์ด๋„ˆ ์ž์›์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ kubectl ๋ช…๋ น์— ๋”ฐ๋ผ ์ˆ˜์ง‘ํ•œ ๋งคํŠธ๋ฆญ์Šค๋ฅผ Elasticsearch์— ์ „๋‹ฌ
    – Label: ํ™˜๊ฒฝ(Production, Dev, Staging) ํ˜น์€ ์—ญํ• (Frontend, Backend, Worker)๋“ฑ Pod์— ๋Œ€ํ•ด ๋ผ๋ฒจ๋ง(์ด๋ฆ„)ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณต์ˆ˜ ๋ผ๋ฒจ๋ง ๊ฐ€๋Šฅ

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q1. ย IBM Cloud private ์„ค์น˜๋Š” ๋ˆ„๊ฐ€ ๋‹ด๋‹นํ•˜๋‚˜์š”?
A: ๊ณ ๊ฐ์ด ์„ค์น˜, ๊ตฌ์„ฑ, ๊ด€๋ฆฌ ๋ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง์ ‘ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Managed Service๋ฅผ ํ†ตํ•ด ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q2. ย UI๋Š” ๊ธฐ์กด์˜ Spectrum Conductor for Containers์˜ UI๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋‚˜์š”?
A: ํ˜„์žฌ๋Š” CFC(Conductor for Containers)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ UI๋ฅผ ๊ตฌ์„ฑํ•˜์ง€๋งŒ ์ ์ฐจ IBM Cloud ํผ๋ธ”๋ฆญ UI์™€ ๋น„์Šทํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Q3. Syndicated ํ˜•์‹(๋กœ์ปฌ๊ณผ ํผ๋ธ”๋ฆญ ์„œ๋น„์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด ํ•„์š”์‹œ๋งˆ๋‹ค ํผ๋ธ”๋ฆญ ์„œ๋น„์Šค ์ด์šฉ)์„ ์ง€์›ํ•˜๋‚˜์š”?
A: ๋‹น์žฅ์€ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. IBM Bluemix Dedicated ์„œ๋น„์Šค๋Š” VPN์œผ๋กœ ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q4. Cloud-native ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ VM ๊ธฐ๋ฐ˜์˜ ๊ธฐ์กด ์„œ๋น„์Šค์™€์˜ ์—ฐ๊ฒฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๋‚˜์š”?
A: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ธฐ์กด VM ์œ„์—์„œ ์šด์˜์ค‘์ธ Oracle DB๋ฅผ ์—ฐ๊ฒฐํ•ด ์ž˜ ์šด์˜ํ•œ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Q5.ย  ๊ธฐ์กด์— Bluemix Local์˜ Cloud Foundry์™€๋Š” ์–ด๋–ค ๊ด€๊ณ„์ธ๊ฐ€์š”?
A: 2017๋…„ ๋ง์— Cloud Foundry๋ฅผ ์ถ”๊ฐ€ ์—…๋ฐ์ดํŠธํ•  ๊ณ„ํš์— ์žˆ์Šต๋‹ˆ๋‹ค.

Q6. ๊ธฐ์กด On-prem์— ์„ค์น˜ํ•ด ์‚ฌ์šฉํ•˜๋˜ UCD(Urban Code Deploy)์™€๋Š” ์–ด๋–ค ๊ด€๊ณ„์ธ๊ฐ€์š”?
A: IBM Cloud private๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํผ๋ธ”๋ฆญ๊ณผ ํ”„๋ผ์ด๋น— ํ™˜๊ฒฝ์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” IBM Cloud private์˜ App Center์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” Micro-services Builder๋ฅผ Jenkins์™€ ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด์ „์— UCD๋ฅผ ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹ค ๊ฒฝ์šฐ ์—ฐ๋™ํ•ด์„œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q7. Serverless ์ปดํ“จํŒ…์ธ OpenWhisk์˜ ํฌ์ง€์…˜์€ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?
A: ์ถ”๊ฐ€๊ฐ€ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Q8. ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด IBM Cloud private ์ƒ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
A: ๋„ค. ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด Helm ์ฐจํŠธ๋ฅผ ํ†ตํ•ด์„œ ๊ด€๋ฆฌํ•˜์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Q9. IBM Container Services(Public)๊ณผ IBM Cloud private๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
A: ๋„ค. Public IPํ†ต์‹ , VPN ํ†ต์‹ , Direct ์—ฐ๊ฒฐ๋กœ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Q10. ๊ธฐ์กด์— Bluemix Local์„ ์‚ฌ์šฉ์ค‘์ด๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
A: Bluemix Local์€ ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ณ„์†ํ•ด์„œ ์ง€์›ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด ์ง์ ‘ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๊ฑฐ๋‚˜ GTS์™€ ๊ฐ™์€ ์„œํฌํŠธ ์กฐ์ง์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Q11. Bluemix Private Cloud(Blue Box)์™€ ๊ฐ™์€ ๊ฑด๊ฐ€์š”?
A: ์•„๋‹™๋‹ˆ๋‹ค. Bluemix Private Cloud๋Š” OpenStack ์œ„์—์„œ IaaS ๊ธฐ๋ฐ˜(IBM Cloud ์„ผํ„ฐ์—์„œ ์šด์˜)์œผ๋กœ ์šด์˜๋ฉ๋‹ˆ๋‹ค. IBM Cloud private์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ ๊ฐ์˜ ์ธํ”„๋ผ ์œ„์—์„œ ์šด์˜๋ฉ๋‹ˆ๋‹ค.

 

  • ์ฐธ๊ณ  URL
  1. IBM Cloud private documentation: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0
  2. Calico ๊ตฌ์„ฑํ•˜๊ธฐ: https://www.projectcalico.org/calico-networking-for-kubernetes/

 

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.