참고:
- 이 사용지침서에서는 Oracle Cloud에 접근해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 완료하면 이러한 값을 클라우드 환경에 고유한 값으로 대체합니다.
Oracle Cloud Infrastructure Resource Manager를 사용하여 프라이빗 OKE 클러스터에 모니터링 솔루션 배포
소개
Oracle Cloud는 Oracle Cloud Infrastructure(OCI) Logging Analytics를 사용하여 Oracle Cloud Infrastructure Container Engine for Kubernetes(OKE) 구현을 위한 보완 모니터링 솔루션을 제공합니다. 이 솔루션은 설명서에서 찾을 수 있으며 GitHub에서 제공되는 리소스 관리자 Terraform 배포로 구현할 수 있습니다. 그러나 이 솔루션은 공용 API 엔드포인트를 사용하는 OKE 클러스터로 처리됩니다.
전용 OKE 클러스터에서 동일한 배치를 시도하면 OCI 리소스 관리자 작업이 서비스 테넌시에서 실행 중이므로 네트워크 연결 문제로 인해 배치가 실패합니다. 이 경우 OCI 리소스 관리자 전용 끝점을 사용할 수 있지만 Helm 배치를 실행할 수 있도록 Terraform 코드를 몇 가지 변경해야 합니다.

목표
전용 OKE 클러스터(전용 서브넷에 있는 모든 클러스터 구성요소)가 이미 생성되었다고 가정합니다. 이때 OCI 리소스 관리자를 통해 위의 Logging Analytics 솔루션을 배치하면 다음 오류와 함께 실패합니다.
Error: Kubernetes cluster unreachable: Get "https://192.0.2.1:6443/version": dial tcp 192.0.2.1:6443: i/o timeout
with module.helm_release.helm_release.oci-kubernetes-monitoring[0],
on modules/helm/helm.tf line 11, in resource "helm_release" "oci-kubernetes-monitoring"
11: resource "helm_release" "oci-kubernetes-monitoring"
이 경우 IP 192.0.2.1는 OCI 리소스 관리자에 연결할 수 없는 OKE 전용 끝점의 IP입니다.
이 문제를 해결하려면 다음과 같은 추가 단계를 수행해야 합니다.
- OCI 리소스 관리자 전용 끝점을 생성합니다. 이 전용 끝점은 클러스터에 대한 접속을 생성합니다.
- OCI 리소스 관리자 전용 끝점과 관련된 클래스 E IP에 대한 수신 규칙을 OKE API 끝점의 전용 서브넷 보안 목록에 추가합니다.
- OCI 리소스 관리자의 Terraform 코드에서 해당 끝점을 사용합니다.
- 이러한 변경 사항의 부작용으로 나타나는 후속 인증서 오류를 해결합니다.
필요 조건
- OKE, OCI 리소스 관리자 및 OCI 네트워킹에 대한 기본 지식
- Terraform에 대한 이해.
- OCI 리소스 관리자 및 네트워킹 리소스를 생성하고 액세스할 수 있는 사용자 권한입니다.
작업 1: 리소스 관리자 전용 끝점 생성
이 작업의 경우 이 단계에 따라 OCI 콘솔에서 OCI 리소스 관리자에 대한 새 전용 끝점을 생성할 수 있습니다. OKE 클러스터 전용 API 끝점의 VCN 및 서브넷을 선택해야 합니다.
이렇게 하면 OKE 클러스터를 이 OCI 리소스 관리자 전용 끝점에 매핑하지만 외부에서 연결할 수 없습니다.

작업 2: 전용 서브넷 보안 목록에 수신 규칙 추가

OCI 리소스 관리자 전용 끝점의 트래픽을 허용하려면 전용 API 끝점 서브넷의 보안 목록에 수신 규칙을 추가합니다. OCI 리소스 관리자 전용 끝점의 연결 가능한 IP는 클래스 E IP입니다. 즉, CIDR 240.0.0.0/4가 이를 처리합니다.
나머지 규칙인 수신 및 송신을 확인하고 OCI 권장 사항을 준수해야 합니다.
작업 3: Terraform 코드 변경
이전 단계에서 생성된 전용 끝점의 이 새 연결 가능 IP를 사용하려면 스택에서 /modules/helm/provider.tf 파일을 수정해야 합니다.
개인 리소스의 대체 연결 가능 IP 주소를 제공하는 아래 데이터 소스 블록을 포함합니다. 이 IP는 OCI 리소스 관리자 서비스에서 전용 리소스에 접속하는 데 사용됩니다.
data "oci_resourcemanager_private_endpoint_reachable_ip" "test_private_endpoint_reachable_ip" {
#Required
private_endpoint_id = "ocid1.ormprivateendpoint.oc1....."
private_ip = "192.0.2.1"
}
locals {
// following locals are set as "place-holder" when user opts out of helm release
cluster_endpoint = "https://${data.oci_resourcemanager_private_endpoint_reachable_ip.test_private_endpoint_reachable_ip.ip_address}:6443"
...
}
작업 4: 인증서 오류 해결
위 변경사항이 변경된 후 OKE 전용 끝점 연결 가능 IP는 OKE 인증서에 포함되지 않으므로 API 끝점의 TLS 인증서로 인해 코드 적용이 진행되지만 이후에 실패합니다.
module.helm_release.helm_release.oci-kubernetes-monitoring[0]: Creating...
Error: Kubernetes cluster unreachable: Get "https://255.x.y.0:6443/version": x509: certificate is valid for 192.0.2.1, 192.0.2.2, 192.0.2.3, 127.0.0.1, not 255.x.y.0
아래 두 가지 설정으로 코드에서 인증서 확인을 제거하면 이를 방지할 수 있습니다.
-
동일한 provider.tf 파일에서 아래 매개변수를 주석 처리하거나 삭제하거나 공백으로 설정합니다.
# cluster_ca_certificate = local.cluster_ca_certificate -
다음 라인을 추가합니다.
insecure = true
관련 링크
승인
- Adina Nicolescu(Senior Cloud Engineer), Andrei Ilas(Principal Cloud Architect)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer를 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Deploy Monitoring Solution to Private OKE Clusters Using Oracle Cloud Infrastructure Resource Manager
F83051-01
July 2023
Copyright © 2023, Oracle and/or its affiliates.