Contenu connexe
Similaire à AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
Similaire à AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018 (20)
Plus de Amazon Web Services Korea
Plus de Amazon Web Services Korea (20)
AWS 기반 Kubernetes 정복하기::정영준:: AWS Summit Seoul 2018
- 1. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
정영준
솔루션즈 아키텍트 / Amazon Web Services
AWS 기반 Kubernetes
정복하기
- 2. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
본 강연에서는…
• AWS 에서의 Docker 컨테이너 환경
• AWS Elastic Kubernetes Service
• EKS 의 네트워크 옵션
• EKS 의 스토리지 옵션
• EKS 과 함께 사용 가능한 오픈소스 프로젝트
- 3. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
목차
• AWS 컨테이너 환경
• AWS 어플리케이션 배포 환경
• 컨테이너 오케스트레이션 도구
• 컨테이너 배포 옵션
• EKS 소개
• 컨테이너 오케스트레이션 툴 사용시 어려운 점
- 4. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AWS VPC 네트워킹
모드
고급 작업 배치
AWS services 와
긴밀한 통합
ECS CLI…{ }
글로벌 인프라
강력한 스케줄 엔진
자동 확장
클라우드와치 매트릭
로드밸런서
AWS 컨테이너 환경
- 5. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AMI
Runtime
Engine
Code Dependenci
es
EB-CLI or
Console AWS Elastic
Beanstalk
Amazon ECS
Logging
Alerting
AWS 컨테이너 환경 – Elastic Beanstalk
- 6. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
소스 빌드 테스트 프로덕션
AWS CodeCommit AWS CodeBuild 타사 도구 Amazon Elastic
Container
Service
AWS CodePipeline
AWS 어플리케이션 배포 환경
- 7. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
소스 빌드 테스트 프로덕션
AWS CodeCommit AWS CodeBuild 타사 도구
AWS CodePipeline
AWS
CloudFormation
AWS 인프라 배포 환경
- 8. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
scheduler cluster state service
AWS 컨테이너 오케스트레이션 도구
Amazon Elastic
Container
Service
- 10. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
EKS 소개
- 11. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
E L A S T I C CO N TA I N E R S E R V I C E F O R K U B E R N E T E S
(EKS)
- 12. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
- 13. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
목표 1
EKS는 엔터프라이즈 기업이
프로덕션 등급 작업 부하를
실행하는 플랫폼입니다.
- 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
목표 2
EKS는 네이티브 및 업스트림
Kubernetes 경험을 제공합니다.
- 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
목표 3
EKS 고객은 다른 AWS 서비스와
간편하게 연동하여 사용 할 수 있습니다.
- 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
목표 4
EKS 팀은 Kubernetes 프로젝트에
적극적으로 기여합니다.
- 17. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
가용 영역 1
Etcd
마스터
Etcd
마스터
가용 영역 2 가용 영역 3
Etcd
마스터
- 18. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
가용 영역 1
마스터 마스터
가용 영역 2 가용 영역 3
마스터
워커 워커 워커
고객 계정
AWS 매니지드
- 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
mycluster.eks.amazonaws.com
EKS 워커
Kubectl
Amazon EKS
AZ 1 AZ 2 AZ 3
Your AWS account
- 20. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
EKS 를 쓰면
모든 고민이 해결 될까요?
- 21. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
0%
10%
20%
30%
40%
50%
60% 16년말 17년중반 17년후반
네트워크
컨테이너 환경 구축의 어려운점
스토리지 보안 컴플렉서티 로깅 오케스트레
이션
모니터링
https://www.cncf.io/blog/2017/12/06/cloud-native-technologies-scaling-production-applications/
- 22. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
네트워크
- 23. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Nginx Pod
Rails Pod
Veth IP: 10.0.0.1
Veth IP: 10.0.0.2
Nginx Pod
Rails Pod
Veth IP: 10.0.0.20
Veth IP: 10.0.0.22
VPC Subnet – 10.0.0.0/24
Instance 1 Instance 2
Security Group 설정을
어떻게?
방화벽 설정을 어떻게?
컨테이너/포드/서비스
단위 라우팅은 어떻게?
컨테이너가 제거되면 연결에
사용된 설정들을 어떻게?
- 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CNI 플러그인을 사용한
네이티브 VPC 네트워킹
포드는 VPC에서와 같이
포드 내부의 동일한 VPC
주소를 할당
간단하고 안전한 네트워킹 Github 에 공개 되어있는
오픈소스
…{ }
컨테이너 네트워크 인터페이스
- 25. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Nginx Pod
Rails Pod
ENI
Secondary IPs:
10.0.0.1
10.0.0.2
Veth IP:
10.0.0.1
Veth IP:
10.0.0.2
Nginx Pod
Rails Pod
ENI
Veth IP:
10.0.0.20
Veth IP:
10.0.0.22
Secondary IPs:
10.0.0.20
10.0.0.22
ec2.associateaddress()
VPC Subnet –
10.0.0.0/24
Instance 1 Instance 2
- 26. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Kubernetes Network
Policies는 네트워크 보안
규칙을 적용 가능
Calico는 네트워크 정책
API의 구현의 선두 주자
오픈 소스, 활발한 개발
(수백명의 기여자)
Tigera에서 제공되는
상용 기술 지원
- 27. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
스 테 이 지 분 리 사 용 자 단 위 분 리
세 밀 한 방 화 벽
설 정
컴 플 라 이 언 스
일반적으로 회사 내의 여러 팀에
각기 다른 네임 스페이스를
사용하지만 네트워크 정책에서
네임 스페이스 단위로 나누는
기능이 없으면, 조직 단위로
네트워크가 격리되지 않습니다.
마이크로 서비스 기반
애플리케이션에서 내부 서비스들에
의한 공격 포인트들 까지도 제한
가능
개발 / 테스트 / 운영 환경 등 PCI, HIPAA 와 같은 민감 데이터
전송을 위한 컴플라이언스도
인증됨
- 28. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
멀티 네트워크
- 29. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
워커 마스터
Kubernetes는 워커 노드와 마스터
노드가 같은 네트워크에 위치 하고
있다고 가정
API Access
Kubectl
Exec/Logs
EKS 네트워크 구성
- 30. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
워커 마스터
EKS 는 다중 네트워크와 어카운트를
연결 할 수 있도록 구성이 가능
API Access
Kubectl
Exec/Logs
Customer VPC EKS VPC
EKS 네트워크 구성 – 다중 VPC 연결
- 31. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
워커 마스터
Customer VPC EKS VPC
Network Load
Balancer
ENI
API Access
Kubectl
Exec/Logs
TLS
Static IPs
EKS 네트워크 구성 – 멀티 어카운트 연결
- 32. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
가용 영역 1
마스터 마스터
가용 영역 2 가용 영역 3
마스터
워커 워커 워커
Customer VPC
EKS VPC
ENI ENI ENI
EKS 네트워크 구성 – 멀티 AZ 연결
- 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EKS 워커 EKS 마스터
Kubelet
퍼블릭/프라이빗 키
생성
서버 인증키
설치
CSR 요청
인증기 변경
EKS 네트워크 구성 – 암호화 전송 using PKI, TLS
- 34. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
스토리지
- 35. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
/PATH1_1
/PATH1_2
인스턴스 1
/PATH1_1
/PATH1_2
인스턴스 2
인스턴스/컨테이너/포드
에서 데이터 공유 안됨
공유 볼륨의 적절한 권한
설정 및 일정한 성능
유지가 어려움
- 37. AWS 스토리지 서비스
데이터 이동
OnlineOffline
데이터 보안 / 관리
Amazon
EFS
Amazon
EBS
Amazon
S3
Amazon
Glacier
AWS KMS
AWS IAM
Amazon CloudWatch
AWS CloudTrail
AWS CloudFormation
AWS Lambda
Amazon Macie
Amazon QuickSight
AWS Snow Family
AWS Storage Gateways
AWS Direct Connect
Amazon EFS File Sync
Amazon S3 Transfer
Acceleration
Third-party
Applications
Amazon Kinesis
Firehose
- 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
컨테이너 스토리지 인터페이스
https://github.com/container-storage-interface/spe
C S I
CSI 플러그인을 사용한
네이티브 스토리지 서비스
연동 가능
컨테이너 생명 주기 혹은
서비스 범위와 일치하는
데이터 관리
간편하고 안전 Github 에 공개 되어있는
오픈소스
…{ }
- 39. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
보안
- 40. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Kubectl
워커
PrivateLink
Interface Amazon
EKS
- 41. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
고객 및 파트너 서비스를
위한 AWS PrivateLink
VPC, AWS 계정 및 온 프레미스 네트워크간에 내부
네트워크로 안전하게 서비스 공유
CN-NORTH-1을 제외한 모든 공개 AWS 지역에서 사용할 수 있습니다.
- 42. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
VPC 1
EKS VPC
- 43. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
- 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Heptio IAM 인증기
https://github.com/heptiolabs/kubernetes-aws-authenticator
AWS IAM 인증과 Kubernetes를
통합하는 오픈 소스 접근 방식
- 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kubectl
3) RBAC로 AWS ID 인증
K8s API
1) AWS ID 전달
2) AWS ID 확인
4) K8s 허용 / 거부 결정
AWS 인증
IAM 인증 지원 == 업스트림 K8s 1.10
IAM Authentication + Kubectl
- 46. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
로깅
- 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
무엇을 로깅 할 것 인가?
K8s 마스터
컨테이너 네트워크
Flow 로그
스토리지 Access 로그
및 사용량, 성능
어플리케이션 이벤트
로그 및 유저 로그
…{ }
- 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
마스터 접근 및 가시성 확보
Amazon
CloudWatch
AWS
CloudTrail
마스터
- 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
컨테이너 모니터링 – 힙스터 모델
EKS 마스터
워커 인스턴스
Kubelet
cAdvisor
Heapster
워커 인스턴스
cAdvisor
Kubelet
Kubectl
- 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
어플리케이션 모니터링 – 프로메테우스
EKS 마스터
워커 인스턴스
Kubectl
- 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
어플리케이션 모니터링 – CWL 도커 에이전트
워커 인스턴스
CWL
agent
/log
/long/
Amazon
CloudWatch
- 52. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
새로운 소식
- 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kubernetes 적합성 인증
- 54. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
서비스 디스커버리
53
Kubectl
서비스 및 인그레스 등록
서비스를 검색
- 55. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
결론
- 56. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
EKS 는
• 오픈소스 업스트림과 동일한 사용자 경험
• 매니지드 Kubernetes 서비스
• CNI,CSI 등을 통한 컨테이너 운영 효율 향상
• 기존 AWS 서비스들과 완벽한 통합
• 다양한 네트워크의 워커 노드들과 연동 가능
• 오픈소스 플러그인들을 그대로 사용가능
- 57. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AWS Summit 모바일 앱과 QR코드를
통해 강연 평가 및 설문 조사에 참여해
주시기 바랍니다.
내년 Summit을 만들 여러분의 소중한
의견 부탁 드립니다.
#AWSSummit 해시태그로 소셜 미디어에 여러분의 행사
소감을 올려주세요.
발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜 채널로
공유될 예정입니다.
여러분의 피드백을 기다립니다!
- 60. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
- 61. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
- 62. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
- 63. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.