Kubernetes 클러스터 거버넌스
거버넌스란 회사 표준 준수를 보장하기 위해 규칙을 적용하고 유효성을 검사하는 조직의 기능을 말합니다. 거버넌스는 조직이 위험을 완화하고 기업 표준 및 외부 규정을 준수하며 채택 또는 혁신에 대한 중단을 최소화하는 데 도움이 됩니다.
거버넌스에는 이니셔티브 계획, 전략적 우선 순위 설정, 애플리케이션 및 리소스 제어를 위한 메커니즘 및 프로세스 사용이 포함됩니다. 클라우드 환경의 Kubernetes 클러스터에서 거버넌스는 Kubernetes 클러스터와 해당 클러스터에서 실행되는 애플리케이션 전반에 걸쳐 정책을 구현하는 것을 의미합니다.
Kubernetes 거버넌스에는 클라우드 환경 및 클러스터 배포 인프라와 클러스터 자체 및 해당 애플리케이션이 모두 포함됩니다. 이 가이드에서는 Kubernetes 클러스터 내의 거버넌스에 중점을 둡니다. 이 문서에서는 Amazon EKS(Amazon Elastic Kubernetes Service) 및 AKS(Azure Kubernetes Service)가 Kubernetes 클러스터 거버넌스를 관리하는 방법을 설명하고 비교합니다.
참고 항목
이 문서는 Amazon EKS에 익숙한 전문가가 Azure Kubernetes Service(AKS)를 이해하는 데 도움이 되는 일련의 문서의 일부입니다.
Kubernetes 거버넌스 차원
세 가지 차원은 일관된 Kubernetes 거버넌스 전략을 정의합니다.
대상은 거버넌스 전략이 충족해야 하는 보안 및 규정 준수 정책 목표를 설명합니다. 예를 들어 대상은 Kubernetes 클러스터, 네임스페이스 또는 애플리케이션에 액세스할 수 있는 사용자 또는 클러스터에서 사용할 컨테이너 레지스트리 및 이미지를 지정합니다. 보안 운영 팀은 일반적으로 이러한 목표를 회사의 거버넌스 전략을 정의하는 첫 번째 단계로 설정합니다.
범위는 대상 정책이 적용되는 요소를 자세히 설명합니다. 범위는 Kubernetes에서 볼 수 있는 모든 구성 요소를 다루어야 합니다. 범위는 조직 단위(예: 부서, 팀 및 그룹) 또는 환경(예: 클라우드, 지역 또는 네임스페이스) 또는 둘 다일 수 있습니다.
정책 지시문은 Kubernetes 기능을 사용하여 지정된 범위에서 대상 규칙을 적용하여 거버넌스 정책을 적용합니다.
자세한 내용은 Kubernetes 거버넌스, 알아야 할 사항을 참조하세요.
EKS 및 AKS의 거버넌스
AWS(Amazon Web Services) 고객은 일반적으로 Kyverno, Gatekeeper 또는 기타 타사 솔루션을 사용하여 Amazon EKS 클러스터에 대한 거버넌스 전략을 정의하고 구현합니다. aws-eks-best-practices/policies GitHub 리포지토리에는 Kyverno 및 Gatekeeper에 대한 예제 정책 컬렉션이 포함되어 있습니다.
또한 Azure 고객은 Kyverno 또는 Gatekeeper를 사용할 수 있으며 Kubernetes용 Azure Policy 추가 기능를 사용하여 AKS 거버넌스 전략을 위해 Gatekeeper를 확장할 수 있습니다.
Gatekeeper
CNCF(Cloud Native Computing Foundation)는 Kubernetes 클러스터에서 정책을 시행하기 위해 오픈 소스 Kubernetes용 Gatekeeper 정책 컨트롤러를 후원합니다. Gatekeeper는 범용 정책 엔진인 OPA(Open Policy Agent)로 만든 정책을 시행하는 Kubernetes 허용 컨트롤러입니다.
OPA는 Rego라는 높은 수준의 선언적 언어를 사용하여 별도의 인스턴스 또는 다른 우선 순위에서 테넌트의 포드를 실행할 수 있는 정책을 만듭니다. 일반적인 OPA 정책 컬렉션은 OPA Gatekeeper 라이브러리를 참조하세요.
Kyverno
또한 CNCF는 Kubernetes 클러스터에서 정책을 시행하기 위한 Kyverno 오픈 소스 프로젝트를 후원합니다. Kyverno는 정책을 사용하여 Kubernetes 리소스 구성의 유효성을 검사, 변경 및 생성할 수 있는 Kubernetes 네이티브 정책 엔진입니다.
Kyverno를 사용하면 새 언어를 사용하지 않고 Kubernetes 리소스로 정책을 정의하고 관리할 수 있습니다. 이 방식을 사용하면 kubectl, git 및 kustomize와 같은 친숙한 도구를 사용하여 정책을 관리할 수 있습니다.
Kyverno는 유효성 검사에 kustomize
스타일 오버레이를 사용하고, 변형을 위한 JSON 패치 및 전략적 병합 패치를 지원하며, 유연한 트리거를 기반으로 네임스페이스 전체에서 리소스를 복제할 수 있습니다. YAML 매니페스트를 사용하여 정책을 개별적으로 배포하거나 Helm 차트를 사용하여 정책을 패키지하고 배포할 수 있습니다.
Kyverno(AKS용 Azure Policy 또는 Gatekeeper와 달리)는 기존 리소스의 유효성을 검사하거나 변경하는 것이 아니라 정책을 사용하여 새 Kubernetes 개체를 생성할 수 있습니다. 예를 들어 Kyverno 정책을 정의하여 새 네임스페이스에 대한 기본 네트워크 정책 만들기를 자동화할 수 있습니다.
자세한 내용은 공식 Kyverno 설치 가이드를 참조하세요. 사용 준비가 완료되거나 사용자 지정할 수 있는 정책 목록은 Kyverno 정책 라이브러리를 참조하세요. 문제 해결 참조(예: APIServer 실패 웹후크 호출)는 Kyverno 문제 해결 설명서를 참조 하세요.
필요에 따라 Kyverno의 Kubernetes PSS(포드 보안 표준) 구현을 Kyverno 정책으로 배포할 수 있습니다. PSS 컨트롤은 일반 Kubernetes 클러스터 운영 보안을 위한 시작점을 제공합니다.
AKS용 Azure Policy 추가 기능
AKS용 Azure Policy 추가 기능은 중앙 집중식으로 일관된 방식으로 AKS 클러스터에 대규모 적용 및 보호 기능을 적용하도록 Gatekeeper를 확장합니다. Azure Policy를 사용하면 단일 위치에서 여러 Kubernetes 클러스터에 대한 중앙 집중식 규정 준수 관리 및 보고가 가능합니다. 이 기능을 사용하면 각 클러스터에 대해 Kyverno 또는 Gatekeeper를 배포하고 관리하는 것보다 다중 클러스터 환경의 관리 및 거버넌스가 더 효율적입니다.
AKS용 Azure Policy 추가 기능은 다음 기능을 적용합니다.
- Azure Policy 서비스를 사용하여 클러스터에 대한 정책 할당을 확인합니다.
- 제약 조건 템플릿 및 제약 조건 사용자 지정 리소스로 클러스터에 정책 정의를 배포합니다.
- 감사 및 규정 준수 세부 정보를 다시 Azure Policy 서비스에 보고합니다.
Azure Policy 추가 기능은 AKS 및 Azure Arc 지원 Kubernetes 클러스터 환경을 지원합니다. 자세한 내용은 Kubernetes 클러스터용 Azure Policy 이해를 참조하세요. 새 클러스터와 기존 클러스터에 추가 기능을 설치하려면 AKS용 Azure Policy 추가 기능 설치를 참조하세요.
AKS용 Azure Policy 추가 기능을 설치한 후 개별 정책 정의 또는 이니셔티브라는 정책 정의 그룹을 AKS 클러스터에 적용할 수 있습니다. 처음부터 Azure Policy 기본 제공 정책 및 이니셔티브 정의를 적용 및 시행하거나 자체적인 사용자 지정 정책 정의를 만들고 할당할 수 있습니다. Azure Policy 기본 제공 보안 정책은 AKS 클러스터의 보안 상태를 개선하고 조직 표준을 적용하며 대규모 규정 준수를 평가하는 데 유용합니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
주요 작성자:
- Martin Gjoshevski | 선임 서비스 엔지니어
- Paolo Salvatori | 수석 서비스 엔지니어
기타 기여자:
- Chad Kittel | 주 소프트웨어 엔지니어
- Ed Price | 선임 콘텐츠 프로그램 관리자
- Theano Petersen | 기술 작가
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.
다음 단계
- Amazon EKS 전문가용 AKS
- Kubernetes ID 및 액세스 관리
- Kubernetes 모니터링 및 로깅
- Kubernetes에 대한 네트워크 액세스 보호
- Kubernetes 클러스터에 대한 스토리지 옵션
- Kubernetes에 대한 비용 관리
- Kubernetes 노드 및 노드 풀 관리