Talk about Kubernetes cluster on baremetal servers for serve internal services.
Sharing my experiences about setup and manage kubernetes cluster on premise.
At first, start with single master kubernetes cluster and enhanced by many opensource softwares.
Add more master nodes for increase server availability.
Use Rook, MetalLB, Ceph, mysql-operator and more opensource projects.
Talk about Kubernetes cluster on baremetal servers for serve internal services.
Sharing my experiences about setup and manage kubernetes cluster on premise.
At first, start with single master kubernetes cluster and enhanced by many opensource softwares.
Add more master nodes for increase server availability.
Use Rook, MetalLB, Ceph, mysql-operator and more opensource projects.
ARM과 AMD64의 차이에 대해 설명하고
오픈스택에 ARM을 도입하기 위한 커뮤니티 활동을 소개합니다.
1. ARM vs AMD64
2. CISC/RISC 차이
3. 커뮤니티에서 ARM위에 오픈스택을 올리기 위한 노력
- SIG (Special Interest Groups)
- PTG(Project Team Gathering)
도커부터 시작하여 네이버클라우드플랫폼 쿠버네티스 서비스 활용안까지 전 과정을 소개해 드립니다. | From Docker to Naver Cloud Platform Kubernetes Service, we will introduce you to the entire process.
도커부터 시작하여 쿠버네티스까지 각 서비스의 기능 및 구성요소에 대해 자세히 소개해 드립니다 | Learn more about the features and components of each service, starting with a Docker and ending with Kubernetes.
네이버클라우드플랫폼의 인프라를 편히 관리할 수 있는 네이버클라우드플랫폼의 CLI의 구조와 사용법에 대해서 간략히 소개합니다. | A brief introduction to the structure and usage of the CLI of the Naver Cloud Platform, which enables easy management of the infrastructure of the Naver Cloud Platform.
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축Jung Hyun Nam
이 세션에서는 Windows Kubernetes 클러스터를 구축하는 방법에 대해 자세히 설명하고 Windows 노드와 Linux 노드를 동시에 구성 할 수있는 하이브리드 Kubernetes 클러스터와 함께 Polyglot DevOps 환경을 활용하는 예제를 제공합니다.
Windows 기반 노드를 Linux 기반 노드로 구성된 기존 Kubernetes 클러스터에 통합하여 복잡한 응용 프로그램을 호스팅하는 방법을 배울 수 있습니다.
ARM과 AMD64의 차이에 대해 설명하고
오픈스택에 ARM을 도입하기 위한 커뮤니티 활동을 소개합니다.
1. ARM vs AMD64
2. CISC/RISC 차이
3. 커뮤니티에서 ARM위에 오픈스택을 올리기 위한 노력
- SIG (Special Interest Groups)
- PTG(Project Team Gathering)
도커부터 시작하여 네이버클라우드플랫폼 쿠버네티스 서비스 활용안까지 전 과정을 소개해 드립니다. | From Docker to Naver Cloud Platform Kubernetes Service, we will introduce you to the entire process.
도커부터 시작하여 쿠버네티스까지 각 서비스의 기능 및 구성요소에 대해 자세히 소개해 드립니다 | Learn more about the features and components of each service, starting with a Docker and ending with Kubernetes.
네이버클라우드플랫폼의 인프라를 편히 관리할 수 있는 네이버클라우드플랫폼의 CLI의 구조와 사용법에 대해서 간략히 소개합니다. | A brief introduction to the structure and usage of the CLI of the Naver Cloud Platform, which enables easy management of the infrastructure of the Naver Cloud Platform.
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축Jung Hyun Nam
이 세션에서는 Windows Kubernetes 클러스터를 구축하는 방법에 대해 자세히 설명하고 Windows 노드와 Linux 노드를 동시에 구성 할 수있는 하이브리드 Kubernetes 클러스터와 함께 Polyglot DevOps 환경을 활용하는 예제를 제공합니다.
Windows 기반 노드를 Linux 기반 노드로 구성된 기존 Kubernetes 클러스터에 통합하여 복잡한 응용 프로그램을 호스팅하는 방법을 배울 수 있습니다.
Windows Kubernetes Bootstrapping and OperationsJung Hyun Nam
이 슬라이드는 Kubernetes Korea User Group 밋업 프레젠테이션 (2019년 7월 30일)에 발표한 내용입니다.
This slide was released in the Kubernetes Korea User Group MAKEUP PRESENTATION (July 30, 2019).
발표영상 다시보기: https://youtu.be/BZhbRQFwkMQ
AWS의 기본 서비스 중 가상 네트워크에서 AWS 리소스를 구동할 수 있는 클라우드 상의 논리적으로 격리된 공간인 VPC와 애플리케이션 트래픽을 로드 발란싱 할 수 있는 ELB, OnPremise와 연결할 수 있는 Direct Connect 및 VPN에 대해 이해할 수 있습니다.
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting
최근 금융권이나 공공기관에서는 차세대 프로젝트에 PaaS 기반 시스템을 구축하고 그 위에 마이크로서비스아키텍처(MSA)를 구현하기 위해 많은 투자를 하고 있는데요, 많은 기업들이 오픈소스 기반의 인프라를 고려할 때 기술지원이나 버전 업그레이드 등에 대한 애로사항을 겪게 됩니다. 이런 문제에 대한 해결 방안 중 하나가 바로 커뮤니티 기반의 오픈소스 재단을 활용하는 것인데요!
본 자료에서 커뮤니티 오픈소스 기반 인프라 구축의 장점과 실제 사례에 대해 확인해 보실 수 있습니다.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Cloud market trends, what is kubernets? (Korean)DonghwanKim85
As of early last year, Kubernetis has become the mainstream cloud market.
In addition, major cloud vendors such as Amazon, Google, Azure, and others have all prepared this seminar because of the competitive support that IBM and Cisco support for the container management environment and because of the increasing standard of Cubernetis.
발표자료 다시보기: https://youtu.be/Xj2zTXgZ92I
본 온라인 세미나는 AWS 네트워크의 기본인 VPC를 살펴보고 VPC의 기본 개념 및 구성방법과, VPC 내에서의 보안 설정 옵션에 대해 알아봅니다. 그리고 VPC 연결 옵션인 인터넷 연결, 다른 VPC연결, On-Premises 네트워크 연결 방법에 대해서 소개합니다.
2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
3. DEVSISTERS의 사례
리눅스 워크로드와 윈도 워크로드를 하나의 클러스터에서.
Kubernetes의 고가용성 전략을 Windows에서 그대로 사용
Windows 만의 장점인 고성능 I/O Completion Port 지원
기존의 Legacy Application을 클러스터 환경으로 손쉽게 확장
4. DEVSISTERS의 사례 (Cont.)
하이브리드 K8S
클러스터 구축
• Windows와 Linux
Pod이 공존하며
Cross
Communication 전개
쿠키워즈 개발/QA
환경
• 게임 서버: 리눅스
• 운영 도구: 윈도
서버 1803
• 클러스터 구축:
KOPS + AWS
두 번의 PoC 수행
• 초기 – Windows
Server 2016 AMI +
Transparent Network
• 현재 – Windows
Server 1803 AMI + L2
Bridge + WINCNI
5. Windows Kubernetes
• 일반적인 Kubernetes와 다르지 않음
• Kubernetes의 고가용성 전략을 Windows에서 그대로 사용
• Windows 만의 장점인 고성능 I/O Completion Port 지원
• 기존의 Legacy Application을 클러스터 환경으로 손쉽게 확장
6. Kubernetes Windows SIG
• https://github.com/kubernetes/community/tree/master/sig-windows
• Windows 버전의 Kubernetes에 대한 활동을 전문으로 함
• 2018년 6월 현재 두 명의 Chair가 활동 중. (@michmike, @patriklang)
7. Windows Kubernetes History
Kubernetes 1.5
• Alpha State
• Transparent Network
• Windows Server 2016
• 몇 가지 도드라지는 제약 사항
(Outbound 불가)
Kubernetes 1.9
• Beta State
• L2 Bridge
• Windows Container Network
Interface
• Windows Server 1709 이상 필요
(Azure, AWS에서 사용 가능)
8. Road to Production
NT Service로 등록 지원
Hyper-V Isolation 컨테이너 지원
Flannel, Calico 등의 네트워크 플러그인 지원
1.10
SMB/CIFS 볼륨 플러그인 지원
Dashboard를 통한 명령어 실행 문제 수정
1.11
E2E 테스트를 통한 품질 보장
Windows Server 2019와 호환될 것으로 예상
1.12
9. Windows Kubernetes 설치 과정
Windows Server 1803 VM
또는 베어메탈 준비
1
Node를 시작하기 전에
kubelet으로 노드를 먼저
등록하여 Pod CIDR 확보
2
HNS에 새로운 L2 Bridge
HNS Network 생성, Pod
Gateway 어댑터 생성 및
부착
3
Kubelet, Kubeproxy 설정
후 기동
4
Pod 간 수동 Routing Table
등록
5
10. Windows 컨테이너의 버전 선택
• 커널 구조의 차이로 도입
• Process 방식, Hyper-V 방식
• Windows 10에서 Windows
Container를 실행 시
• 클라이언트 커널 ≠ 서버 커널
• Hyper-V Isolation 필요
• 버전 간 호환성에 대하여
• https://bit.ly/2JSTo5A
Host >
Container
V
Win
Server
2016
Win 10
Creators
Update
1703
Win
Server
1709
Win 10
Fall
Creators
Update
1709
Win
Server
1803
Win 10
2018
April
Update
1803
Win
Server
2016
Process
Hyper-V
Hyper-V Hyper-V Hyper-V Hyper-V Hyper-V
Win
Server
1709
사용
불가
사용
불가
Process
Hyper-V
Hyper-V Hyper-V Hyper-V
Win
Server
1803
사용
불가
사용
불가
사용
불가
사용
불가
Process
Hyper-V
Hyper-V
11. Windows
Kubernetes의
핵심
• HCS와 HNS가 핵심
• Kubernetes 입장에서는
Docker REST API와 통신
• Docker는 HCS와 HNS와 커
뮤니케이션 진행
• Windows의 경우 추후 CRI
(Container Runtime
Interface)가 도입될 예정
12. Host Compute Service
커널 수준의 가상화
• 컨테이너 내부의 OS 버전과 호스트
OS 버전이 반드시 일치해야 함
• Windows 10 클라이언트 PC에서
서버 커널은 이 방식으로 호스팅이
불가하며, 오로지 Hyper-V
Isolation만 지원
Hyper-V Isolation
• 가장 많이 오해를 받는 Windows
Docker 확장 기능
• 전체가 격리된 VM은 아니기
때문에 호스트 OS 버전보다 높은
버전의 컨테이너 OS는 실행 불가
• https://bit.ly/2JSTo5A
13. Host Compute Service (Cont.)
https://blogs.technet.microsoft.com/virtualization/2017/01/27/introducing-the-host-compute-service-hcs/
14. Host Compute Service (Cont.)
• Linux 커널의 일부 컴포넌트에 대응되는 기능을 하나의 컴포넌트로 통합 제공
• Control Group, Namespace
• Layer Capabilities: Union File System + Registry
• Windows Kubernetes에 공헌할 목적으로 Microsoft가 직접 Go Lang으로 HCS
Shim도 제공함
• https://github.com/Microsoft/hcsshim
• .NET Framework 버전의 HCS 제어 프로그램 소스 코드도 제공함
• https://github.com/Microsoft/dotnet-computevirtualization
15. Host Network Service
• 각종 네트워크 설정 제어 가능
• https://github.com/Microsoft/SDN
• /Kubernetes/Windows/HNS.psm1
• VmCompute.dll의 HNSCall 메서드 사용
• REST API 방식으로 호출 (Method + Resource Path + JSON Payload)
• HNS를 이용하여 주로 제어하는 부분
• 네트워크: 내부 네트워크
• 엔드포인트: 컨테이너들이 사용하는 가상 어댑터
• 정책: 다른 노드 (리눅스, 윈도)에서 실행되는 Pod의 네트워크 연결 정보
16. Host Network Service (Cont.)
• 읽어보시면 도움되는 글
• https://bit.ly/2JX3oKY
• 특히 Part 2, Part 5, Part 6이 HNS와 K8S Networking의 이해의 기본이 됩니다.
• Compartment
• Windows 내부의 VLAN과 유사한 개념
• Kubernetes에서는 Service에 대응
• NBL: Net Buffer List
• WNV 환경 하에서의 패킷으로 이해하면 편리함
18. 네트워킹 구성
• Windows Kubernetes의 네트워
크 모델을 크게 두 가지입니다.
• Transparent NAT
• WinCNI + L2Bridge
• Transparent
• 가상 NAT 생성
• 별도의 Forwarder
Adapter 생성 후 Route 테
이블 관리
• 컨테이너 내부의 Outbou
nd 연결에 제약이 있음
• L2Bridge
• Transparent와 같음
• WinCNI에서 기본으로 사
용하는 네트워킹 방식
19. 네트워킹 구성 (Cont.)
• Microsoft SDN Git Repo의 Kubernetes 코드 샘플에 HNS 네트워크 제어 모듈이 들
어있음
• HNS 네트워크 제어 모듈을 이용하여 새 L2Bridge HNS 네트워크를 생성
• L2Bridge HNS 네트워크에 현재 Worker Node를 연결하기 위하여 새 HNS
Endpoint를 생성하고 만든 네트워크에 Attach
• CNI 플러그인 설정 파일 수정
• Kubelet, Kubeproxy 시작
• 수동 라우팅 정보 추가
24. Windows 컨테이너 사용 시 주의 사항
• Control Plane 서비스를 제공할 Master Node는 반드시 Linux
• 그 외에는 상황에 따라 Linux Only, Windows Only, Hybrid 구축
• 컨테이너 버전과 호스트 OS 버전과의 상관 관계
• Windows Node의 OS는 1803 권장
• Azure, AWS 모두 사용 가능
• LTSB는 Windows Server 2019를 기다려 주세요.
• 2016도 사용은 가능하나,
• 제약이 많고 성능이 떨어집니다.
25. Linux Container on Windows (LCOW)
• 아직 개발 중인 기술
• Hyper-V Isolation을 응용하여 부팅 대상을 Windows 커널이 아닌 Linux로 함
• 중첩 가상화를 쓸 수 있는 환경이 필요
• Azure: 3세대 VM 이상
• AWS: i3.baremetal 혹은 유사 인스턴스
• 기타 베어메탈 제공 클라우드 전체
• 이 기술이 제공되면 Windows Node에 대한 Taint를 뗄 수 있음
26. 한국 Azure 사용자 그룹
• 국내에서 가장 많은 Azure 관련 이벤트, 교육을 진행하는 커뮤니티입니다.
• 매달 Saturday Azure Live (이하 Azure Live) Hands-on Lab 행사를 진행합니다.
• Hands-on-Lab 실습을 위한 계정을 무료로 제공합니다.
• https://www.fb.com/groups/krazure
27. 마무리
Windows Server 2019가 출시될 때까지는
아직 많이 개선될 여지가 남아있습니다.
Windows 기반의 애플리케이션
개발자들에게 새로운 기회가 될 수
있습니다.
더 살펴보실 키워드: Nano Server,
OneCore API, .NET Core, Docker for
Windows, Windows Container