Amazon Web Services
Amazon Web Services (AWS)의 셀프 관리형 Kubernetes
AWS에서 직접 운영하는 Kubernetes 클러스터에 Calico를 사용하는 방법을 다뤄요. kOps를 중심으로 Calico 네트워킹과 네트워크 정책을 함께 구성하는 절차를 안내해요. Amazon VPC CNI 조합이나 Kubespray 같은 대안도 함께 소개해요.
출처: 문서
본문
큰 그림
Amazon Web Services (AWS)의 셀프 관리형 Kubernetes 클러스터에서 Calico를 사용해요.
이런 점이 좋아요
(EKS 같은 관리형 Kubernetes 서비스 대신) 자신의 Kubernetes 클러스터를 직접 운영하면 Calico와 Kubernetes를 구성할 때 가장 큰 유연성을 얻어요. Calico는 유연한 네트워킹 기능과 "어디서든 동작하는" 보안 적용을 결합해서, 네이티브 Linux 커널 성능과 진정한 클라우드 네이티브 확장성을 갖춘 솔루션을 제공해요.
개념
Kubernetes Operations (kOps)는 클러스터 VM 프로비저닝과 Kubernetes 설치를 처리하는 클러스터 관리 도구예요. Kubernetes 네트워킹 프로바이더로 Calico를 사용하는 기능이 내장되어 있어요.
시작하기 전에...
- kubectl을 설치해요
- AWS CLI 도구를 설치해요
SECONDARY: Calico는 다양한 종류의 볼륨을 지원하기 위해 Kubernetes Container Storage Interface (CSI)를 사용해요. EBS 볼륨을 사용하는 AWS 클러스터에서 CSI가 올바르게 동작하는 데 필요한 드라이버는 Kubernetes 1.23을 실행하는 클러스터에는 더 이상 기본으로 없을 수 있어요. 사용 중인 설치 도구의 문서를 확인해서 필요한 CSI 드라이버가 설치되어 있는지 확인하세요.
이 페이지 아래에서 다루는 Kubernetes Operations (kOps)를 사용한다면, 클러스터에 필요한 구성이 있는지 관련 kOps 문서 링크를 통해 확인하세요.
방법
AWS에서 Kubernetes를 설치하고 관리하는 방법은 여러 가지가 있어요. 대부분에게 Kubernetes Operations (kOps)를 사용하는 것이 좋은 기본 선택이에요. Calico의 유연하고 강력한 네트워킹 기능을 모두 사용할 수 있기 때문이에요. 다만 자신의 환경에는 다른 옵션이 더 잘 맞을 수도 있어요.
Calico 네트워킹과 네트워크 정책을 위한 Kubernetes Operations
kOps로 Calico 네트워킹과 네트워크 정책을 갖춘 클러스터를 만들려면 다음을 따르세요.
-
워크스테이션에 kOps를 설치해요.
-
AWS용 환경을 준비해요.
-
반드시 S3 상태 저장소를 준비하고 그 이름을 내보내요.
export KOPS_STATE_STORE=s3://name-of-your-state-store-bucket -
kOps가 네트워킹에 Calico를 사용하도록 구성해요. 가장 쉬운 방법은 클러스터를 만들 때 kOps에
--networking calico를 전달하는 거예요. 예를 들면 다음과 같아요.kops create cluster \ --zones us-west-2a \ --networking calico \ name-of-your-cluster또는 클러스터 구성에
calico를 추가할 수도 있어요. kops edit cluster를 실행하고 다음 네트워킹 구성을 설정해요.networking: calico: {}
여러분이 얻게 되는 것의 세부 내용:
| Policy | IPAM | CNI | Overlay | Routing | Datastore |
|---|---|---|---|---|---|
| Calico | Calico | Calico | IPIP | BGP | etcd |
?
kOps 문서에 나열된 옵션으로 Calico 설치를 더 커스터마이징할 수 있어요.
다른 옵션과 도구
Amazon VPC CNI 플러그인
네트워킹과 네트워크 정책 모두에 Calico를 쓰는 대신, 네트워킹에는 Amazon의 VPC CNI 플러그인을, 네트워크 정책에는 Calico를 사용할 수 있어요. 이 방식의 장점은 파드가 워커 노드의 Elastic Network Interface에 연결된 IP 주소를 배정받는 거예요. IP는 VPC 네트워크 풀에서 오기 때문에 Kubernetes 클러스터 바깥의 리소스에 접근할 때 NAT이 필요 없어요.
kOps 클러스터 구성을 다음처럼 설정해요.
networking:
amazonvpc: {}
그다음 클러스터가 뜨고 준비된 다음에 네트워크 정책용으로만 Calico를 설치해요.
여러분이 얻게 되는 것의 세부 내용:
| Policy | IPAM | CNI | Overlay | Routing | Datastore |
|---|---|---|---|---|---|
| Calico | AWS | AWS | No | VPC Native | Kubernetes |
?
Kubespray
Kubespray는 Amazon Web Services를 포함한 여러 클라우드를 지원하면서 Kubernetes 클러스터를 프로비저닝하고 관리하는 도구예요. Calico가 기본 네트워킹 프로바이더이고, kube_network_plugin 변수를 calico로 설정할 수도 있어요. 자세한 내용은 Kubespray 문서를 참고하세요.
다음 단계
필요 사항
권장
더 알아보기 (Learn more)
kOps 조합은 정책·IPAM·CNI·오버레이·라우팅 전부를 Calico가 담당하는 가장 "Calico스러운" 구성이에요. VPC CNI 조합은 파드 IP가 VNet/VPC 네이티브라는 장점 대신 IPAM을 AWS가 가져가요. Kubernetes 1.23+ 환경이라면 CSI 드라이버 확인을 잊지 마세요.