1장. 애드온 개요


Red Hat Advanced Cluster Management for Kubernetes 애드온은 일부 성능 영역을 개선하고 애플리케이션을 강화할 수 있는 기능을 추가할 수 있습니다. 다음 섹션에서는 Red Hat Advanced Cluster Management에서 사용할 수 있는 애드온에 대한 요약 정보를 제공합니다.

1.1. Submariner 다중 클러스터 네트워킹 및 서비스 검색

Submariner는 Kubernetes용 Red Hat Advanced Cluster Management와 함께 온-프레미스 또는 클라우드에서 두 개 이상의 관리형 클러스터 간에 직접 네트워킹 및 서비스 검색을 제공하는 오픈 소스 툴입니다. Submariner는 Multi-Cluster Services API와 호환됩니다(Kubernetes 기능 개선 사항 Proposal #1645). Submariner에 대한 자세한 내용은 Submariner 사이트를 참조하십시오.

Red Hat Advanced Cluster Management for Kubernetes는 hub 클러스터의 애드온으로 Submariner를 제공합니다. Submariner에 대한 자세한 내용은 Submariner 오픈 소스 프로젝트 문서에서 확인할 수 있습니다.

자동화된 콘솔 배포에서 어떤 인프라 공급자를 지원하는지와 수동 배포가 필요한 인프라 공급자에 대한 자세한 내용은 Red Hat Advanced Cluster Management Support Matrix 를 참조하십시오.

1.1.1. 사전 요구 사항

Submariner를 사용하기 전에 다음 사전 요구 사항이 있는지 확인하십시오.

  • cluster-admin 권한이 있는 허브 클러스터에 액세스할 수 있는 인증 정보.
  • 게이트웨이 노드 간에 IP 연결을 구성해야 합니다. 두 클러스터를 연결할 때 게이트웨이 노드에 지정된 공용 또는 개인 IP 주소를 사용하여 게이트웨이 노드 중 하나 이상의 클러스터에 액세스할 수 있어야 합니다. 자세한 내용은 Submariner NAT Traversal 을 참조하십시오.
  • 각 관리형 클러스터에 있는 모든 노드에서 방화벽 구성은 두 방향 모두에서 4800/UDP를 허용해야 합니다.
  • 게이트웨이 노드의 방화벽 구성은 클러스터의 다른 노드에서 액세스할 수 있도록 수신 8080/TCP를 허용해야 합니다.
  • 방화벽 구성은 4500/UDP 및 게이트웨이 노드의 IPsec 트래픽에 사용되는 기타 모든 포트에 대해 열려 있습니다.
  • 내부 NAT 없이 개인 IP를 통해 게이트웨이 노드에 직접 연결할 수 있는 경우 방화벽 구성에서 게이트웨이 노드에서 ESP 프로토콜을 허용하는지 확인합니다.

    참고: 클러스터가 AWS 또는 GCP 환경에 배포되는 경우 자동으로 구성되지만 다른 환경과 프라이빗 클라우드를 보호하는 방화벽에 대해 수동으로 구성해야 합니다.

  • managedcluster 이름은 RFC 1123에 정의된 DNS 라벨 표준을 따라야 합니다. 즉, 이름은 다음 기준을 충족해야 합니다.

    • 최대 63자를 포함합니다.
    • 소문자 영숫자 또는 '-'만 포함합니다.
    • 영숫자 문자로 시작합니다.
    • 영숫자 문자로 끝납니다.
Expand
표 1.1. Submariner 필수 포트
이름기본값사용자 정의

IPsec NATT

4500/UDP

제공됨

VXLAN

4800/UDP

없음

Submariner 메트릭 포트

8080/TCP

없음

사전 요구 사항에 대한 자세한 내용은 Submariner 업스트림 사전 요구 사항 설명서 를 참조하십시오.

1.1.2. subctl 명령 유틸리티

Submariner에는 Submariner 환경에서 실행되는 작업을 단순화하는 추가 명령을 제공하는 subctl 유틸리티가 포함되어 있습니다.

1.1.2.1. subctl 명령 유틸리티 설치

subctl 유틸리티는 컨테이너 이미지에 제공됩니다. subctl 유틸리티를 로컬로 설치하려면 다음 단계를 완료합니다.

  1. 다음 명령을 실행하고 메시지가 표시되면 인증 정보를 입력하여 레지스트리에 로그인합니다.

    oc registry login --registry registry.redhat.io
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 입력하여 subctl 컨테이너 를 다운로드하고 subctl 바이너리의 압축된 버전을 /tmp 에 추출합니다.

    oc image extract registry.redhat.io/rhacm2/subctl-rhel8:v0.12 --path=/dist/subctl-v0.12.1-linux-amd64.tar.xz:/tmp/ --confirm
    Copy to Clipboard Toggle word wrap

    참고: subctl-v0.12.1-linux-amd64.tar.xz 를 사용 중인 Submariner 버전으로 변경해야 할 수 있습니다.

  3. 다음 명령을 입력하여 subctl 유틸리티의 압축을 풉니다.

    tar -C /tmp/ -xf /tmp/subctl-v0.12-linux-amd64.tar.xz
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 입력하여 subctl 유틸리티를 설치합니다.

    install -m744 /tmp/subctl-v0.12/subctl-v0.12-linux-amd64 /$HOME/.local/bin/subctl
    Copy to Clipboard Toggle word wrap

1.1.2.2. subctl 명령 사용

경로에 유틸리티를 추가한 후 사용 가능한 명령에 대한 간략한 설명은 다음 표를 참조하십시오.

Expand

내보내기 서비스

지정된 서비스에 대한 ServiceExport 리소스를 생성하여 Submariner 배포의 다른 클러스터에서 해당 서비스를 검색할 수 있습니다.

내보내기 취소 서비스

지정된 서비스에 대한 ServiceExport 리소스를 제거하여 Submariner 배포의 다른 클러스터에서 해당 서비스를 검색하지 못하도록 합니다.

show

Submariner 리소스에 대한 정보를 제공합니다.

verify

Submariner가 클러스터 한 쌍에 걸쳐 구성된 경우 연결, 서비스 검색 및 기타 Submariner 기능을 확인합니다.

benchmark

Submariner 또는 단일 클러스터 내에서 활성화되는 클러스터 쌍에서 처리량과 대기 시간입니다.

diagnose

점검을 실행하여 Submariner 배포가 제대로 작동하지 않는 문제를 식별합니다.

gather

Submariner 배포 문제를 해결하는 데 도움이 되도록 클러스터에서 정보를 수집합니다.

version

subctl 바이너리 도구의 버전 세부 정보를 표시합니다.

subctl 유틸리티 및 해당 명령에 대한 자세한 내용은 Submariner 설명서의subctl 을 참조하십시오.

1.1.3. Globalnet

Globalnet은 겹치는 CIDR이 있는 클러스터 간 연결을 지원하는 Submariner 애드온에 포함된 기능입니다. Globalnet은 클러스터 설정된 광범위한 구성이며 첫 번째 관리 클러스터가 클러스터 세트에 추가될 때 선택할 수 있습니다. Globalnet이 활성화되면 각 관리 대상 클러스터에 가상 글로벌 프라이빗 네트워크의 글로벌 CIDR이 할당됩니다. 글로벌 CIDR은 클러스터 간 통신을 지원하는 데 사용됩니다.

Submariner를 실행하는 클러스터의 CIDR이 중첩될 가능성이 있는 경우 Globalnet 활성화를 고려하십시오. Red Hat Advanced Cluster Management 콘솔을 사용하는 경우 ClusterAdmin 은 클러스터 세트의 클러스터에 Submariner 애드온을 활성화할 때 Enable Globalnet 옵션을 선택하여 클러스터에 대해 Globalnet을 활성화할 수 있습니다. Globalnet을 활성화한 후에는 Submariner를 제거하지 않고 비활성화할 수 없습니다.

Red Hat Advanced Cluster Management API를 사용하는 경우 ClusterAdmin 은 < ManagedClusterSet >-broker 네임스페이스에 submariner-broker 개체를 생성하여 Globalnet을 활성화할 수 있습니다.

ClusterAdmin 역할에는 broker 네임스페이스에 이 오브젝트를 생성하는 데 필요한 권한이 있습니다. 클러스터 세트의 프록시 관리자 역할을 수행하기 위해 생성된 ManagedClusterSetAdmin 역할에는 필요한 권한이 없습니다. 필요한 권한을 제공하려면 ClusterAdmin 에서 access-to-brokers-submariner-crd 에 대한 역할 권한을 ManagedClusterSetAdmin 사용자에게 연결해야 합니다.

submariner-broker 오브젝트를 생성하려면 다음 단계를 완료합니다.

  1. 다음 명령을 실행하여 < broker-namespace >를 검색합니다.

    oc get ManagedClusterSet <cluster-set-name> -o jsonpath="{.metadata.annotations['cluster\.open-cluster-management\.io/submariner-broker-ns']}"
    Copy to Clipboard Toggle word wrap
  2. submariner-broker 라는 YAML 파일을 생성하여 Globalnet 구성을 지정하는 submariner-broker 오브젝트를 생성합니다. 다음 행과 유사한 콘텐츠를 YAML 파일에 추가합니다.

    apiVersion: submariner.io/v1alpha1
    kind: Broker
    metadata:
      name: submariner-broker
      namespace: <broker-namespace>
    spec:
      globalnetEnabled: <true-or-false>
    Copy to Clipboard Toggle word wrap

    broker-namespace 를 브로커 네임스페이스의 이름으로 교체합니다.

    Globalnet을 활성화하려면 true-or-falsetrue 로 바꿉니다.

    참고: metadata name 매개변수는 submariner-broker 여야 합니다.

  3. 다음 명령을 입력하여 YAML 파일에 파일을 적용합니다.

    oc apply -f submariner-broker.yaml
    Copy to Clipboard Toggle word wrap

Globalnet에 대한 자세한 내용은 Submariner 문서의 Globalnet 컨트롤러를 참조하십시오.

1.1.4. Submariner 배포

다음 공급자의 네트워크 클러스터에 Submariner를 배포할 수 있습니다.

자동 배포 프로세스:

  • Amazon Web Services
  • Google Cloud Platform
  • Red Hat OpenStack Platform

수동 배포 프로세스:

  • Microsoft Azure
  • IBM Cloud
  • VMware vSphere
  • 베어 메탈

1.1.4.1. 콘솔을 사용하여 Submariner 배포

Kubernetes 콘솔용 Red Hat Advanced Cluster Management for Kubernetes 콘솔을 사용하여 Amazon Web Services, Google Cloud Platform 및 VMware vSphere에 배포된 Red Hat OpenShift Container Platform 관리 클러스터에 Submariner를 배포할 수 있습니다. 다른 공급자에 Submariner를 배포하려면 Submariner 배포의 지침을 따르십시오. Red Hat Advanced Cluster Management for Kubernetes 콘솔을 사용하여 Submariner를 배포하려면 다음 단계를 완료합니다.

필수 액세스 권한: 클러스터 관리자

  1. 콘솔 탐색 메뉴에서 인프라 > 클러스터를 선택합니다.
  2. 클러스터 페이지에서 클러스터 설정 탭을 선택합니다. Submariner를 사용하여 활성화할 클러스터는 동일한 클러스터 세트에 있어야 합니다.
  3. Submariner를 배포하려는 클러스터가 이미 동일한 클러스터 세트에 있는 경우 5 단계로 건너뛰어 Submariner를 배포합니다.
  4. Submariner를 배포하려는 클러스터가 동일한 클러스터 세트에 없는 경우 다음 단계를 완료하여 해당 클러스터에 대해 설정된 클러스터를 생성합니다.

    1. 클러스터 세트 생성을 선택합니다.
    2. 클러스터 세트의 이름을 지정하고 생성을 선택합니다.
    3. Manage resource assignments to assign clusters to the cluster set를 선택합니다.
    4. Submariner에 연결할 관리 클러스터를 선택하여 클러스터 세트에 추가합니다.
    5. 검토를 선택하여 선택한 클러스터를 보고 확인합니다.
    6. 저장 을 선택하여 클러스터 세트를 저장하고 결과 클러스터 세트 페이지를 확인합니다.
  5. 클러스터 세트 페이지에서 Submariner 애드온 탭을 선택합니다.
  6. Install Submariner Add-ons 를 선택합니다.
  7. Submariner를 배포할 클러스터를 선택합니다.
  8. Submariner add-ons 편집기 에 다음 정보를 입력합니다.

    • AWS Access Key ID - 이 필드는 AWS 클러스터를 가져올 때만 표시됩니다.
    • AWS Secret Access Key - 이 필드는 AWS 클러스터를 가져올 때만 표시됩니다.
    • Google Cloud Platform 서비스 계정 JSON 키 - 이 필드는 Google Cloud Platform 클러스터를 가져올 때만 표시됩니다.
    • 인스턴스 유형 - 관리 클러스터에서 생성된 게이트웨이 노드의 Amazon Web Services EC2 인스턴스 유형입니다. 기본값은 c5d.large 입니다. 이 필드는 관리형 클러스터 환경이 AWS인 경우에만 표시됩니다.
    • IPsec NAT-T 포트 - IPsec NAT 트래버스 포트의 기본값은 포트 4500 입니다. 관리형 클러스터 환경이 VMware vSphere인 경우 방화벽에서 이 포트가 열려 있는지 확인합니다.
    • Gateway count - 관리 클러스터에 Submariner 게이트웨이 구성 요소를 배포하는 데 사용되는 작업자 노드 수입니다. 기본값은 1 입니다. 값이 1보다 크면 Submariner 게이트웨이 HA(고가용성)가 자동으로 활성화됩니다.
    • Cable 드라이버 - 클러스터 간 터널을 유지하는 Submariner 게이트웨이 커넥터 엔진 구성 요소입니다. 기본값은 Libreswan IPsec 입니다.
  9. 편집기 끝에 있는 다음을 선택하여 다음 클러스터의 편집기로 이동하고 선택한 나머지 각 클러스터에 대해 편집기를 완료합니다.
  10. 관리되는 각 클러스터의 구성을 확인합니다.
  11. 선택한 관리 클러스터에 Submariner를 배포하려면 설치를 클릭합니다.

    설치 및 구성을 완료하는 데 몇 분이 걸릴 수 있습니다. Submariner 추가 기능 탭의 목록에서 Submariner 상태를 확인할 수 있습니다.

    • 연결 상태는 관리 클러스터에서 설정된 Submariner 연결 수를 나타냅니다.
    • 에이전트 상태는 Submariner가 관리 클러스터에 성공적으로 배포되었는지 여부를 나타냅니다. 콘솔은 설치 및 구성할 때까지 성능이 저하된 상태를 보고할 수 있습니다.
    • 라벨이 지정된 게이트웨이 노드는 관리형 클러스터에서 Submariner gateway 레이블: submariner.io/gateway=true 로 레이블이 지정된 작업자 노드 수를 나타냅니다.

Submariner가 클러스터에 배포되었습니다.

1.1.4.2. 수동으로 Submariner 배포

Kubernetes용 Red Hat Advanced Cluster Management를 사용하여 Submariner를 배포하기 전에 해당 연결을 위해 호스팅 환경에서 클러스터를 준비해야 합니다. 현재 SubmarinerConfig API를 사용하여 Amazon Web Services, Google Cloud Platform 및 VMware vSphere에서 클러스터를 자동으로 준비할 수 있습니다. 다른 플랫폼의 경우 수동으로 준비해야 하며, 단계를 위해 Submariner를 배포할 선택한 호스트 준비를 참조하십시오.

1.1.4.2.1. Submariner를 배포하기 위해 선택한 호스트 준비

Kubernetes용 Red Hat Advanced Cluster Management를 사용하여 Submariner를 배포하기 전에 해당 연결을 위해 호스팅 환경에서 클러스터를 수동으로 준비해야 합니다. 요구 사항은 다른 호스팅 환경에 따라 다르므로 호스팅 환경에 대한 지침을 따르십시오.

1.1.4.2.1.1. Microsoft Azure for Submariner 준비

Microsoft Azure에 Submariner 구성 요소를 배포하기 위해 클러스터를 준비하려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하여 노드를 게이트웨이 노드로 태깅합니다.

    kubectl label nodes <worker-node-name> "submariner.io/gateway=true" --overwrite
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 공용 IP를 만들고 이를 게이트웨이 노드로 태그된 노드의 VM에 할당합니다.

    az network public-ip create --name <public-ip-name> --resource-group <res-group> -sku Standard
    az network nic ip-config update --name <name>  --nic-name <gw-vm-nic> --resource-group <res-group>  --public-ip-address <public-ip-name>
    Copy to Clipboard Toggle word wrap

    res-group 을 클러스터의 리소스 그룹으로 바꿉니다.

    gw-vm-nic 을 인터페이스 주소로 교체합니다.

  3. 다음 명령을 실행하여 Submariner 게이트웨이의 네트워크 보안 그룹을 만듭니다.

    az network nsg create --name <gw-nsg-name> --resource-group <res-group>
    Copy to Clipboard Toggle word wrap
  4. Submariner에 대해 기본적으로 네트워크 보안 그룹 규칙을 생성하여 터널 포트 (4500/UDP), NAT 검색 포트(기본적으로 4490/UDP) 및 지표 포트(기본적으로 8080/TCP 및 8081/TCP)를 엽니다. 이러한 규칙은 각 포트에 대한 인바운드 및 아웃바운드 방향으로 만들어야 합니다.

    az network nsg rule create --resource-group <res-group> \
    --nsg-name <gw-nsg-name> --priority <priority> \
    --name <name> --direction Inbound --access Allow \
    --protocol <Protocol> --destination-port-ranges <port>
    
    az network nsg rule create --resource-group <res-group> \
    --nsg-name <gw-nsg-name> --priority <priority> \
    --name <name> --direction Outbound --access Allow \
    --protocol <Protocol> --destination-port-ranges <port>
    Copy to Clipboard Toggle word wrap
  5. ESP(Encapsulated Security Payload) 및 AH(Authentication Header) 프로토콜을 사용하여 통신을 허용하는 네트워크 보안 그룹 규칙을 만듭니다. 이러한 규칙은 두 프로토콜 모두에 대한 인바운드 및 아웃바운드 방향으로 만들어야 합니다.

    az network nsg rule create --resource-group <res-group> \
    --nsg-name <gw-nsg-name> --priority <priority> \
    --name <name> --direction Inbound --access Allow \
    --protocol <Protocol> --destination-port-ranges 0-0
    
    az network nsg rule create --resource-group <res-group> \
    --nsg-name <gw-nsg-name> --priority <priority> \
    --name <name> --direction Outbound --access Allow \
    --protocol <Protocol> --destination-port-ranges 0-0
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 입력하여 게이트웨이 VM 인터페이스에 보안 그룹을 연결합니다.

    az network nic update -g <res-group> -n <gw-vm-nic>  --network-security-group <gw-nsg-name>
    Copy to Clipboard Toggle word wrap
  7. Azure 환경에서 네트워크 보안 그룹 규칙을 생성하여 작업자 및 기본 노드와 연결된 기존 보안 그룹(기본적으로 <resource-group-name>-nsg )에서 VXLAN 포트 (4800/UDP)를 엽니다.

    az network nsg rule create --resource-group <res-group> \
    --nsg-name <nsg-name> --priority <priority> \
    --name <name> --direction Inbound --access Allow \
    --protocol udp --destination-port-ranges <vxlan-port>
    
    az network nsg rule create --resource-group <res-group> \
    --nsg-name <nsg-name> --priority <priority> \
    --name <name> --direction Outbound --access Allow \
    --protocol udp --destination-port-ranges <vxlan-port>
    Copy to Clipboard Toggle word wrap

중요: Submariner를 다시 설치할 때 새 게이트웨이 노드에 게이트웨이 노드로 태그가 지정되었는지 확인합니다. Submariner를 제거한 후 현재 게이트웨이를 재사용하면 연결에서 오류 상태가 표시됩니다. 이 요구 사항은 수동 클라우드 준비 단계를 통해 Kubernetes용 Red Hat Advanced Cluster Management를 사용하는 경우에만 적용됩니다.

1.1.4.2.1.2. VMware vSphere for Submariner 준비

Submariner는 IPsec을 사용하여 게이트웨이 노드의 클러스터 간 보안 터널을 설정합니다. 기본 포트를 사용하거나 사용자 지정 포트를 지정할 수 있습니다. IPsec NATT 포트를 지정하지 않고 이 절차를 실행하면 기본 포트가 통신에 자동으로 사용됩니다. 기본 포트는 4500/UDP입니다.

Submariner는 VXLAN(Virtual Extensible LAN)을 사용하여 작업자 및 마스터 노드에서 게이트웨이 노드로 트래픽을 캡슐화합니다. VXLAN 포트는 사용자 정의할 수 없으며 항상 포트 4800/UDP입니다.

Submariner는 8080/TCP를 사용하여 클러스터의 노드 간에 지표 정보를 전송하며, 이 포트는 사용자 정의할 수 없습니다.

Submariner를 활성화하려면 VMWare vSphere 관리자가 다음 포트를 열어야 합니다.

Expand
표 1.2. VMware vSphere 및 Submariner 포트
이름기본값사용자 정의

IPsec NATT

4500/UDP

제공됨

VXLAN

4800/UDP

없음

Submariner 메트릭

8080/TCP

없음

Submariner 배포를 위해 VMware vSphere 클러스터를 준비하려면 다음 단계를 완료합니다.

  1. IPsec NATT, VXLAN 및 지표 포트가 열려 있는지 확인합니다.
  2. 다음 예와 유사한 YAML 콘텐츠를 사용자 지정하고 적용합니다.

    apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
    kind: SubmarinerConfig
    metadata:
        name: submariner
        namespace: <managed-cluster-namespace>
    spec:{}
    Copy to Clipboard Toggle word wrap

    managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.

    참고: SubmarinerConfig 의 이름은 예제에 표시된 대로 submariner 여야 합니다.

    이 구성에서는 Submariner에 기본 네트워크 주소 변환(NATT) 포트(4500/UDP)를 사용하며 하나의 작업자 노드는 vSphere 클러스터에서 Submariner 게이트웨이로 레이블이 지정됩니다.

    Submariner는 IP 보안(IPsec)을 사용하여 게이트웨이 노드의 클러스터 간 보안 터널을 설정합니다. 기본 IPsec NATT 포트를 사용하거나 구성한 다른 포트를 지정할 수 있습니다. IPsec NATT 포트를 지정하지 않고 이 절차를 실행하면 통신에 자동으로 4500/UDP가 사용됩니다.

1.1.4.2.1.3. Submariner 용 베어 메탈 준비

Submariner 배포를 위해 베어 메탈 클러스터를 준비하려면 다음 단계를 완료합니다.

  1. IPsec NATT, VXLAN 및 지표 포트가 열려 있는지 확인합니다.
  2. 다음 예와 유사한 YAML 콘텐츠를 사용자 지정하고 적용합니다.

    apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
    kind: SubmarinerConfig
    metadata:
        name: submariner
        namespace: <managed-cluster-namespace>
    spec:{}
    Copy to Clipboard Toggle word wrap

    managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.

    참고: SubmarinerConfig 의 이름은 예제에 표시된 대로 submariner 여야 합니다.

    이 구성에서는 기본 네트워크 주소 변환 - Submariner에 대해 NATT 포트 (4500/UDP)를 사용하고 하나의 작업자 노드는 베어 메탈 클러스터에서 Submariner 게이트웨이로 레이블이 지정됩니다.

    Submariner는 IP 보안(IPsec)을 사용하여 게이트웨이 노드의 클러스터 간 보안 터널을 설정합니다. 기본 IPsec NATT 포트를 사용하거나 구성한 다른 포트를 지정할 수 있습니다. IPsec NATT 포트를 지정하지 않고 이 절차를 실행하면 통신에 자동으로 4500/UDP가 사용됩니다.

사용자 지정 옵션에 대한 정보는 Submariner 배포 사용자 지정을 참조하십시오.

1.1.4.2.2. ManagedClusterAddOn API를 사용하여 Submariner 배포

ManagedClusterAddOn API를 사용하여 Submariner를 배포하려면 먼저 호스팅 환경에서 클러스터를 준비해야 합니다. 자세한 내용은 선택한 호스트 준비에서 Submariner 를 참조하십시오.

클러스터를 준비한 후 다음 단계를 완료합니다.

  1. 클러스터 관리 문서의 ManagedClusterSets 주제를 사용하여 hub 클러스터에 ManagedCluster Set 리소스를 생성합니다. ManagedClusterSet 항목에 대한 항목은 다음 내용과 유사해야 합니다.

    apiVersion: cluster.open-cluster-management.io/v1beta1
    kind: ManagedClusterSet
    metadata:
      name: <managed-cluster-set-name>
    Copy to Clipboard Toggle word wrap

    managed-cluster-set-name 을 생성 중인 ManagedClusterSet 의 이름으로 교체합니다.

    참고: Kubernetes 네임스페이스 이름의 최대 길이는 63자이므로 < managed-cluster-set-name >의 최대 길이는 CloudEvent자입니다. < managed-cluster-set-name >의 길이가 iPXE를 초과하면 헤드에서 < managed-cluster-set-name >이 잘립니다.

    ManagedClusterSet 이 생성된 후 submariner-addon 은 < managed-cluster-set-name>-broker 라는 네임스페이스를 생성하고 Submariner 브로커를 배포합니다.

  2. 다음 예와 유사한 YAML 콘텐츠를 사용자 정의하고 적용하여 < managed-cluster-set-name>-broker 네임스페이스의 hub 클러스터에서 Broker 구성을 생성합니다.

    apiVersion: submariner.io/v1alpha1
    kind: Broker
    metadata:
         name: submariner-broker
         namespace: <managed-cluster-set-name>-broker
    spec:
         globalnetEnabled: false
    Copy to Clipboard Toggle word wrap

    managed-cluster-set-name 을 관리형 클러스터의 이름으로 교체합니다.

    ManagedClusterSet 에서 Submariner Globalnet을 활성화하려면 globalnetEnabled 의 값을 true 로 설정합니다.

  3. 다음 명령을 입력하여 ManagedClusterSet 에 하나의 관리형 클러스터를 추가합니다.

    oc label managedclusters <managed-cluster-name> "cluster.open-cluster-management.io/clusterset=<managed-cluster-set-name>" --overwrite
    Copy to Clipboard Toggle word wrap

    & lt;managed-cluster-name >을 ManagedClusterSet 에 추가할 관리형 클러스터 이름으로 바꿉니다.

    & lt;managed-cluster-set-name >을 관리 클러스터를 추가할 ManagedClusterSet 의 이름으로 바꿉니다.

  4. 다음 예와 유사한 YAML 콘텐츠를 사용자 지정하고 적용하여 관리형 클러스터에 Submariner를 배포합니다.

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: ManagedClusterAddOn
    metadata:
         name: submariner
         namespace: <managed-cluster-name>
    spec:
         installNamespace: submariner-operator
    Copy to Clipboard Toggle word wrap

    managed-cluster-name 을 Submariner와 함께 사용하려는 관리형 클러스터의 이름으로 교체합니다.

    ManagedClusterAddOn 사양의 installNamespace 필드는 Submariner를 설치하는 관리 클러스터의 네임스페이스입니다. 현재는 submariner-operator 네임스페이스에 Submariner가 설치되어 있어야 합니다.

    ManagedClusterAddOn 이 생성된 후 submariner-addon 은 Submariner를 관리 클러스터의 submariner-operator 네임스페이스에 배포합니다. 이 ManagedClusterAddOn 의 상태에서 Submariner의 배포 상태를 볼 수 있습니다.

    참고: ManagedClusterAddOn 의 이름은 submariner 여야 합니다.

  5. Submariner를 활성화할 모든 관리형 클러스터에 대해 3단계와 4단계를 반복합니다.
  6. Submariner가 관리 클러스터에 배포된 후 다음 명령을 입력하여 잠수어 ManagedClusterAddOn 상태를 확인하여 Submariner 배포 상태를 확인할 수 있습니다.

    oc -n <managed-cluster-name> get managedclusteraddons submariner -oyaml
    Copy to Clipboard Toggle word wrap

    managed-cluster-name 을 관리 클러스터의 이름으로 교체합니다.

    Submariner ManagedClusterAddOn 의 상태에서 세 가지 조건은 Submariner 배포 상태를 나타냅니다.

    • SubmarinerGatewayNodesLabeled 조건은 관리형 클러스터에 Submariner 게이트웨이 노드가 라벨이 있는지 여부를 나타냅니다.
    • SubmarinerAgentDegraded 상태는 Submariner가 관리 클러스터에 성공적으로 배포되었는지 여부를 나타냅니다.
    • SubmarinerConnectionDegraded 조건은 Submariner를 사용하여 관리 클러스터에서 설정된 연결 수를 나타냅니다.
1.1.4.2.3. Submariner 배포 사용자 정의

NATT(Network Address Translation-Traversal) 포트, 게이트웨이 노드 수 및 게이트웨이 노드의 인스턴스 유형을 포함하여 일부 Submariner 배포 설정을 사용자 지정할 수 있습니다. 이러한 사용자 지정은 모든 공급자에서 일관되게 유지됩니다.

1.1.4.2.3.1. NATT 포트

NATT 포트를 사용자 지정하려면 공급자 환경에 대해 다음 YAML 콘텐츠를 사용자 지정하고 적용하려면 다음을 수행합니다.

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
    name: submariner
    namespace: <managed-cluster-namespace>
spec:
    credentialsSecret:
      name: <managed-cluster-name>-<provider>-creds
    IPSecNATTPort: <NATTPort>
Copy to Clipboard Toggle word wrap
  • managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.
  • managed-cluster-name 을 관리 클러스터 이름으로 교체

    • AWS: 공급자 교체 aws 로 . < managed-cluster-name>-aws-creds 값은 허브 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 AWS 인증 정보 시크릿 이름입니다.
    • GCP: 공급자를 gcp 로 바꿉니다. < managed-cluster-name>-gcp-creds 값은 허브 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 Google Cloud Platform 인증 정보 시크릿 이름입니다.
  • managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.
  • managed-cluster-name 을 관리 클러스터 이름으로 교체합니다. managed-cluster-name-gcp-creds 의 값은 hub 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 Google Cloud Platform 인증 정보 시크릿 이름입니다.
  • NATTPort 를 사용하려는 NATT 포트로 바꿉니다.

참고: SubmarinerConfig 의 이름은 예제에 표시된 대로 submariner 여야 합니다.

VMware vSphere 환경에서 NATT 포트를 사용자 지정하려면 다음 YAML 콘텐츠를 사용자 지정하고 적용합니다.

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
    name: submariner
    namespace: <managed-cluster-namespace>
spec:
    IPSecNATTPort: <NATTPort>
Copy to Clipboard Toggle word wrap
  • managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.
  • NATTPort 를 사용하려는 NATT 포트로 바꿉니다.

참고: SubmarinerConfig 의 이름은 예제에 표시된 대로 submariner 여야 합니다.

1.1.4.2.3.2. 게이트웨이 노드 수

게이트웨이 노드 수를 사용자 지정하려면 다음 예와 유사한 YAML 콘텐츠를 사용자 지정하고 적용하려면 다음을 수행합니다.

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
   name: submariner
   namespace: <managed-cluster-namespace>
spec:
   credentialsSecret:
     name: <managed-cluster-name>-<provider>-creds
  gatewayConfig:
      gateways: <gateways>
Copy to Clipboard Toggle word wrap
  • managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.
  • managed-cluster-name 을 관리 클러스터 이름으로 교체합니다.

    • AWS: 공급자 교체 aws 로 . managed-cluster-name-aws-creds 값은 허브 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 AWS 인증 정보 시크릿 이름입니다.
    • GCP: 공급자를 gcp 로 바꿉니다. < managed-cluster-name>-gcp-creds 값은 허브 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 Google Cloud Platform 인증 정보 시크릿 이름입니다.
  • 게이트웨이를 사용하려는 게이트웨이 수로 바꿉니다. 값이 1보다 크면 Submariner 게이트웨이가 고가용성을 자동으로 활성화합니다.

참고: SubmarinerConfig 의 이름은 예제에 표시된 대로 submariner 여야 합니다.

VMware vSphere 환경의 게이트웨이 노드 수를 사용자 지정하려면 다음 예와 유사한 YAML 콘텐츠를 사용자 지정하고 적용하려면 다음을 수행합니다.

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
   name: submariner
   namespace: <managed-cluster-namespace>
spec:
  gatewayConfig:
      gateways: <gateways>
Copy to Clipboard Toggle word wrap
  • managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.
  • 게이트웨이를 사용하려는 게이트웨이 수로 바꿉니다. 값이 1보다 크면 Submariner 게이트웨이가 고가용성을 자동으로 활성화합니다.
1.1.4.2.3.3. 게이트웨이 노드의 인스턴스 유형

게이트웨이 노드의 인스턴스 유형을 사용자 지정하려면 다음 예와 유사한 YAML 콘텐츠를 사용자 지정하고 적용하려면 다음을 수행합니다.

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
   name: submariner
   namespace: <managed-cluster-namespace>
spec:
   credentialsSecret:
     name: <managed-cluster-name>-<provider>-creds
  gatewayConfig:
      instanceType: <instance-type>
Copy to Clipboard Toggle word wrap
  • managed-cluster-namespace 를 관리 클러스터의 네임스페이스로 교체합니다.
  • managed-cluster-name 을 관리 클러스터 이름으로 교체합니다.

    • AWS: 공급자 교체 aws 로 . managed-cluster-name-aws-creds 값은 허브 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 AWS 인증 정보 시크릿 이름입니다.
    • GCP: 공급자를 gcp 로 바꿉니다. < managed-cluster-name>-gcp-creds 값은 허브 클러스터의 클러스터 네임스페이스에서 찾을 수 있는 Google Cloud Platform 인증 정보 시크릿 이름입니다.
  • 인스턴스 유형을 사용하려는 AWS 인스턴스 유형으로 교체합니다.

참고: SubmarinerConfig 의 이름은 예제에 표시된 대로 submariner 여야 합니다.

1.1.4.2.3.4. Cable 드라이버

Submariner Gateway Engine 구성 요소는 다른 클러스터에 대한 보안 터널을 생성합니다. 유선 드라이버 구성 요소는 게이트웨이 엔진 구성 요소에서 플러그형 아키텍처를 사용하여 터널을 유지 관리합니다. 배선 엔진 구성 요소의 channels Driver 구성에 Libreswan 또는 VXLAN 구현을 사용할 수 있습니다. 다음 예제를 참조하십시오.

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
   name: submariner
   namespace: <managed-cluster-namespace>
spec:
   cableDriver: vxlan
   credentialsSecret:
     name: <managed-cluster-name>-<provider>-creds
Copy to Clipboard Toggle word wrap

모범 사례: 공용 네트워크에서 VXLAN 연결 드라이버를 사용하지 마십시오. VXLAN 연결 드라이버는 암호화되지 않습니다. 프라이빗 네트워크에서 불필요한 이중 암호화를 피하기 위해 VXLAN만 사용합니다. 예를 들어 일부 온프레미스 환경에서는 전용 라인 수준 하드웨어 장치를 사용하여 터널의 암호화를 처리할 수 있습니다.

1.1.4.3. Submariner의 서비스 검색 관리

Submariner가 관리 클러스터와 동일한 환경에 배포된 후 경로는 관리형 클러스터 세트의 클러스터 전체에서 Pod와 서비스 간의 보안 IP 라우팅을 위해 구성됩니다.

1.1.4.3.1. Submariner에 대한 서비스 검색 활성화

관리형 클러스터 세트의 다른 클러스터에 클러스터에서 서비스를 표시하고 검색할 수 있도록 하려면 ServiceExport 오브젝트를 생성해야 합니다. ServiceExport 오브젝트로 서비스를 내보낸 후 <service>.< namespace>.svc.clusterset.local 형식으로 서비스에 액세스할 수 있습니다. 여러 클러스터에서 동일한 이름의 서비스를 내보내고 동일한 네임스페이스에서 서비스를 내보내는 경우 다른 클러스터에서 단일 논리 서비스로 인식됩니다.

이 예제에서는 default 네임스페이스에서 nginx 서비스를 사용하지만 Kubernetes ClusterIP 서비스 또는 헤드리스 서비스를 검색할 수 있습니다.

  1. 다음 명령을 입력하여 ManagedClusterSet 에 있는 관리형 클러스터에 nginx 서비스의 인스턴스를 적용합니다.

    oc -n default create deployment nginx --image=nginxinc/nginx-unprivileged:stable-alpine
    oc -n default expose deployment nginx --port=8080
    Copy to Clipboard Toggle word wrap
  2. 다음 명령과 유사한 서브ctl 툴을 사용하여 명령을 입력하여 ServiceExport 항목을 생성하여 서비스를 내보냅니다.

    subctl export service --namespace <service-namespace> <service-name>
    Copy to Clipboard Toggle word wrap

    service-namespace 를 서비스가 있는 네임스페이스의 이름으로 교체합니다. 이 예에서는 기본값 입니다.

    service-name 을 내보낸 서비스 이름으로 교체합니다. 이 예제에서는 nginx 입니다.

    사용 가능한 다른 플래그에 대한 자세한 내용은 Submariner 설명서에서 내보내기 를 참조하십시오.

  3. 다른 관리 클러스터에서 다음 명령을 실행하여 nginx 서비스에 액세스할 수 있는지 확인합니다.

    oc -n default run --generator=run-pod/v1 tmp-shell --rm -i --tty --image quay.io/submariner/nettest -- /bin/bash curl nginx.default.svc.clusterset.local:8080
    Copy to Clipboard Toggle word wrap

이제 nginx 서비스 검색이 Submariner에 대해 구성됩니다.

1.1.4.3.2. Submariner의 서비스 검색 비활성화

서비스를 다른 클러스터로 내보낼 수 없도록 하려면 nginx 의 다음 예제와 유사한 명령을 입력합니다.

subctl unexport service --namespace <service-namespace> <service-name>
Copy to Clipboard Toggle word wrap

service-namespace 를 서비스가 있는 네임스페이스의 이름으로 교체합니다.

service-name 을 내보낸 서비스 이름으로 교체합니다.

사용 가능한 다른 플래그에 대한 자세한 내용은 Submariner 설명서에서 내보내기 취소 를 참조하십시오.

클러스터에서 검색에 더 이상 서비스를 사용할 수 없습니다.

1.1.4.4. Submariner 설치 제거

Kubernetes 콘솔용 Red Hat Advanced Cluster Management 또는 명령줄을 사용하여 클러스터에서 Submariner 구성 요소를 설치 제거할 수 있습니다. Submariner 0.12 이전 버전의 경우 모든 데이터 플레인 구성 요소를 완전히 제거하려면 추가 단계가 필요합니다. Submariner uninstall는 멱등이므로 문제 없이 단계를 반복할 수 있습니다.

1.1.4.4.1. 콘솔 방법

Red Hat Advanced Cluster Management 콘솔을 사용하여 클러스터에서 Submariner를 설치 제거하려면 다음 단계를 완료하십시오.

  1. Red Hat Advanced Cluster Management 콘솔 탐색에서 Infrastructure > Clusters 를 선택하고 Cluster sets 탭을 선택합니다.
  2. Submariner 구성 요소를 제거할 클러스터가 포함된 클러스터 세트를 선택합니다.
  3. Submariner Add-ons 탭을 선택하여 Submariner가 배포된 클러스터 세트의 클러스터를 확인합니다.
  4. Submariner를 제거할 클러스터의 작업 메뉴에서 애드온 설치 제거를 선택합니다.
  5. Submariner를 제거할 다른 클러스터에 대해 해당 단계를 반복합니다.

    팁: 여러 클러스터를 선택하고 작업을 클릭하여 동일한 클러스터의 여러 클러스터에서 Submariner 애드온을 제거할 수 있습니다. Submariner 애드온 제거를 선택합니다.

제거 중인 Submariner 버전이 버전 0.12 이전 버전인 경우 초기 버전의 Submariner에 대한 수동 제거 단계를 계속 수행합니다. Submariner 버전이 0.12 이상이면 Submariner가 제거됩니다.

중요: 클라우드 공급자의 추가 비용을 방지하기 위해 모든 클라우드 리소스가 클라우드 공급자에서 제거되었는지 확인합니다. 자세한 내용은 Submariner 리소스 제거 확인을 참조하십시오.

1.1.4.4.2. 명령줄 방법

명령줄을 사용하여 Submariner를 설치 제거하려면 다음 단계를 완료합니다.

  1. 다음 명령을 입력하여 Submariner 애드온이 포함된 클러스터를 찾습니다.

    oc get resource submariner-addon -n open-cluster-management
    Copy to Clipboard Toggle word wrap
  2. 다음 예제와 유사한 명령을 실행하여 클러스터에서 Submariner를 제거합니다.

    oc delete resource submariner-addon -n <CLUSTER_NAME>
    Copy to Clipboard Toggle word wrap

    CLUSTER_NAME 을 클러스터 이름으로 바꿉니다.

  3. 클러스터에서 모든 Submariner 구성 요소를 제거하려는지 확인합니다.
  4. Submariner를 제거하려면 각 클러스터에 대해 단계를 반복합니다.

제거 중인 Submariner 버전이 버전 0.12 이전 버전인 경우 초기 버전의 Submariner에 대한 수동 제거 단계를 계속 수행합니다. Submariner 버전이 0.12 이상이면 Submariner가 제거됩니다.

중요: 클라우드 공급자의 추가 비용을 방지하기 위해 모든 클라우드 리소스가 클라우드 공급자에서 제거되었는지 확인합니다. 자세한 내용은 Submariner 리소스 제거 확인을 참조하십시오.

1.1.4.4.3. 초기 버전의 Submariner 수동 제거 단계

버전 0.12 이하인 Submariner 버전을 제거할 때 Submariner 설명서의 Manual Uninstall 섹션에서 5-8 단계를 완료합니다.

해당 단계를 완료하면 Submariner 구성 요소가 클러스터에서 제거됩니다.

중요: 클라우드 공급자의 추가 비용을 방지하기 위해 모든 클라우드 리소스가 클라우드 공급자에서 제거되었는지 확인합니다. 자세한 내용은 Submariner 리소스 제거 확인을 참조하십시오.

1.1.4.4.4. Submariner 리소스 제거 확인

Submariner를 제거한 후 모든 Submariner 리소스가 클러스터에서 제거되었는지 확인합니다. 클러스터에 남아 있는 경우 일부 리소스는 인프라 공급자의 비용을 계속 청구합니다. 다음 단계를 완료하여 클러스터에 추가 Submariner 리소스가 없는지 확인합니다.

  1. 다음 명령을 실행하여 클러스터에 남아 있는 Submariner 리소스를 나열합니다.

    oc get cluster <CLUSTER_NAME> grep submariner
    Copy to Clipboard Toggle word wrap

    CLUSTER_NAME 을 클러스터 이름으로 바꿉니다.

  2. 다음 명령을 입력하여 목록의 리소스를 제거합니다.

    oc delete resource <RESOURCE_NAME> cluster <CLUSTER_NAME>
    Copy to Clipboard Toggle word wrap

    RESOURCE_NAME 을 삭제하려는 Submariner 리소스의 이름으로 바꿉니다.

  3. 검색에서 리소스를 식별하지 못할 때까지 각 클러스터에 대해 1-2단계를 반복합니다.

Submariner 리소스는 클러스터에서 제거됩니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat