https://cncg-kr.net/ 에서 발표한 내용입니다.
IT 서비스를 구성하는데에는 다양한 자원들(Baremetal server, Virtual machine, network switch, database, 등)이 필요합니다. 이런 자원들은 각각의 관리자등을 통해서 일반적으로 각기 다른 방법들로 관리됩니다. 다만 IaaS, PaaS와 같은 Cloud방법들이 제공되면서 보다 통합된 환경으로 이런 자원들을 관리 하게 되었으나 아직까지도 일반적으로는 이런자원들을은 각기 관리되어 불편함과 문제가 수반 됩니다. 그래서 저희는 이런 다양한 자원과 방법들을 kubernetes로 보다 선언적이며 통합적인 방법으로 만들어서 자동화를 하였고 이 세션에서는 이 내용을 소개하며 어떻게 하면 이런방법들로 접근 할 수 있을지 설명하고 이를 통해 kubernetes 에 더 많은 가능성들에 대해 알아보고자 합니다.
이제 컨테이너는 IT 산업 전반에서 빼놓을 수 없는 구성요소로 자리 잡고 있습니다. 이런 컨테이너는 일반적으로 가상화 기술로 소개가 되어 virtual machine과 비교되고 있습니다. 하지만 이런 접근 방법들이 컨테이너를 올바르게 이해하도록 하는데 방해가 될 수도 있다고 생각합니다.
이 세션에서는 컨테이너에 대해서 여러가지 다양한 접근 방법들과 기능들을 살펴보면서 컨테이너에 대해 다시금 생각 해볼 수 있는 시간을 갖고자 합니다. 또한 이를 통해 어떤식으로 실제 production 환경들에서 사용되어질 수 있을지 그리고 이런 모습들로 부터 향후 컨테이너의 발전방향을 이야기 해보려고 합니다.
이제 컨테이너는 IT 산업 전반에서 빼놓을 수 없는 구성요소로 자리 잡고 있습니다. 이런 컨테이너는 일반적으로 가상화 기술로 소개가 되어 virtual machine과 비교되고 있습니다. 하지만 이런 접근 방법들이 컨테이너를 올바르게 이해하도록 하는데 방해가 될 수도 있다고 생각합니다.
이 세션에서는 컨테이너에 대해서 여러가지 다양한 접근 방법들과 기능들을 살펴보면서 컨테이너에 대해 다시금 생각 해볼 수 있는 시간을 갖고자 합니다. 또한 이를 통해 어떤식으로 실제 production 환경들에서 사용되어질 수 있을지 그리고 이런 모습들로 부터 향후 컨테이너의 발전방향을 이야기 해보려고 합니다.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
01 Docker란 무엇이며, 왜 필요한가?
02 Docker의 핵심 개념과 용어
03 Do(ckerize) it yourself
Docker란?
애플리케이션을 개발(developing)하고, 배포(shipping)하고, 실행(running)하기 위한 Open Platform
OS-level Virtualization(Linux Container)를 제공하기 위한 구현 제품.
애플리케이션과 인프라스트럭처의 의존관계를 분리할 수 있는 방법
가상머신(Virtual Machine)의 단점을 극복할 수 있는 리눅스 컨테이너 기술의 구현
Docker Client : 명령어를 통해 Docker Daemon에 API를 호출하여 Docker Image와 Container를 관리할 수 있는 프로그램
Docker Daemon : Docker API 요청을 수신하여 Docker Object(Image, Container, Network, Volue 등)를 관리할 수 있는 프로세스
Docker Registry : Docker Image를 저장하고 관리하는 공간. Public Registry(ex. Docker Hub)와 Private Registry가 있음.
Dockerfile : Docker Image를 빌드하기 위한 정보 및 명령어가 작성된 파일 (Docker Image를 생성하는 방법 중 하나)
Docker Image : Dockerfile, Docker Registry, 또는 다른 Docker Image로부터 생성된 컨테이너 생성을 위한 Read-only Template
Docker Container : Docker Image 위에서 실행된 특수한 형태의 격리된 프로세스
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
01 Docker란 무엇이며, 왜 필요한가?
02 Docker의 핵심 개념과 용어
03 Do(ckerize) it yourself
Docker란?
애플리케이션을 개발(developing)하고, 배포(shipping)하고, 실행(running)하기 위한 Open Platform
OS-level Virtualization(Linux Container)를 제공하기 위한 구현 제품.
애플리케이션과 인프라스트럭처의 의존관계를 분리할 수 있는 방법
가상머신(Virtual Machine)의 단점을 극복할 수 있는 리눅스 컨테이너 기술의 구현
Docker Client : 명령어를 통해 Docker Daemon에 API를 호출하여 Docker Image와 Container를 관리할 수 있는 프로그램
Docker Daemon : Docker API 요청을 수신하여 Docker Object(Image, Container, Network, Volue 등)를 관리할 수 있는 프로세스
Docker Registry : Docker Image를 저장하고 관리하는 공간. Public Registry(ex. Docker Hub)와 Private Registry가 있음.
Dockerfile : Docker Image를 빌드하기 위한 정보 및 명령어가 작성된 파일 (Docker Image를 생성하는 방법 중 하나)
Docker Image : Dockerfile, Docker Registry, 또는 다른 Docker Image로부터 생성된 컨테이너 생성을 위한 Read-only Template
Docker Container : Docker Image 위에서 실행된 특수한 형태의 격리된 프로세스
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ian Choi
아래 행사에서 키노트 이후 두 번째 세션에서 발표했던 내용입니다.
Java Spring Boot 앱을 Terraform을 사용하여 Azure Kubernetes Service (AKS)에 배포하는 방법을 GitHub Codespaces 및 Copilot과 함께 데모를 진행하였습니다.
실습 내용은 아래 링크에서 확인 가능합니다:
https://github.com/Azure-Samples/gh-codespaces-copilot-in-a-day-ko/blob/main/README.md#%ED%80%B5%EC%8A%A4%ED%83%80%ED%8A%B8-2--%EC%95%A0%EC%A0%80-terraform-%EC%9D%B4%EC%9A%A9
[행사 정보]
행사명: Microsoft X GitHub Roadshow 2023
시간: 2023년 5월 15일 월요일 오후 1:00~5:30 (GMT+09:00)
장소: Seoul, Seoul, Korea
[Agenda]
01:00 PM - 01:20 PM: AI를 활용한 개발 생산성 향상
01:20 PM - 02:10 PM: Azure OpenAI로 나만의 봇 🤖 만들기! (feat. Spring Apps)
02:10 PM - 03:00 PM: Ship it! ⛴️ AKS에 스프링 앱 배포하기
03:00 PM - 03:20 PM: 쉬는 시간
03:20 PM - 04:10 PM: 파워플랫폼💪 Low-code/No-code로 CI/CD 접근하기
04:10 PM - 05:20 PM: 나를 찾아라 집사! 🔍 잃어버린 반려동물 신고하는 웹 앱 개발하기
05:20 PM - 05:30 PM: 마무리
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon Web Services Korea
Amazon Elastic Kubernetes Service (Amazon EKS)를 통하여 오픈소스 컨테이너 오케이스트레이션 도구인 Kubernetes를 신규 도입하고자 하는 고객들이 폭발적으로 늘어나고 있습니다. AWS Cloud Development Kit (AWS CDK) 그리고 CDK8s 를 활용하여 개발자에게 친숙한 프로그래밍 언어로 Amazon EKS를 정의하고 Kubernetes 어플리케이션을 정의하는 데에 활용하는 방법을 소개하여, 새롭게 Amazon EKS를 사용해보고자 하는 고객들이 도입을 가속화할 수 있는 방법을 제시합니다.
[Agenda]
*토크쇼 주제: Cloud Native를 위한 컨테이너 플랫폼 구현과 활용 이야기
1. 시장 및 기술동향 소개 & Container & Kubernetes 소개
2. Red Hat OpenShift를 왜 써야 할까요?
3. OpenShift Infra 구성 방안은 어떻게 되나요?
4. OpenShift와 Kubernetes의 주요 차이점은 무엇일까요?
5. 완전한 오픈소스 기반 OpenShift로 PaaS를 빠르게 구축이 가능 하나요?
6.컨테이너플랫폼의 운영을 효율적으로 하기위한 표준화에는 어떤 것이 필요할까요?
7. Red Hat OpenShift를 이용하여 기존의 시스템을 마이그레이션 하는 방법은 무엇인가요?
8. 개발자와 운영자가 일을 수월하게 할 수 있도록 도움을 준다고 하는데 어떠한 부분인가요?
9. Red Hat OpenShift 구축 성공 사례가 있나요?
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting
최근 금융권이나 공공기관에서는 차세대 프로젝트에 PaaS 기반 시스템을 구축하고 그 위에 마이크로서비스아키텍처(MSA)를 구현하기 위해 많은 투자를 하고 있는데요, 많은 기업들이 오픈소스 기반의 인프라를 고려할 때 기술지원이나 버전 업그레이드 등에 대한 애로사항을 겪게 됩니다. 이런 문제에 대한 해결 방안 중 하나가 바로 커뮤니티 기반의 오픈소스 재단을 활용하는 것인데요!
본 자료에서 커뮤니티 오픈소스 기반 인프라 구축의 장점과 실제 사례에 대해 확인해 보실 수 있습니다.
NexClipper is an open source software to monitor and manage performance for cloud native computing - Docker and Kubernetes. NexClipper features the following capabilities:
Fullstack dashboard (Kubernetes and Infrastructure)
Container Cluster (Kuberentes cluster, nodes and worklodas)
Infrastruture Monitoring (Docker Container, Host, Resource)
Incidents Management (Rule set and alert manager) (#30)
Rest API service (Soon)
Dashboard Enhancement to replace k8s dashboard (Soon)
Dashboard Enhancement for customizing (Plan)
Global view and multi tenancy (Plan)
Prometheus Integration (Plan)
Workload management and deployment (Plan)
Resource analytics and forecasting (Plan)
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
NetApp AI Control Plane for Kubernetes and Kubeflow
NetApp AI Data Control Plane for Kubernetes and Kubeflow
NetApp Trident and Python REST API for Kubernetes and Kubeflow
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)어형 이
When using Kubernetes, users face a variety of problems. The most diverse of these problems occurs in pods. So users need to know how to debug pods.
Of course, the start of debugging a pod is taking a look at it's status and logs and events. But, in most case, this is not enough. So the users want to get the shell from a pod and test it by reproducing the same situation as the problem. But there are pods that are impossible to get the shell such as scratch image.
So this session will introduce various techniques for debugging pods with minimal or no modification workloads.
In particular, the following cases will be explained.
* debugging docker, containerd pod
* debugging pod using host informations, tools
* debugging pod in crashloopback status
* debugging pod based scratch image
* debugging readonly disk pods
11. 대부분의 kubernetes에 올라가는 application들
applications
bespoke
application
common
off-the-shelf
application
Black
Box
White
Box
12. Bespoke application
vs Common off-the-shelf application
● Common off-the-shelf application
기성품 어플리케이션
stateful 한 어플리케이션이 많음
infrastructure systems
(e.g. databases, key-value stores, caches,
messaging systems, …)
● Bespoke application
직접 제작한 어플리케이션
stateless 한 어플리케이션이 많음
13. Bespoke application
vs Common off-the-shelf application (cont.)
● Common off-the-shelf application
기성품 어플리케이션
stateful 한 어플리케이션이 많음
infrastructure systems
(e.g. databases, key-value stores, caches,
messaging systems, …)
이미 존재하고 있는 무언가의 방법들을
kubernetes에 올리는 것이라 kubernetes-
native 화 하기 어려움
● Bespoke application
직접 제작한 어플리케이션
stateless 한 어플리케이션이 많음
직접 개발 하는 코드이기 때문에
kubernetes-native 화 하기 쉬움
14. Bespoke application
vs Common off-the-shelf application (cont.)
● Common off-the-shelf application
기성품 어플리케이션
stateful 한 어플리케이션이 많음
infrastructure systems
(e.g. databases, key-value stores, caches,
messaging systems, …)
이미 존재하고 있는 무언가의 방법들을
kubernetes에 올리는 것이라 kubernetes-
native 화 하기 어려움
● Bespoke application
직접 제작한 어플리케이션
stateless 한 어플리케이션이 많음
직접 개발 하는 코드이기 때문에
kubernetes-native 화 하기 쉬움
그래서 이를 위한
🤖 operator 가 필요
대부분의
이미 존재하는 자원
들
16. Operator pattern
오퍼레이터(Operator)는 사용자 정의 리소스를 사용하여 애플리케이션 및 해당 컴
포넌트를 관리하는 쿠버네티스의 소프트웨어 익스텐션이다. 오퍼레이터는 쿠버네
티스 원칙, 특히 컨트롤 루프를 따른다.
https://kubernetes.io/ko/docs/concepts/extend-kubernetes/operator/
17. Operator pattern (cont.)
오퍼레이터 패턴은 서비스 또는 서비스 셋을 관리하는 운영자의 주요 목표를 포착
하는 것을 목표로 한다. 특정 애플리케이션 및 서비스를 돌보는 운영자는 시스템의
작동 방식, 배포 방법 및 문제가 있는 경우 대처 방법에 대해 깊이 알고 있다.
쿠버네티스에서 워크로드를 실행하는 사람들은 종종 반복 가능한 작업을 처리하기
위해 자동화를 사용하는 것을 좋아한다. 오퍼레이터 패턴은 쿠버네티스 자체가 제
공하는 것 이상의 작업을 자동화하기 위해 코드를 작성하는 방법을 포착한다.
https://kubernetes.io/docs/concepts/extend-kubernetes/operator/#motivation
19. Control loops (cont.)
observe
diff
act
Current state를 정확하게 파악
Current state와 Desire state의
차이를 비교
Current state와 Desire state로
변화시키기 위한 행동
Modified from https://docs.google.com/presentation/d/1oPZ4rznkBe86O4rPwD2CWgqgMuaSXguIBHIE7Y0TKVc
20. Level trigger vs edge trigger
0
1
0
1
Level trigger
Edge trigger
상태를 주기적으로 측정해서
특정 상태일때 알림
상태가 변화할때
상태를 알림
21. Level trigger vs edge trigger (cont.)
0
1
0
1
Level trigger
Edge trigger
상태를 주기적으로 측정해서
특정 상태일때 알림
상태가 변화할때
상태를 알림
23. 어떻게 모든것을 kubernetes 화 할 수 있는가?
Q1) 모든 리소스를 kubernetes로 관리한다면 그 kubernetes는 무엇으로 관리하는
가?
Q2) Cluster-api가 실행되는 management kubernetes cluster는 Cluster-api로 관리
불가능하지 않는가?
Q3) 그렇다면 어떠한 kubernetes 클러스터들로 DC의 자원들을 관리하게 되는가?
Q4) kubernetes 만으로 다양한 IT resource를 다 지원할 수 있는가?
Q5) kubernetes로 하드웨어들을 관리할 수 있는가?
24. Q1) 모든 리소스를 kubernetes로 관리한
다면 그 kubernetes는 무엇으로 관리하는
가?
36. Who watches Watchmen? (cont.)
serversmanagement
servers
for
servers
management
servers
for
management
servers
for
servers
management
servers
for
management
servers
for
management
servers
...
...
managemanagemanage
50. Kubernetes is the new kernel. We can refer
to it as a “cluster kernel” versus the typical
operating system kernel.
This means a lot of great things for users
trying to deploy applications.
https://blog.jessfraz.com/post/hard-multi-tenancy-in-kubernetes/
69. Network controller control physical switches
Ring0
kubernetes cluster
network
controller
pod
network
controller
pod
Spine Spine
Leaf Leaf Service Leaf
Compute
Compute
Compute
Compute
Compute
Compute
FW
LB
ETC..
Spine Spine
Leaf Leaf Service Leaf
Compute
Compute
Compute
Compute
Compute
Compute
FW
LB
ETC..
Spine Spine
Leaf Leaf Service Leaf
Compute
Compute
Compute
Compute
Compute
Compute
FW
LB
ETC..
Openstack region #1
Spine Spine
Leaf Leaf Service Leaf
Compute
Compute
Compute
Compute
Compute
Compute
FW
LB
ETC..
Openstack region #2
Openstack region #NOpenstack region #N
Openstack Controller
Clusters
kubernetes cluster
Neutron
api server
pod
Neutron
api server
pod
70. 네트워크 컨트롤러를 컨테이너 화 하면서 생긴 문제 (1)
네트워크 컨트롤러용 컨테이너 이미지
가 존재하나 VM형태로 구현되어 있어
서 Kubernetes 화 하는 작업들이 필요
했음
결국 구동하고 나면 스위치와 동일하게
동작했기에 `running-config`를 컨피그
맵으로 부팅 하면서 넣어줘서 pod 상태
관리를 함
71. 네트워크 컨트롤러를 컨테이너 화 하면서 생긴 문제 (2)
스위치 이미지는 VM기반으로 생성되있으며 인터페이스가 2개 이상이여야 작동함.
K8S에서는 동일한 네트워크에 인터페이스 한개를 더 추가해서 쓸 수 있도록
Multus를 사용
74. We will create Multiverse by kubernetes
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
CLOUD SERVICE
76. Come aboard!
[클라우드서비스] 언더클라우드 개발자 모집
https://kakaoenterprise.recruiter.co.kr/app/jobnotice/view?systemKindCode=MRS2&jobnoticeSn=22006
[클라우드서비스] 네트워크 개발자 모집
https://kakaoenterprise.recruiter.co.kr/app/jobnotice/view?systemKindCode=MRS2&jobnoticeSn=21985
그 외 클라우드 서비스 개발
https://kakaoenterprise.recruiter.co.kr/app/jobnotice/view?systemKindCode=MRS2&jobnoticeSn=36889