도커의 근간 기술을 이해하기 위해 도커의 역사를 살펴보고, 클러스터 환경으로 컨테이너 환경을 운영하는 쿠버네티스에 대한 핵심 개념에 대해 알아봅니다. 마지막으로 쿠버네티스 클러스터를 손쉽게 생성하고 관리할 수 있는 네이버 클라우드 플랫폼 Kubernetes service를 데모를 통해 소개해드립니다 | To understand Docker's underlying technology, we look at Docker's history and learn about the core concepts of Kubernetis, which operates a container environment in a cluster environment. Lastly, I will introduce Naver's cloud platform Kubernetes service, which allows you to easily create and manage Kubernetes clusters, through a demo.
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
Cloud 기반으로 U2C(Unix to Cloud),U2L(Unix to Linux) 마이그레이션에 대한 가이드 라인과 사이징 관련 고려 사항에 대해 설명한 자료입니다.
많은 전환 프로젝트에서 추출된 경험치가 들어가 있으며, 전환별 난이도 및 고려사항이 들어가 있습니다.
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
[Microsoft Azure와 Red Hat OpenShift를 통한 비즈니스 스피드 업! 웨비나]
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
락플레이스 구천모 상무
영상 다시보기 : https://youtu.be/i3yKrHLHYJI
source : http://www.opennaru.com/open-source/containers-metaphor-for-what-docker-is/
컨테이너가 구축하는 애플리케이션에 대한 표준화된 컨테이너는 화물 운송 분야의 컨테이너는 대한 은유입니다.
컨테이너가 Tantlinger 에 의해 기술적인 표준화가 되기 전부터 오랫동안 구축된 개념입니다. HP, 오라클, IBM 과 같은 대형 벤더들은 수년간 켄테이너 기술을 사용해 왔으며, 특히 구글은 내부 프로젝트에서 매우 유사한 구현 방식을 사용하였습니다.
도커는 오픈소스와 커뮤니티를 중심으로 기술의 표준화와 발전을 이끌고 있습니다.
화물 컨테이너의 내부 화물은 운송에 중요하진 않습니다. 세계의 모든 선박과 트럭 그리고 크레인은 컨테이너 규격에 적합해야 합니다. 마찬가지로 도커 컨테이너도 어떤 애플리케이션( 관련 파일, 프레임워크, 의존성 등)이 내부에 있는지 중요하지 않습니다.
컨테이너는 모든 리눅스 배포판에서 실행되며, AMAZON AWS, Micrsoft Azue, Google Cloud Platform, Rackplace 등 모든 퍼블릭 클라우드 환경에서 운영됩니다.
해외로 이사를 간다고 가정을 하면 사실상 컨테이너에 이사짐을 넣은 후 트럭으로 이동하여, 크레인으로 배에 옮겨져 다른 나라로 운송합니다. 마찬가지로 컨테이너를 이용하면 개발자가 로컬 시스템에서 애플리케이션을 빌드하고 테스트 할 수 있으며
애플리케이션을 서버에 Push할 수 있습니다. 개발자는 컨테이너로 배포하게 되면 개발환경이나 운영환경이나 동일하게 동작할 것이라는 것을 알수 있습니다.
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
Cloud 기반으로 U2C(Unix to Cloud),U2L(Unix to Linux) 마이그레이션에 대한 가이드 라인과 사이징 관련 고려 사항에 대해 설명한 자료입니다.
많은 전환 프로젝트에서 추출된 경험치가 들어가 있으며, 전환별 난이도 및 고려사항이 들어가 있습니다.
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
[Microsoft Azure와 Red Hat OpenShift를 통한 비즈니스 스피드 업! 웨비나]
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
락플레이스 구천모 상무
영상 다시보기 : https://youtu.be/i3yKrHLHYJI
source : http://www.opennaru.com/open-source/containers-metaphor-for-what-docker-is/
컨테이너가 구축하는 애플리케이션에 대한 표준화된 컨테이너는 화물 운송 분야의 컨테이너는 대한 은유입니다.
컨테이너가 Tantlinger 에 의해 기술적인 표준화가 되기 전부터 오랫동안 구축된 개념입니다. HP, 오라클, IBM 과 같은 대형 벤더들은 수년간 켄테이너 기술을 사용해 왔으며, 특히 구글은 내부 프로젝트에서 매우 유사한 구현 방식을 사용하였습니다.
도커는 오픈소스와 커뮤니티를 중심으로 기술의 표준화와 발전을 이끌고 있습니다.
화물 컨테이너의 내부 화물은 운송에 중요하진 않습니다. 세계의 모든 선박과 트럭 그리고 크레인은 컨테이너 규격에 적합해야 합니다. 마찬가지로 도커 컨테이너도 어떤 애플리케이션( 관련 파일, 프레임워크, 의존성 등)이 내부에 있는지 중요하지 않습니다.
컨테이너는 모든 리눅스 배포판에서 실행되며, AMAZON AWS, Micrsoft Azue, Google Cloud Platform, Rackplace 등 모든 퍼블릭 클라우드 환경에서 운영됩니다.
해외로 이사를 간다고 가정을 하면 사실상 컨테이너에 이사짐을 넣은 후 트럭으로 이동하여, 크레인으로 배에 옮겨져 다른 나라로 운송합니다. 마찬가지로 컨테이너를 이용하면 개발자가 로컬 시스템에서 애플리케이션을 빌드하고 테스트 할 수 있으며
애플리케이션을 서버에 Push할 수 있습니다. 개발자는 컨테이너로 배포하게 되면 개발환경이나 운영환경이나 동일하게 동작할 것이라는 것을 알수 있습니다.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Kubernetes는 전세계 조직의 96%가 이미 사용 중이거나 검토 중인 오픈소스 기술입니다. 클라우드 시장은 IaaS에서 PaaS로 그 중심이 이동하고 있으며, PaaS 시장은 2026년까지 연평균 19.6% 성장률을 기록할 것으로 전망되고 있습니다.
Kubernetes를 기반으로 애플리케이션을 손쉽게 배포하고 자동화된 운영 관리는 제공하는 PaaS 솔루션, Playce Kube를 소개합니다.
다양한 컴포넌트를 유기적으로 결합한 최적의 플랫폼으로 유연한 클라우드 네이티브 애플리케이션을 위한 환경을 제공합니다.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
OpenStack 운영을 통해 얻은 교훈을 공유합니다.
목차
1. TOAST 클라우드 지금의 모습
2. OpenStack 선택의 이유
3. 구성의 어려움과 극복 사례
4. 활용 사례
5. 풀어야 할 문제들
대상
- TOAST 클라우드를 사용하고 싶은 분
- WMI를 처음 들어보시는 분
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...Amazon Web Services Korea
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴
강동환 솔루션즈 아키텍트, AWS
고객의 조직, 서비스 구조에 따라 함께 늘어나는 VPC를 효과적으로 통합, 관리, 운영하기 위한 서비스와 아키텍처 패턴을 소개합니다. Peering의 한계를 넘어 VPC간 자유로운 연동을 제공하는 Transit Gateway(TGW), 조직내 다양한 Account간의 VPC 공유를 위한 Multi-Account VPC(MAVPC), 그리고 AWS 자원의 안전한 공유를 제공하기 위한 Resource Access Manager(RAM)를 활용하는 다양한 아키텍처 패턴을 살펴봅니다.
[Container 기반의 DevOps] Cloud Native
열린기술공방에서 처음으로 런칭한 교육 프로그램의 트렌드 세션 자료입니다. 급변하는 환경에 맞춘 SW를 개발하고 배포하기 위해, 빠른 의사결정을 할 수 있는 환경과 프로세스가 더욱 중요해지고 있는데요. 기업들에게 왜 클라우드 네이티브 전략이 필수적인지에 대해 소개한 자료입니다.
열린기술공방의 교육 과정을 통해 Kubernetes위에서 동작하는 Application의 빌드부터 배포까지의 과정을 한 눈에 확인하실 수 있습니다.
클라우드에서 인프라 구축 시 고려해야 할 사항들을 살펴보고, 네이버 클라우드 플랫폼을 활용하여 고가용성을 유지하는 방안에 대해 소개합니다. | Explore the considerations of building infrastructure in the cloud and introduce ways to maintain high availability by leveraging the Naver cloud platform.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Kubernetes는 전세계 조직의 96%가 이미 사용 중이거나 검토 중인 오픈소스 기술입니다. 클라우드 시장은 IaaS에서 PaaS로 그 중심이 이동하고 있으며, PaaS 시장은 2026년까지 연평균 19.6% 성장률을 기록할 것으로 전망되고 있습니다.
Kubernetes를 기반으로 애플리케이션을 손쉽게 배포하고 자동화된 운영 관리는 제공하는 PaaS 솔루션, Playce Kube를 소개합니다.
다양한 컴포넌트를 유기적으로 결합한 최적의 플랫폼으로 유연한 클라우드 네이티브 애플리케이션을 위한 환경을 제공합니다.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
OpenStack 운영을 통해 얻은 교훈을 공유합니다.
목차
1. TOAST 클라우드 지금의 모습
2. OpenStack 선택의 이유
3. 구성의 어려움과 극복 사례
4. 활용 사례
5. 풀어야 할 문제들
대상
- TOAST 클라우드를 사용하고 싶은 분
- WMI를 처음 들어보시는 분
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...Amazon Web Services Korea
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴
강동환 솔루션즈 아키텍트, AWS
고객의 조직, 서비스 구조에 따라 함께 늘어나는 VPC를 효과적으로 통합, 관리, 운영하기 위한 서비스와 아키텍처 패턴을 소개합니다. Peering의 한계를 넘어 VPC간 자유로운 연동을 제공하는 Transit Gateway(TGW), 조직내 다양한 Account간의 VPC 공유를 위한 Multi-Account VPC(MAVPC), 그리고 AWS 자원의 안전한 공유를 제공하기 위한 Resource Access Manager(RAM)를 활용하는 다양한 아키텍처 패턴을 살펴봅니다.
[Container 기반의 DevOps] Cloud Native
열린기술공방에서 처음으로 런칭한 교육 프로그램의 트렌드 세션 자료입니다. 급변하는 환경에 맞춘 SW를 개발하고 배포하기 위해, 빠른 의사결정을 할 수 있는 환경과 프로세스가 더욱 중요해지고 있는데요. 기업들에게 왜 클라우드 네이티브 전략이 필수적인지에 대해 소개한 자료입니다.
열린기술공방의 교육 과정을 통해 Kubernetes위에서 동작하는 Application의 빌드부터 배포까지의 과정을 한 눈에 확인하실 수 있습니다.
클라우드에서 인프라 구축 시 고려해야 할 사항들을 살펴보고, 네이버 클라우드 플랫폼을 활용하여 고가용성을 유지하는 방안에 대해 소개합니다. | Explore the considerations of building infrastructure in the cloud and introduce ways to maintain high availability by leveraging the Naver cloud platform.
2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
[17.01.19] docker introduction (Korean Version)Ildoo Kim
Docker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
이젠 사물 인터넷을 넘어, 지능형 사물 인터넷 시대로 접어들고 있습니다. 지능형 사물 인터넷 트렌드는 어떤 지, 그리고 클라우드 기반의 IoT 서비스는 어떻게 구축이 가능한 지 함께 살펴보겠습니다 | Now beyond the Internet of Things, we are entering the era of the intelligent Internet of Things. Let's take a look at what the intelligent Internet of Things trend is and how cloud-based IoT services can be built.
클라우드 개념부터 클라우드와 함께하는 중요 기술들에 대해 살펴보며, 클라우드 컴퓨팅에 대한 이해와 기술 트렌드를 살펴보실 수 있습니다 | From the concept of cloud to important technologies with the cloud, you can see the understanding of cloud computing and technology trends.
21년도 12월부터 순차적으로 개시되는 마이데이터 사업에 대해 알아봅니다. 이를 통해 마이데이터 사업이 우리 삶과 비즈니스에 끼치는 영향에 대해 이해하고, 클라우드 상에서 마이데이터 사업을 어떻게 적용시킬 수 있는지에 대해 살펴봅니다. | Let's learn about the MyData business that starts sequentially in December 2021. Through this, we understand the impact of MyData business on our lives and businesses, and look at how we can apply MyData business on the cloud.
8월 온투법과 9월 특금법 시행을 앞둔 기업이라면, 자금세탁방지시스템[AML] 구축은 필수입니다. AML 업계 1위 제품인 AMLXpress에 대해 소개해드립니다 | Let me introduce AMLXpress, the No. 1 product in AML industry
서로 다른 애플리케이션의 중개자 역할을 하는 API가져온 API Economy의 정의를 살펴보고 API Economy 성공 기업들을 소개합니다 | Explore API Economy, which acts as a broker for different applications, and introduce API Economy successful companies.
최근 화두인 마이데이터사업에 대한 정의를 살펴보고, 마이데이터 사업을 위한 네이버클라우드플랫폼 서비스 및 구성방안에 대해 안내해드립니다. | We will look at the definition of MyData business, which is a hot topic recently, and guide you on Naver Cloud Platform service and architecture for MyData business.
VPC 환경에서의 보안과 네이버클라우드플랫폼에서 제공하는 보안관제서비스인 security monitoring 서비스에 대해 소개합니다. | Introduce Naver Cloud Platform security services, world-class security technologies to protect your data and services from external threats.
매년 가트너에서는 향후 5년간 IT업계의 파괴적 혁신을 도모할 주요 기술 흐름을 소개합니다. 가트너에서 2021년도 혁신 기술로서 언급한 내용들을 간략하게 정리하여 공유드립니다 | 98 / 5000소스 TTS복사하기필기인식기번역하기자동완성
영어열기/닫기 아이콘
Every year Gartner introduces key technology trends that will drive disruptive innovation in the IT industry over the next five years. We share a brief summary of what Gartner mentioned as an innovation technology of 2021.
클라우드 상에서 논리적으로 격리된 고객 전용 네트워크를 제공하는 VPC에 대해 살펴보고 스토리지 암호화, 감사 등 보안을 위한 다양한 기능들을 소개해드립니다 | Explore VPC providing a logically siloed customer-only network on the cloud and introduce a range of security features including storage encryption and auditing.
2025년도 까지의 데이터 시장의 전망을 살펴보고, 클라우드 상에서 데이터를 효율적으로 다루기 위한 서비스들을 소개합니다 | Explore the prospects for the data market by 2025 and introduce services to efficiently address data in the cloud
대규모 분산 서비스 및 시스템 성능을 분석하고 진단하기 위한 APM(Application Performance Management) tool Pinpoint의 특징과 기능에 대해 소개합니다 | Introduce the features and capabilities of Application Performance Management (APM) tool pinpoint for analyzing and diagnosing large distributed services and system performance
포스트코로나 시대에 비대면 서비스가 활성화되면서, 이를 실현하기 위한 AI 기술이 주목받고 있습니다. 네이버클라우드플랫폼에서 제공하는 AI 서비스를 살펴보시고 여러분들의 비즈니스에 적합한 AI서비스를 활용해보세요! | As non-face-to-face services are activated in the post-corona era, AI technology to realize them is attracting attention. Take a look at the AI service offered by Naver Cloud Platform and take advantage of the AI service that's right for your business!
코로나로 인해 촉발된 언택트 시대로 인해 우리 삶에 많은 변화가 일어나고 있습니다. 이러한 변화가 의료계에서는 어떤 모습으로 나타나고 있는지 살펴봅니다. | The untact era triggered by the corona is causing a lot of changes in our lives. Let's take a look at what these changes look like in the medical world.
엄청난 동시 접속 수로 고사양이 요구되는 게임 '배틀그라운드'! 속도가 중요한 게임 서비스에서 가장 필요한 고성능 서버입니다. 배틀그라운드 사례 뿐아니라 SK텔레콤도 선정하여 사용하고 있는 네이버클라우드플랫폼 베어메탈 서버에 대해 소개합니다 | Battlegrounds is a game that requires a lot of simultaneous access! High-performance servers most needed for speed-critical gaming services. In addition to the case of Battlegrounds, SK Telecom has selected and used Naver Cloud Platform Bare Metal Server.
네이버 클라우드 플랫폼의 "TensorFlow Server"상품은 TensorFlow를 비롯한 딥러닝 및 머신러닝 패키지와 코드를 작성할 수 있는 웹 기반의 Jupyter Notebook을 제공하여 빠르게 딥러닝, 머신러닝을 구현할 수 있게 해주는 상품입니다. 해당 온라인 교육을 통해 네이버 클라우드 플랫폼 상에서 Jupyter를 이용해 데이터 분석환경을 구축하는 법을 알아봅니다. | The "TensorFlow Server" product on Naver's cloud platform includes TensorFlow. This product provides a web-based Jupyter Notebook that allows users to write deep learning and machine learning packages and code so that they can quickly implement deep learning and machine learning.In this chapter, we will learn how to build a data analysis environment using Jupyter on Naver's cloud platform.
왜 기업은 멀티/하이브리드 클라우드에 주목해야하는지, 그리고 실제 멀티/하이브리드 유형과 사례를 살펴봄으써 멀티/하이브리드 수행 전략을 세움에 있어 실질적인 도움을 드립니다 | Why businesses should pay attention to multi-/hybrid clouds, and by looking at real-world multi/hybrid types and examples, we offer real help in creating a multi- and hybrid performance strategy.
사람에 가까운 자연스럽고 깨끗한 합성음을 제공하는 음성 합성 API인 Clova Premium Voice에 대한 기능 및 데모를 통한 사용법을 소개합니다 | Introducing features and demos for Clova Premium Voice, a voice synthesis API that provides near-human, natural, clean sounds
네이버클라우드플랫폼에서 제공하는 클라우드 데이터베이스 서비스를 소개하고, 네이버클라우드 플랫폼의 클라우드 데이터베이스 관리 노하우에 대해 소개합니다 | Introduce cloud database services provided by Naver Cloud Platform and know-how of managing cloud databases on Naver Cloud Platform
OCR(Optical character recognition, 광학 문자 인식)은 이미지(사진) 속 글자 위치를 찾고 어떤 글자인지 자동으로 알아내는 기술로서 OCR 서비스는 네이버의 AI 기술을 활용하여 주요 비즈니스 활용에 최적화된 고성능 OCR 인식 모델을 적용하였습니다. 네이버 클라우드 플랫폼의 OCR서비스에 대해 좀 더 상세히 소개해드리도록 하겠습니다.
네이버 클라우드 플랫폼의 Kubernetes Service(NKS)에서 Pod들의 오토스케일을 적용하는 방법에 대해서 소개합니다 | Introduce how to apply autoscale of Pods in the Kubernets Service (NKS) of Naver Cloud Platform
4. 4 NAVER Cloud 2021
가상화 기술이란?
가상화(Virtualization)는 물리적인 컴포넌트(Components, HW장치)를 논리적인 객체로 추상화 하는 것을 의미합니다.
가상화의 대상이 되는 컴퓨팅 자원은 프로세서
(CPU), 메모리(Memory), 스토리지
(Storage), 네트워크(Network)를 포함하며,
이들로 구성된 서버나 장치들을 가상화함으로
써 높은 수준의 자원 사용율과 분산 처리 능력
을 제공할 수 있다.
CPU Memory Disk Network
Virtualization
…
vCPU
vCPU vCPU vCPU
Virtual Machine Virtual Machine Virtual Machine
CPU 가상화 예시
가상머신은 내부구조가 물리적인 서버의 컴퓨
팅 환경과 매우 유사하다. 실제 서버처럼 CPU,
메모리, 저장소와 같은 하드웨어 자원을 활용하
고, 내부에 운영체제를 구동시킬 수 있으며, 각
종 응용프로그램을 구동 및 관장한다.
5. 5 NAVER Cloud 2021
서버 가상화 기술 종류
Type1 - 베어메탈(Bare-metal)
하드웨어
하이퍼바이저
가상 환경
앱
미들웨어
게스트OS
…
앱
미들웨어
게스트OS
가상 환경
하드웨어 상에 가상화를 전문으로 수행하는 소프트웨어
인 ‘하이퍼바이저’를 배치하고, 하드웨어와 가상 환경을
제공 (ex. Hyper-V, Xenserver 등)
서버 가상화는 호스트형 서버 가상화와 하이퍼바이저형 서버 가상화로 구분될 수 있습니다.
Type2 - 호스트형
호스트형 서버 가상화는 하드웨어 상에 베이스가 되는
호스트 OS를 설치하고, 호스트 OS에 가상화 소프트웨어
를 설치한 후 이 가상화 소프트웨어 상에서 게스트 OS를
작동시키는 기술을 의미
하드웨어
호스트OS
하이퍼바이저
가상 환경 가상 환경
앱
미들웨어
게스트OS
…
앱
미들웨어
게스트OS
7. 7 NAVER Cloud 2021
컨테이너란?
▪ 컨테이너란 호스트OS상에 논리적인 구획(컨테이너)을 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등
을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것입니다.
▪ 보통 물리 서버 상에 설치한 호스트 OS의 경우 하나의 OS상에서 움직이는 여러 애플리케이션은 똑같은 시스템 리소스를 사용하는 반면,
가상화의 범주 내에서 컨테이너는 기존 하이퍼바이저와 게스트OS를 필요로 했던 가상머신 방식과는 달리, 프로세스를 격리하여 ‘모듈화
된 프로그램 패키지’로써 수행하는 것을 의미한다. 이렇게 하면 기존의 가상머신에 비해 가볍고 빠르게 동작할 수 있는 장점이 있다.
VS
일반 VM에는 Guest OS가 함께 구동되나, 컨테이너 환경에서는 Host OS를 공유하고 프로세스만을 격리화하여 경량화된
형태로 구동됩니다.
8. 8 NAVER Cloud 2021
컨테이너의 역사
출처 : https://naleejang.tistory.com/228
9. 9 NAVER Cloud 2021
컨테이너의 역사 – FreeBSD Jail
FreeBSD Jail
▪ 오픈소스 Unix인 FreeBSD(유닉스 계열의 OS)의 기술
▪ FreeBSD Jail은 2000년에 릴리스된 FreeBSD 4.0에서 도입
▪ FreeBSD Jail의 주요 기능
▪ 프로세스 구획화 : Jail에서 실행중인 프로세스는 Jail밖의 프로
세스에 대해 영향을 줄 수 없음
▪ 네트워크의 구획화 : Jail은 하나하나에 IP주소가 할당되어 있으
며, 여러 개의 주소를 할당도 가능
▪ 파일시스템의 구획화 : Jail에서 사용하는 파일 시스템을 구획화함
으로써 조작할 수 있는 명령이나 파일 등을 제한 가능
Container
컨테이너의 역사는 오래 되었는데, FreeBSD라는 오픈 소스와 Solaris의 ‘Solaris Containers’ 등이 있습니다. 컨테이
너 기술의 역사를 살펴보면 도커의 기능들에 대해서도 쉽게 파악이 가능합니다.
10. 10 NAVER Cloud 2021
컨테이너의 역사 – Solaris Containers
Solaris Containers
▪ Solaris Containers는 오라클의 상용 Unix인 Solaris에서 사용하는 컨테이너
기술
▪ Solaris 존 기능 : 하나의 OS 공간을 가상적으로 분할하여 여러 OS가 작동
하는 것처럼 보여주는 소프트웨어 파티셔닝 기능
▪ 리소스 매니저 기능 : 비 글로벌 존에서 CPU나 메모리와 같은 하드웨어 리소
스를 배분하는 리소스 관리 기능
Container
컨테이너의 역사는 오래 되었는데, FreeBSD라는 오픈 소스와 Solaris의 ‘Solaris Containers’ 등이 있습니다. 컨테이
너 기술의 역사를 살펴보면 도커의 기능들에 대해서도 쉽게 파악이 가능합니다.
비 글로벌 존
하드웨어
Solaris
글로벌 존
비 글로벌 존
미들웨어
앱
미들웨어
앱
11. 11 NAVER Cloud 2021
컨테이너의 역사 – Linux Containers
구분 Virtual Machine Linux LXC Container
Operating System Run an isolated guest OS inside the VM Runs on the same OS as the host(Shared Kernel)
Networking Via virtual network devices Via an isolated view of virtual network
adapter(through namespaces)
Isolation Complete isolation from other guest OS and the host OS Namespaces- and cgroup-based isolation from the
host OS and other guest lxc containers
Size Usually on the order of gigabytes Usually on the order of megabytes
Startup time On the order of seconds to minutes depending on
storage media
On the order of seconds
리눅스 상에서 사용하는 컨테이너 환경을 Linux container라고 합니다. 각 컨테이너는 namespace와 cgroup을 통해
분리된 환경으로 운영됩니다.
[Main differences VM vs Linux LXC Container]
12. 12 NAVER Cloud 2021
왜 컨테이너가 인기를 끄는 것일까
일반적으로 컨테이너에는 OS가 포함되지 않아 크기가 수십 MB에 불과하다. 당연히 운영체제 부팅이 필요 없기 때문에 서비스를
시작하는 시간 또한 상대적으로 매우 짧다. 또한, 작은 크기 때문에 컨테이너에 대한 복제와 배포가 좀 더 용이하다
경량화된 크기
컨테이너의 경우, 생성 및 실행되면 마치 운영체제 위에서 하나의 어플리케이션이 동작하는 것과 동일한 수준의 컴퓨팅 자원을 필
요로 한다. 시스템은 기존 응용프로그램을 실행시키는 것과 유사하게 이를 구동할 여분의 컴퓨팅 자원만 있으면 된다. 때문에 기
존의 가상머신 방식 대비 시스템의 성능 부하가 훨씬 적다.
컨테이너 방식은 기존의 가상머신 방식보다 시스템이 경량화 되어있기 때문에 더 많은 응용프로그램을 더 쉽게 하나의 물리적 서
버에서 구동시키는 것이 가능하다.
컨테이너는 가상머신 방식의 가상화보다 적은 시스템 요구사항
특정 클라우드 어플리케이션이 실행되기 위한 모든 라이브러리와 바이너리파일 등이 패키지화되어 있어서, 그저 기존의
시스템에서 실행하면 된다. 반면, 가상머신 방식은 새로운 서비스를 제공하기 위한 특정 어플리케이션을 실행시키려면, 먼저 새
로운 VM을 띄우고 자원을 (-동적 또는 미리 세팅한 대로) 할당한 다음, 필요한 게스트OS를 부팅한 후 어플리케이션을 실행시
켜야 한다.
구동 방식이 간단
경량화된 크기로 빠른 실행이 가능하고, 일반 VM 대비 적은 시스템 요구 사항 이라는 장점을 바탕으로 컨테이너 기술이 주
목받고 있습니다.
출처 : 클라우드 가상화 기술의 변화 – 컨테이너 기반의 클라우드 가상화와 DevOps
15. 15 NAVER Cloud 2021
도커 개요
컨테이너 기반의 가상화 소프트웨어에는 OpenVZ, LXC, Lunix vServer, FreeBSD Jail, Solaris Zones, Docker
등이 있으며, 그 중에서 최근 가상화 및 클라우드 컴퓨팅 영역에서 가장 각광받고 있는 것이 바로 도커(Docker)입니다.
도커는 앞서 살펴본 컨테이너를 관리하는 기능의 오픈소스 플랫폼이다.
도커는 2013년 3월 산타클라라에서 열린 Pycon Conference
에서 dotCloud의 창업자인 솔로몬 하익스(Solomon Hykes)가
「The future of Linux Containers」 라는 세션을 발표하면서
처음 세상에 알려졌다
이후 도커가 인기를 끌면서 같은 해 10월 회사이름을 자사의 플
랫폼 명과 같은 Docker로 변경하고, 2014년 6월 Docker 1.0
을 발표했다. 2013년 오픈소스로 공개된 후 불과 3년 만에 서버
운영체제의 기본기술로 각광받기 시작했다.
출처 : 클라우드 가상화 기술의 변화 – 컨테이너 기반의 클라우드 가상화와 DevOps
[도커 등장배경]
16. 16 NAVER Cloud 2021
도커 기반 기술
리눅스 컨테이너를 이해하기 위한 출발점은 cgroups(control groups) 및 네임스페이스(namespaces)입니다.
cgroup과 namespace에 대해 살펴보도록 하겠습니다.
▪ cgroup(control groups) : Cgroup을 통해 사용자는 CPU 시간, 시스템 메모리, 네트워크 대역폭과 같은 자원을 사용자 정의 작
업 그룹 (프로세스) 간에 할당할 수 있습니다. 이를 통해 특정 컨테이너가 호스트 OS의 자원을 모두 사용해 버려서 동일한 호스트 OS
상에서 가동되는 다른 컨테이너에 영향을 주는 것을 막을 수 있습니다.
▪ Cgroup에서 관리할 수 있는 항목
항목 설명
cpu CPU 사용량을 제한
cpuact CPU 사용량 통계 정보를 제공
cpuset CPU나 메모리 배치를 제어
memory 메모리나 스왑 사용량을 제한
devices 디바이스에 대한 액세스 허가/거부
freezar 그룹에 속한 프로세스 정지/재개
net_cls 네트워크 제어 태그를 부가
Blkio 블록 디바이스 입출력량 제어
17. 17 NAVER Cloud 2021
도커 기반 기술
리눅스 컨테이너를 이해하기 위한 출발점은 cgroups(control groups) 및 네임스페이스(namespaces)입니다.
cgroup과 namespace에 대해 살펴보도록 하겠습니다.
▪ 네임스페이스(namespaces) : 네임스페이스는 리눅스 커널에 내장되어 있는 기능으로서, 프로세스를 서로 격리시키는 기술입니다.
리눅스 커널의 namespace 기능은 linux의 오브젝트에 이름을 붙임으로써 다음과 같은 6개의 독립된 환경을 구축할 수 있습니다.
▪ PID namespace : PID란 linux에서 각 프로세스에 할당된 고유한 ID를 의미하며, PID namespace는 PID와 프로세스를 격
리시킴
▪ Network namespace : network namespace는 네트워크 디바이스, IP주소, 포트번호, 라우팅 테이블, 필터링 테이블 등
과 같은 네트워크 리소스를 격리된 namespace마다 독립적으로 할당 가능
▪ UID namespace : UID Namespace는 UID(사용자 ID),GID(그룹 ID)를 namespace별로 독립적으로 가질 수 있습니다.
▪ Mount namespace : 마운트 조작을 하면, namespace안에 격리된 파일 시스템 트리를 만들고, 다른 namespace 안에서
수행한 마운트는 호스트OS나 다른 namespace에서는 액세스할 수 없음
▪ UTS namespace : namespace별로 호스트명이나 도메인명을 독자적으로 가질 수 있도록 구성
▪ IPC namespace : 프로세스 간의 통신 오브젝트를 namespace별로 독립적으로 가질 수 있도록 제공
18. 18 NAVER Cloud 2021
도커 컴포넌트
도커 이미지를 생성하고 컨테이너를
기동시키기 위한 도커의 핵심 기능
Docker Engine Docker Registry Docker Compose
컨테이너의 바탕이 되는 도커 이미지를
고개 및 공유하기 위한 레지스트리 기능
여러 개의 컨테이너 구성 정보를 코드로
정의하고, 명령을 실행함으로써 애플리
케이션의 실행 환경을 구성하는 컨테이
너들을 일원 관리하기 위한 툴
로컬 호스트용인 virtual box를 비롯하
여 클라우드 환경에 docker 실행 환경
을 명령으로 자동 생성하기 위한 툴
Docker Machine Docker Swarm
Docker swam은 여러 docker 호스트
를 클러스터화하기 위한 툴.
Docker swarm에서는 클러스터를 관
리하거나 API를 제공하는 역할을
Manager가, Docker 컨테이너를 실행
하는 역할은 node가 담당
도커는 핵심 기능이 되는 docker engine을 중심으로 컴포넌트들을 조합하여 애플리케이션 실행 환경을 구축합니다.
19. 19 NAVER Cloud 2021
도커 네트워크 구성
▪ Linux는 도커를 설치하면 서버의 물리 NIC이 docker0 이라는 가상 브릿지 네트워크로 연결이 되며,이 docker 0는
docker를 실행시킨 후에 디폴트로 만들어집니다.
호스트 OS
컨테이너 A 컨테이너 B
eth0 eth0
vethXXXX(가상NIC) vethXXXX(가상NIC)
Docker0(가상 브릿지)
Eth0(물리 NIC)
20. 20 NAVER Cloud 2021
도커 네트워크 구성
호스트 OS
컨테이너 A(Port 80) 컨테이너 B(Port 3306)
eth0 eth0
vethXXXX(가상NIC) vethXXXX(가상NIC)
Docker0(가상 브릿지)
Eth0(물리 NIC)
도커에서는 프라이빗 IP 주소와 글로벌 IP주소를 투과적으로 상호 변환하는 기술인 NAPT 기능을 사용하여, 컨테이너 시
작 시에 컨테이너에서 사용하고 있는 포트를 가상 브릿지인 docker0에 대해 개방하게 됩니다.
호스트OS의 8080 포트에 액세스
21. 21 NAVER Cloud 2021
도커 핵심 개념 – 도커 이미지
도커 이미지란, 서비스 운영에 필요한 서버 프로그램, 소스 코드, 컴파일된 실행 파일을 묶은 형태를 의미합니다. 도커 이미지
는 레이어 형태로 구성됩니다.
Ubuntu Nginx Web app
Layer C
Layer B
Layer A
Nginx
Layer C
Layer B
Layer A
Web app source
Nginx
Layer C
Layer B
Layer A
▪ 작성한 이미지는 다른 이미지와도 공유가 가능하여 저장 용량을 효율적으로 관리가 가능
▪ 가장 상단에는 Read/write layer가 존재하여 실행중인 컨테이너에서 생긴 변화는 가장 상단의 read/write layer에서 이루어진다.
Container
R/W Layer
Web app
image
22. 22 NAVER Cloud 2021
Dockerfile 기본 구문
명령 설명
FROM 베이스 이미지 지정
RUN 명령 실행
CMD 컨테이너 실행 명령
LABEL 라벨 설정
EXPOSE 포트 익스포트
ENV 환경 변수
ADD 파일/디렉토리 추가
COPY 파일 복사
명령 설명
ENTRYPOINT 컨테이너 실행 명령
VOLUME 볼륨 마운트
USER 사용자 지정
WORKDIR 작업 디렉토리
ARG Dockerfile 안의 변수
ONBUILD 빌드 완료 후 실행되는 명령
STOPSIGNAL 시스템 콜 시그널 설정
HEALTHCHECK 컨테이너의 헬스 체크
SHELL 기본 쉘 설정
도커는 애플리케이션 실행에 필요한 프로그램 본체, 라이브러리, 미들웨어, OS나 네트워크 설정 등을 하나로 모아 도커 이미
지를 생성하며, 해당 이미지는 컨테이너의 바탕이 됩니다.
▪ 도커 이미지 빌드
dockr image build –t apache .
▪ 도커 이미지 태그
docker image tag apache hello_apache
참고
23. 23 NAVER Cloud 2021
도커의 기능 1) Docker build, docker run
도커는 애플리케이션 실행에 필요한 프로그램 본체, 라이브러리, 미들웨어, OS나 네트워크 설정 등을 하나로 모아 도커 이미
지를 생성하며, 해당 이미지는 컨테이너의 바탕이 됩니다.
도커 이미지는 컨테이너 구성 정보를 기술하기 위해 Dockerfile을 통해 생성하는 것이 일반적입니다.
Dockerfile 생성 이후, docker build 명령어를 통해 도커 이미지를 생성할 수 있습니다.
도커 이미지만 있으면, 도커가 설치된 환경 어디에서든지 컨테이너 실행이 가능합니다.
(동일한 도커 이미지를 가지고 여러 개의 컨테이너를 기동시킬 수도 있습니다.) 도커 이미지를 바탕으
로하여, 도커를 실행하기 위해 사용하는 명령어가 ‘docker run’ 입니다.
FROM ubuntu
RUN apt-get install
…
[도커 파일 예시]
docker build
도커 파일을 바탕으로
이미지 생성 시 사용 명령어 도커 이미지
docker run
24. 24 NAVER Cloud 2021
Dockerfile 예시
# STEP 1 : CentOS(베이스 이미지)
FROM centos:centos7
# STEP 2 : Apache 설치
RUN yum -y update && yum install -y httpd httpd-tools
#STEP 3: 명령 실행
RUN echo '<!DOCTYPE html>
<head>
<title>NCP</title>
</head>
<body style="text-align:center">
<h2> 도커와 컨테이너 </h2>
<div><b>Subject :</b> 도커와 컨테이너 이해하기 </div>
<div style="color:#fff;background:#F68657;"><b>Version</b> : 2.0.0</div>
</body>
</html>' > /var/www/html/index.html
#STEP 4: Apache 실행
CMD ["systemctl","restart","httpd"]
Step 1/4 : FROM centos:centos7
Step 2/4 : RUN yum update && yum install -y httpd
Step 3/4 : RUN echo…
Step 4/4 : CMD systemctl restart httpd;
25. 25 NAVER Cloud 2021
도커 허브
도커 허브는 실행 가능한 애플리케이션의 이미지를 관리하는 기능을 갖춘 도커의 공식 리포지토리 서비스입니다.
▪ 도커 허브를 통해 등록되어 있는 도커 이미지 활
용이 가능할 뿐만 아니라 사용자가 작성한 독자적
인 도커 이미지를 도커 허브를 통해 공개할 수도
있습니다.
▪ 도커 허브에 가입 후, docker login 명령을 사용
하여 로그인을 진행합니다.
▪ Ex) 도커 허브 로그인 → docker login
▪ 도커 허브에서 도커 이미지를 다운로드 받기 위해
서는 ‘docker image pull’ 명령어를 사용합니
다.
▪ Ex) CentOS 7 이미지 다운로드 → Docker
image pull centos:7
26. 26 NAVER Cloud 2021
네이버 클라우드 플랫폼 Container Registry
Container Registry
Docker Registry v2 스펙의 프라이빗 Docker 컨테이너 이미지 저장
소로, 있음. 개발자는 자체 컨테이너 레지스트리 구축과 인프라에 대해
고민하지 않고 Docker 컨테이너 이미지를 손쉽게 저장, 관리 및 배포
가능함
컨테이너 이미지 관리
대시보드를 통해 도커 컨테이너 이미지의 목록 조회 및 메타데이터 관리, 불필요한 이
미지 삭제 가능
협업 및 접근 제어
Sub Account를 사용하여 사용자와 역할별로 서로 다른 권한을 지정할 수 있어,
저장소를 다른 사용자와 공유 가능
컨테이너 취약점 분석
Container Registry 에 등록된 컨테이너 이미지의 이상징후 및 CVE 기반의 보안 취
약점을 분석하고, 각 고유 CVE 보안 취약점을 심각도에 따라 구분. 스캔 결과를 기반
으로 취약점을 제거함으로써 컨테이너 보안 강화
Developer
Namespace =
Enterprise01
Namespace =
SMB01
Kubernetes Cluster
SaaS Portal
Build Image
Push to
repository
Container Registry
Pull Image
from repository
27. 27 NAVER Cloud 2021
Docker Swarm
별도의 추가 설치나 작업 없이도 사용 가능하며, 여러 호스트에 걸쳐서 컨테이너 운영이 가능하다는 장점을 가지고 있습니다.
Swarm은 Swarm 모드에서 실행되고 구성원 및 위임을 관리하는 관리자와 Swarm 서비스를 실행하는 작업자 역할을 하
는 여러 Docker 호스트로 구성됩니다.
Swarm manager
Worker node Worker node Worker node
Discovery
Service
Docker
Daemon
Docker
Daemon
Docker
Daemon
▪ 클러스터 상태 유지
▪ 스케줄링
▪ HTTP API 엔드포인트 제공
28. 28 NAVER Cloud 2021
Kubernetes란
▪ Kubernetes 는 구글에서 만든 오픈소스 컨테이너 스케쥴러로, 2015년 7월 처음 v.1.0 으로 시작하여, 현재1.20
까지 업데이트 되었습니다.
▪ Kubernetes는 container의 배포(scheduling), 운영(HA, Failover), 확장(Scaling)을 자동화하기 위한 플랫폼으
로 설계되었으며 쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공합니다.
29. 29 NAVER Cloud 2021
Kubernetes Components – Master Node
API Server Scheduler
Controller-Manager
Replication
Controller
Endpoint
Controller
Node
Controller
Service Account
TokenController
etcd
Kubernetes Master (Control Plane)
Kubernetes Cluster 에서 컨테이너의 관리 및 배포를 관리
하는 액세스 제어 플레인
클러스터 복제 패턴에 따라 마스터 수는 1개 이상 임
Kubernetes Master
Kubernetes API 를 노출하는 컴포넌트로, Kubernetes 오
브젝트 관리/제어를 위한 프론트 엔드
API Server
Node 가 배정되지 않은 새로 생성된 Pods 를 감지하고
그것이 구동될 Node 를 선택함
Scheduler
4개의 컨트롤러는 논리적으로는 개별 프로세스이지만
복잡성을 낮추기 위해 단일 바이너리로 컴파일
Controller-Manager
• Node Controller : 노드가 다운되었을 때 통지와 대응
• Replication Controller : 모든 replication controller
object 에 대해 알맞는 수의 pods 를 유지
• Endpoint Controller : 서비스와 Pods 를 연결
• Service Controller : 새로운 네임스페이스에 대한 기본 계
정과 API 접근 토큰 생성
모든 클러스터 데이터를 담는 key-value 저장소
Replicaset, controller, scheduler, kubelet 등은 etcd 에 바
로 접근하지 않고 API Server 를 통해 etcd 데이터에 접근할 수
있음
Etcd
30. 30 NAVER Cloud 2021
Kubernetes Components – Worker Node
동작중인 Pods 를 유지시키고 Kubernetes 런타임 환경
을 제공함
Kubernetes Worker Node
각 Node 에 구동되는 Agent 로 Kubernetes Master 와
통신하며 Pod Spec 에 기술된 컨테이너들이 정상적으로
작동하도록 함
Kubelet
호스트 상에서 네트워크 규칙을 유지하고 연결에 대한 포
워딩을 수행함으로서 쿠버네티스 서비스 추상화가 가능
하도록 함
Kube-proxy
컨테이너가 실행될 수 있는 환경
(Docker, containerd, cri-o, rktle 등)
Container Runtime
Kubelet Kube-proxy
Worker Node
Container
Container
Container
Container
Pod
Pod
WEB UI Monitoring
Plugin Network DNS
Kubernetes 기본 네트워크인 kubenet 은 기능 제약이
있어 사용자 요구사항에 따라 별도의 CNI 를 사용함
Plugin Network
Kubernetes 서비스를 위해 DNS 레코드를 제공해주는
DNS 서버, 기본 kube-dns 를 제공하나 성능 개선을 위
해 별도의 플러그인 DNS 를 사용하기도 함
DNS
Kubernetes 클러스터를 위한 범용의 웹 기반 UI 로 클러
스터와 클러스터 내 동작하는 어플리케이션에 대한 관리
와 실패 처리가 가능함
WEB UI
중앙 데이터베이스 내에 컨테이너들에 대한 포괄적인 시
계열 메트릭스를 기록하고 데이터 조회를 위한 UI 제공함
Resource Monitoring
31. 31 NAVER Cloud 2021
Kubernetes 주요 기능
Automatic Binpacking Service Discovery & Load Balancing
Secret & Configuration Management Batch Execution
Storage Orchestration Self Healing
Horizontal Scailng Automatic Rollbacks & Rollouts
Worker node 의 가용성을 유지하면서 보유한 리소스를
충분히 활용할 수 있도록 스스로 스케쥴링하며
컨테이너를 배치함
컨테이너에 IP 주소를 자동으로 할당하고 클러스터 내
트래픽을 로드 밸런싱 할 수 있는 컨테이너 세트에
단일 DNS 이름을 할당함
로컬 저장소를 선택하거나 NFS, iSCSI 등과 같은
공유 네트워크 스토리지를 컨테이너에 할당/마운트 하여
사용 가능함
실패한 컨테이너를 자동으로 다시 시작하고, 사용자가 정의한
헬스체크에 응답이 없는 컨테이너를 종료함. 워커 노드 장애 시
사용 가능한 다른 워커 노드에 컨테이너를 다시 기동함
Application 연동 및 접근 제어를 위한 보안 키, 설정 내역을
컨테이너 이미지의 변경 없이 업데이트 할 수 있고 외부로
노출하지 않고 사용 가능함
CPU 사용률과 같은 metric 을 기반으로 pod 의 Deployments,
replicaset 을 스케줄링하여 수평적 확장 가능함
컨테이너 기반의 서비스 관리 뿐 아니라 배치 및 CI 작업 부하를
관리할 수 있으므로 원하는 경우 실패한 컨테이너 대체 가능함
컨테이너의 응용 프로그램이나 구성에 대한 변경 사항을 점진적으
로 업데이트 하고 문제 발생 시 자동으로 롤백 할 수 있음
32. 32 NAVER Cloud 2021
Pod의 개념
• Kubernetes 에서 생성하고 관리할 수 있는 배포가능한 가장 작은 단위 (*Kuberentes 공식 홈페이지 정의)
• 하나 이상의 실행 컨테이너를 포함
• 일반적으로 밀접하게 연결된 Application 이 올라간 컨테이너들을 Pod로 묶어서 배포
• Deployment 혹은 Job 과 같은 워크로드를 이용하여 생성
• 애플리케이션 컨테이너, 스토리지 리소스, 고유 네트워크 ID 및 기타 구성을 캡슐화
• 동일한 리소스와 로컬 네트워크를 공유하여, 머신이 분리되어 있어도 Pod 내 컨테이너 간 통신이 가능함
• Pod 생성 시, 휘발성 성질을 가진 IP를 자동으로 할당 받음
Container1 Container2 Container3
10.0.10.5
8002
8001 8002
Container4 Container5
10.0.10.6
8002
8001
Container5
8002
복제본
NODE
Pod Pod
storage storage
33. 33 NAVER Cloud 2021
Kubernetes Component - Deployment
• 서비스 업데이트 시,사용자의 기대상태(Desired State)를 유지하도록 하는 Controller
▪ Deployment는 ReplicaSet에 대한 Update를 담당
▪ ReplicaSet은 사용자가 선언한 기대 상태인 Replica의 수를 지속적으로 확인하며 유지 시킴
• 상태가 없는(Stateless) 앱을 배포 시 사용
• 앱은 컨테이너 집합인 Pod 단위로 배포
Deployment
: Update, Rollback
ReplicaSet
: Scalable, Self-Healing, Desired State
Pod Pod Pod
Developer
App Descriptor
3x
Deployment
replica:
Desired State
34. 34 NAVER Cloud 2021
Label
Label 을 이용한 구분
• Kubernetes의 모든 Object에 붙일 수 있는 속성
• 목적에 따라 Object를 구분하여 사용하기 위해 이용
• Key:Value 를 한 쌍으로 갖는다 (ex. lo: prod)
• 대표적으로 Pod에 가장 많이 붙여 사용
• 하나의 Pod에는 여러 Label을 붙일 수 있음
Namespace
Pod01
type: web
lo: dev
Pod02
type: was
lo: dev
Pod03
type: web
lo: prod
Pod04
type: was
lo: prod
apiVersion: v1
kind: Pod
metadata:
name: pod01
labels:
type: web
lo: dev
spec:
containers:
- name: web01
image: image
Service02
Service01
apiVersion: v1
kind: Service
metadata:
name: service01
spec:
selector:
type: web
ports:
- port: 8080
35. 35 NAVER Cloud 2021
Kubernetes Component - Service
• Service의 Cluster IP를 통해 유동적으로 생성되고 사라지는 Pod에 접근하기 위한 방법으로 사용
• 여러 Pod를 묶어 Healthy한 Pod로 Traffic 라우팅하는 로드 밸런싱 기능 제공
• 클러스터의 Service CIDR 중에서 지정된 IP로 생성 가능
• ClusterIP / NodePort / LoadBalancer 타입 제공
• 기본 옵션은 클러스터 내부에서만 사용할 수 있는 Cluster IP
Pod1
10.1.0.1
Pod1
10.1.0.2
Service
172.21.10.1
External
Node1 Node2
Service
ClusterIP NodePort Load Balancer
Cluster 내 접근
가능
8080 8080
9000
30000 30000
Load Balancer
Pod Pod Node1 Node2
Service
30000 30000
Pod Pod
External
36. 36 NAVER Cloud 2021
네이버 클라우드 플랫폼 Kubernetes services
Kubelet Kube-proxy
Worker Node
Container
Container Container
Container
Pod
Pod
API Server
Scheduler
Controller-Manager
Replication
Controller
Endpoint
Controller
Node
Controller
Service
Controller
etcd
Kubernetes Master (Control Plane)
Kubelet Kube-proxy
Worker Node
Container
Container Container
Container
Pod
Pod
Kubectl
Docker
Registry
Monitoring
External
Connection
CLI / UI
Admin
Plugin Network (Flannel , Calico ..)
네이버 클라우드 플랫폼 관리 영역
37. 37 NAVER Cloud 2021
Demo
1. 네이버 클라우드 플랫폼 쿠버네티스 서비스 생성
2. 쿠버네티스 접속
3. Deployment를 통한 pod 생성