클러스터에 액세스

IBM Cloud® Kubernetes Service 클러스터가 작성되고 나면 클러스터에 액세스하여 클러스터에 대한 작업을 시작할 수 있습니다.

전제조건

  1. IBM Cloud CLI, Kubernetes Service 플러그인(ibmcloud ks) 및 Kubernetes CLI(kubectl)를 포함하는 필수 CLI 도구를 설치하십시오. 클러스터의 기능을 테스트하기 위해 신속하게 액세스하려면 IBM Cloud Shell도 사용할 수 있습니다.
  2. IBM Cloud Kubernetes Service 클러스터를 작성하십시오.
  3. 네트워크가 회사 방화벽으로 보호되는 경우에는 IBM Cloud 및 IBM Cloud Kubernetes Service API 엔드포인트와 포트에 대한 액세스를 허용 하십시오. 프라이빗 클라우드 서비스 엔드포인트 전용 클러스터의 경우 클라우드 서비스 엔드포인트 서브넷에 대한 액세스를 구성해야 클러스터에 대한 연결을 테스트할 수 있습니다.
  4. ibmcloud ks cluster get -c <cluster_name_or_ID>를 실행하여 클러스터가 정상 상태인지 확인하십시오. 클러스터가 정상 상태가 아닌 경우 도움을 받으려면 클러스터 디버깅 안내서를 검토하십시오. 예를 들어, 클러스터가 방화벽 게이트웨이 어플라이언스로 보호되는 계정에서 프로비저닝되는 경우에는 방화벽 설정을 구성하여 적절한 포트 및 IP 주소로 발신 트래픽을 허용해야 합니다.
  5. 이전 단계의 클러스터 세부사항 출력에서 클러스터의 공용 또는 개인 서비스 엔드포인트 URL을 확인하십시오.
  6. 가상 사설 엔드포인트 를 통해 VPC 클러스터에 액세스할 수도 있습니다.

퍼블릭 클라우드 서비스 엔드포인트를 통해 클러스터에 액세스

클러스터에 대해 작업하려면 작성한 클러스터를 kubectl 명령을 실행하기 위한 CLI 세션의 컨텍스트로 설정하십시오.

IBM Cloud 콘솔을 대신 사용하려는 경우에는 IBM Cloud Shell의 웹 브라우저에서 직접 CLI 명령을 실행할 수 있습니다.

  1. 작성한 클러스터를 이 세션에 대한 컨텍스트로 설정하십시오. 클러스터 관련 작업을 수행할 때마다 다음 구성 단계를 완료하십시오.
    1. 클러스터에 대한 kubeconfig 구성 파일을 다운로드하여 kubeconfig의 기존 ~/.kube/config 또는 KUBECONFIG 환경 변수의 마지막 파일에 추가하십시오.
        ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID
        ```
    2. `kubectl` 명령이 올바르게 실행되고 Kubernetes 컨텍스트가 클러스터로 설정되었는지 확인하십시오.
    ```sh {: pre}
        kubectl config current-context
        ```
        출력 예
        ```sh {: screen}
        <cluster_name>/<cluster_ID>
        ```
    
  2. 기본 포트 8001로 Kubernetes 대시보드를 실행하십시오.
    1. 기본 포트 번호로 프록시를 설정하십시오.
        kubectl proxy
        ```
        ```sh {: screen}
        Starting to serve on 127.0.0.1:8001
        ```
    2. 웹 브라우저에서 다음 URL을 열어서 Kubernetes 대시보드를 보십시오.
    ```sh {: codeblock}
        http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
        ```
    
    
    

프라이빗 클라우드 서비스 엔드포인트를 통해 클러스터에 액세스

권한 부여된 클러스터 사용자가 프라이빗 클라우드 서비스 엔드포인트를 통해 VPC 또는 클래식 클러스터에 액세스할 수 있게 합니다.

개인 서비스 엔드포인트를 통해 VPC 클러스터에 액세스

모든 VPC 클러스터에는 권한이 있는 사용자가 액세스할 수 있는 비공개 서비스 엔드포인트가 있습니다. 비공개 네트워크에서만 사용할 수 있으므로 사용자는 다음 방법 중 하나를 통해 액세스해야 합니다:

  1. 캘리포니아-몬, 인-체, 인-멈 이외의 지역의 경우, VPC 클러스터의 프라이빗 서비스 엔드포인트는 IBM Cloud 또는 VPN(또는 이와 유사한)을 사용하여 IBM Cloud 에 접속하는 클라이언트에서 액세스할 수 있습니다.

    다음 옵션 중 하나를 사용하여 VPN을 통해 IBM Cloud 에 연결할 수 있습니다:

     [클라이언트-사이트 간 VPN](/docs/vpc?topic=vpc-vpn-client-to-site-overview)
    

    : 클러스터 액세스를 위한 가장 일반적인 옵션이며 설정이 매우 간단합니다. 구성 팁은 가상 사설 엔드포인트 게이트웨이를 통해 VPC 클러스터에 액세스하기를 참조하세요.

    사이트 대 사이트 VPN : 설정이 더 복잡하지만 유용할 수 있는 추가 기능이 있습니다.

    이러한 클러스터는 프라이빗 서비스 엔드포인트 URL 를 통해 c<XXX>.private.<REGION>.containers.cloud.ibm.com:XXXXX 처럼 보이는 클러스터에 액세스할 수 있습니다. 이 명령어를 사용하여 이 프라이빗 엔드포인트를 사용하는 kubeconfig 파일을 가져옵니다:

    그런 다음 아래 표시된 여러 옵션 중 하나를 사용하여 클러스터에 로그인할 수 있습니다. 연결이 완료되면 다음과 같은 방법을 사용하여 연결을 확인할 수 있습니다 ibmcloud ks get nodes

    • admin으로 로그인하십시오.

      1. 클러스터에 대한 ‘관리자 플랫폼 액세스’ 역할 이 부여되어 있는지 확인하십시오.
      2. 관리자용 kubeconfig를 다운로드합니다.
        ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --admin --endpoint private
        
    • 다음 사용자로 로그인:

      1. 현재 로그인한 사용자의 kubeconfig 파일을 다운로드하세요.
        ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --endpoint private
        
  2. 모든 지역의 모든 VPC 클러스터에 대한 비공개 서비스 엔드포인트는 해당 클러스터의 특정 가상 사설 엔드포인트(VPE) 게이트웨이를 통해 액세스할 수 있습니다. VPE 게이트웨이는 생성된 VPC 내부 또는 VPN(또는 이와 유사한 것)을 통해 특정 VPC로만 사용할 수 있습니다. 이러한 방식으로 클러스터에 연결하는 데는 두 가지 주요 옵션이 있습니다:

    • 클러스터에 대한 VPE 게이트웨이는 클러스터가 생성된 VPC에 자동으로 생성됩니다. 따라서 한 가지 옵션은 해당 VPC 내부의 시스템에서 연결하거나 VPN(또는 이와 유사한)이 연결된 시스템에서 해당 VPC로 연결하는 것입니다.
    • 다른 VPC(다른 지역 또는 다른 계정의 VPC)에서 연결하려는 경우 해당 다른 VPC에서 새 VPE 게이트웨이를 만들 수 있습니다. 그런 다음 다른 VPC에서(다른 VPC로 VPN을 사용하는 경우 포함) 새 VPE 게이트웨이를 통해 클러스터 마스터에 액세스할 수 있습니다. 이 작업을 수행하는 방법은 아래의 다른 VPC 및 계정에 추가 가상 사설 엔드포인트 게이트웨이 만들기 섹션에 나와 있습니다.
    • 이 옵션에 대한 자세한 내용은 아래의 가상 사설 엔드포인트 게이트웨이를 통해 VPC 클러스터에 액세스하기 섹션에 나와 있으며, 여기에는 kubeconfig 파일을 얻는 방법과 VPN 구성에 대한 팁이 포함되어 있습니다.

프라이빗 클라우드 서비스 엔드포인트를 통해 클래식 클러스터에 액세스

권한 부여된 사용자가 IBM Cloud 사설 네트워크에 존재하며 클래식 VPN 연결 또는 IBM Cloud Direct Link 등을 통해 연결되어 있는 경우 프라이빗 클라우드 서비스 엔드포인트를 통해 Kubernetes 마스터에 액세스할 수 있습니다. 하지만 프라이빗 클라우드 서비스 엔드포인트를 통한 Kubernetes 마스터와의 통신은 클래식 VPN 연결 또는 IBM Cloud Direct Link를 통해 라우팅할 수 없는 166.X.X.X IP 주소 범위를 통해 수행되어야 합니다. 클러스터 사용자를 위해 사설 네트워크 로드 밸런서(NLB)를 사용하여 프라이빗 클라우드 서비스 엔드포인트를 노출할 수 있습니다. 사설 NLB는 사용자가 VPN 또는 IBM Cloud Direct Link 연결을 통해 액세스할 수 있는 내부 10.X.X.X IP 주소 범위로 마스터의 프라이빗 클라우드 서비스 엔드포인트를 노출합니다. 프라이빗 클라우드 서비스 엔드포인트만 사용으로 설정하는 경우에는 Kubernetes 대시보드를 사용하거나 임시로 퍼블릭 클라우드 서비스 엔드포인트를 사용으로 설정하여 사설 NLB를 작성할 수 있습니다.

  1. 클러스터에 대한 프라이빗 클라우드 서비스 엔드포인트 URL 및 포트를 가져오십시오.

    ibmcloud ks cluster get -c <cluster_name_or_ID>
    

    이 출력 예에서 개인 서비스 엔드포인트 URLhttps://c1.private.us-east.containers.cloud.ibm.com:25073입니다.

    NAME:                           setest
    ID:                             b8dcc56743394fd19c9f3db7b990e5e3
    State:                          normal
    Status:                         healthy cluster
    Created:                        2019-04-25T16:03:34+0000
    Location:                       wdc04
    Master URL:                     https://c1.private.us-east.containers.cloud.ibm.com:25073
    Public Service Endpoint URL:    -
    Private Service Endpoint URL:   https://c1.private.us-east.containers.cloud.ibm.com:25073
    Master Location:                Washington D.C.
    ...
    
  2. kube-api-via-nlb.yaml(이)라는 YAML 파일을 작성하십시오. 이 YAML은 사설 LoadBalancer 서비스를 작성하고 이 NLB를 통해 프라이빗 클라우드 서비스 엔드포인트를 노출합니다. <private_service_endpoint_port>를 이전 단계에서 찾은 포트로 대체하십시오.

    apiVersion: v1
    kind: Service
    metadata:
      name: kube-api-via-nlb
      annotations:
        service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private
      namespace: default
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: 8080 # Or, the <private_service_endpoint_port> that you found earlier.
        targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise.
    ---
    kind: Endpoints
    apiVersion: v1
    metadata:
      name: kube-api-via-nlb
    subsets:
      - addresses:
          - ip: 172.20.0.1
        ports:
          - port: 2040
    
  3. 사설 NLB를 작성하려면 클러스터 마스터에 연결되어 있어야 합니다. VPN 또는 IBM Cloud Direct Link에서 프라이빗 클라우드 서비스 엔드포인트를 통해 연결할 수 없으므로 퍼블릭 클라우드 서비스 엔드포인트 또는 Kubernetes 대시보드를 사용하여 NLB를 작성하고 클러스터 마스터에 연결해야 합니다.

    • 프라이빗 클라우드 서비스 엔드포인트만 사용으로 설정한 경우 Kubernetes 대시보드를 사용하여 NLB를 작성할 수 있습니다. 이 대시보드는 자동으로 모든 요청을 마스터의 프라이빗 클라우드 서비스 엔드포인트로 라우팅합니다.

      1. '클러스터' 페이지에서 액세스하려는 클러스터를 클릭합니다.
      2. 클러스터 세부사항 페이지에서 Kubernetes 대시보드를 클릭하십시오.
      3. + 작성을 클릭하십시오.
      4. 양식에서 작성을 선택하고 kube-api-via-nlb.yaml 파일을 업로드한 후 업로드를 클릭하십시오.
      5. 개요 페이지에서 kube-api-via-nlb 서비스가 작성되었는지 확인하십시오. 외부 엔드포인트 열에서 10.x.x.x 주소를 기록해 두십시오. 이 IP 주소는 YAML 파일에 지정된 포트에서 Kubernetes 마스터에 대한 프라이빗 클라우드 서비스 엔드포인트를 노출합니다.
    • 퍼블릭 클라우드 서비스 엔드포인트도 사용으로 설정한 경우에는 이미 마스터에 액세스할 수 있는 상태입니다.

      1. 클러스터에 대한 kubeconfig 구성 파일을 다운로드하여 kubeconfig의 기존 ~/.kube/config 또는 KUBECONFIG 환경 변수의 마지막 파일에 추가하십시오.
        ibmcloud ks cluster config -c <cluster_name_or_ID>
        
      2. NLB 및 엔드포인트를 작성하십시오.
        kubectl apply -f kube-api-via-nlb.yaml
        
      3. kube-api-via-nlb NLB가 작성되었는지 확인하십시오. 출력에서 10.x.x.x EXTERNAL-IP 주소를 기록해 두십시오. 이 IP 주소는 YAML 파일에 지정된 포트에서 Kubernetes 마스터에 대한 프라이빗 클라우드 서비스 엔드포인트를 노출합니다.
        kubectl get svc -o wide
        
        이 출력 예제에서 Kubernetes 마스터에 대한 프라이빗 클라우드 서비스 엔드포인트의 IP 주소는 10.186.92.42입니다.
        NAME                     TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE   SELECTOR
        kube-api-via-nlb         LoadBalancer   172.21.150.118   10.186.92.42     443:32235/TCP    10m   <none>
        ...
        
  4. 사용자가 kubectl 명령을 실행하는 클라이언트 시스템에서 /etc/hosts 파일에 NLB IP 주소 및 프라이빗 클라우드 서비스 엔드포인트 URL을 추가하십시오. IP 주소 및 URL에 포트를 포함하지 말고 URL에 https://를 포함하지 마십시오.

    • macOS 및 Linux 사용자의 경우 다음 명령을 실행하십시오.
        sudo nano /etc/hosts
        ```
    * Windows 사용자의 경우 다음 명령을 실행하십시오.
    
    ```sh {: pre}
        notepad C:\Windows\System32\drivers\etc\hosts
        ```
        로컬 머신 권한에 따라, 호스트 파일을 편집하기 위해 메모장을 관리자 권한으로 실행해야 할 수도 있습니다.
    
        ```sh {: codeblock}
        10.186.92.42  c1.private.us-east.containers.cloud.ibm.com
        ```
    
  5. VPN 또는 IBM Cloud Direct Link 연결을 통해 사설 네트워크에 연결했는지 확인하십시오.

  6. 클러스터에 대한 kubeconfig 구성 파일을 다운로드하여 kubeconfig의 기존 ~/.kube/config 또는 KUBECONFIG 환경 변수의 마지막 파일에 추가하십시오.

    ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint private
    
  7. kubectl 명령이 올바르게 실행되고 Kubernetes 컨텍스트가 클러스터로 설정되었는지 확인하십시오.

    kubectl config current-context
    

    출력 예

    <cluster_name>/<cluster_ID>
    

가상 사설 엔드포인트 게이트웨이를 통해 VPC 클러스터에 액세스

가상 사설 엔드포인트 게이트웨이 는 VPC 클러스터에 대해 자동으로 작성됩니다. 클러스터가 배포된 동일한 VPC(가상 사설 클라우드)에 승인된 클러스터 사용자가 연결된 경우(예: AWS VPN ( IBM Cloud VPC )을 통해), 이 가상 사설 엔드포인트 게이트웨이를 통해 Kubernetes 마스터에 접근할 수 있습니다. 이 경우, 해당 kubeconfig 엔드포인트는 가상 사설 엔드포인트(VPE) URL 로 구성됩니다. 이는 사설 DNS 이름으로, IBM Cloud VPC 사설 DNS 서비스에서만 확인 가능합니다. IBM Cloud VPC 의 개인 DNS 서버 주소는 와 161.26.0.7 입니다 161.26.0.8.

  1. IBM Cloud VPC VPN을 설정하고 VPN을 통해 VPC에 연결하십시오.

    1. VPC에 대한 클라이언트 대 사이트 또는 사이트 대 사이트 VPN을 구성하십시오. 예를 들어, VPN 클라이언트와의 클라이언트 대 사이트 연결을 설정하도록 선택할 수 있습니다.
    2. IBM Cloud VPC 서비스에 대한 클라이언트 대 사이트 VPN의 경우, 고려사항 에 언급된 대로 VPN 서버를 프로비저닝할 때 IBM Cloud VPC 사설 DNS 서비스 주소를 지정해야 하며, 대상 161.26.0.0/16 및 조치 translate 를 사용하여 VPN 서버가 프로비저닝된 후 VPN 라우트를 작성해야 합니다.
    3. IBM Cloud VPC 서비스에 대한 사이트 간 VPN의 경우, VPN 안내서를 통해 서비스 엔드포인트에 액세스 에 따라 IBM Cloud VPC 개인용 DNS 서비스 주소를 구성하십시오.
    4. IBM Cloud VPC VPN 연결을 통해 VPC에 연결되어 있는지 확인하십시오.
  2. 클러스터에 대한 kubeconfig 구성 파일을 다운로드하여 kubeconfig의 기존 ~/.kube/config 또는 KUBECONFIG 환경 변수의 마지막 파일에 추가하십시오.

    --endpoint vpe 플래그는 <CLUSTERID>.private.<REGION>.containers.cloud.ibm.com:XXXXX URL 가 kubeconfig 파일에 사용되도록 한다.

    ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint vpe
    
  3. 1.30 이상 VPN의 kube-vpegw-<clusterID> 에 보안 그룹 규칙을 추가하십시오. 이 예제의 원격 자원은 VPN의 클라이언트 IP CIDR에서 제공됩니다. ibmcloud ks cluster get -c CLUSTER 를 실행하여 VPE 포트를 찾을 수 있습니다.

    ibmcloud is sg-rulec kube-vpegw-<clusterID> inbound tcp --port-min 30829  --port-max 30829 --remote 192.168.192.0/22
    
  4. Kubernetes 컨텍스트가 클러스터에 설정되어 있는지 확인하십시오.

    kubectl config current-context
    

    출력 예

    <cluster_name>/<cluster_ID>
    
    kubectl version
    

    출력 예

    Client Version: v1.25.3
    Kustomize Version: v4.5.7
    Server Version: v1.25.4+IKS
    

컨텍스트 기반 제한을 사용하여 클러스터 보호하기

비공개 서비스 엔드포인트 허용 목록은 더 이상 지원되지 않습니다. 비공개 서비스 엔드포인트 허용 목록에서 컨텍스트 기반 제한으로 최대한 빨리 마이그레이션하세요. 구체적인 마이그레이션 단계는 비공개 서비스 엔드포인트 허용 목록에서 컨텍스트 기반 제한(CBR)으로 마이그레이션하기를 참조하세요.

컨텍스트 기반 제한(CBR) 규칙을 사용하여 공용 및 비공개 서비스 엔드포인트에 대한 액세스를 제어하세요.

IBM Cloud IAM을 통해 사용자에게 클러스터에 대한 액세스 권한을 부여한 후에는 클러스터의 공용 및 비공개 서비스 엔드포인트에 대한 CBR 규칙을 만들어 2차 보안 계층을 추가할 수 있습니다. CBR 규칙의 서브넷에서 시작된 클러스터 마스터에 대한 승인된 요청만 허용됩니다.

클러스터가 있는 VPC가 아닌 다른 VPC로부터의 요청을 허용하려면 해당 VPC의 클라우드 서비스 엔드포인트 IP 주소를 CBR 규칙에 포함해야 합니다.

예를 들어, 클러스터의 프라이빗 클라우드 서비스 엔드포인트에 액세스하려면 VPN 또는 IBM Cloud를 통해 IBM Cloud Direct Link 클래식 네트워크 또는 VPC 네트워크에 연결해야 합니다. CBR 규칙에 VPN 또는 Direct Link 터널에 대한 서브넷만 지정하면, 조직 내 승인된 사용자만이 해당 서브넷에서 프라이빗 클라우드 서비스 엔드포인트에 액세스할 수 있도록 할 수 있습니다.

공용 CBR 규칙(클러스터에 공용 서비스 엔드포인트가 있는 경우)은 권한이 취소된 후 사용자가 클러스터에 액세스하는 것을 방지하는 데 도움이 될 수도 있습니다. 사용자가 조직을 떠나면 해당 사용자에게 클러스터에 대한 액세스를 부여하는 IBM Cloud IAM 권한을 제거합니다. 그러나 사용자가 클러스터의 관리자 kubeconfig 파일을 복사하여 해당 클러스터에 대한 액세스 권한을 부여했을 수 있습니다. 조직이 소유하고 있는 알려진 공용 서브넷에서만 클러스터 마스터에 액세스할 수 있도록 허용하는 공용 CBR 규칙이 있는 경우 다른 공용 IP 주소에서 사용자가 액세스하려는 시도가 차단됩니다.

워커 노드 서브넷은 백엔드 CBR 구현에서 자동으로 추가 및 제거되므로(CBR 규칙/영역은 제외) 워커 노드는 항상 클러스터 마스터에 액세스할 수 있으며 사용자는 자신의 CBR 규칙에 이를 특별히 추가할 필요가 없습니다.

CBR 규칙으로 클러스터를 보호하는 방법에 대해 자세히 알아보려면 컨텍스트 기반 제한으로 클러스터 리소스 보호하기컨텍스트 기반 제한 시나리오 예시를 참조하세요

다른 VPC 및 계정에 추가 가상 사설 엔드포인트 게이트웨이 만들기

해당 VPC의 클러스터를 위해 만든 VPE 게이트웨이 외에도 해당 클러스터에 대한 추가 VPE 게이트웨이를 만들어 다른 VPC, 리전 및 계정에서 사설 네트워크를 통해 액세스할 수 있도록 허용할 수 있습니다.

  • 추가 VPE 게이트웨이는 CLI 또는 API를 사용하여 만들어야 합니다. 생성 후에는 웹 UI에서 관리할 수 있습니다.

  • 교차 계정 VPE 게이트웨이의 경우 먼저 대상 계정에서 인증을 만들어야 합니다. 자세한 내용은 콘솔에서 교차 계정 VPE에 대한 서비스 권한 만들기를 참조하세요.

  • 환승 게이트웨이나 특별한 라우팅이 필요하지 않습니다. VPE 게이트웨이는 대상 클러스터로의 라우팅을 처리합니다.

다음 단계에서는 교차 계정 VPE 게이트웨이를 만드는 방법을 설명합니다.

  1. 대상 클러스터에서 필요한 정보를 가져옵니다.

    1. ibmcloud target 을 대상 계정, 지역 및 리소스 그룹으로 설정합니다.

    2. 기존 VPE 게이트웨이 정보를 가져옵니다.

        ibmcloud is endpoint-gateway iks-TARGET_CLUSTER_ID
        ```
    1. **타겟 CRN** (형식: `crn:v1:bluemix:public:containers-kubernetes:REGION:a/TARGET_ACCOUNT:TARGET_CLUSTER_ID::`)을 참고하세요.
    
    1. **서비스 엔드포인트** 호스트 이름에 유의하세요.
    
    
  2. 소스 계정에서 새 VPE 게이트웨이를 만듭니다.

    1. ibmcloud target 을 소스 계정, 지역 및 리소스 그룹으로 설정합니다.

    2. 이 계정에 VPC가 있는지 확인합니다.

        ibmcloud is vpcs
        ```
    1. VPE 게이트웨이를 생성합니다.
    
    ```sh {: pre}
        ibmcloud is endpoint-gateway-create --vpc SOURCE_VPC_NAME --target TARGET_CRN --name new-iks-TARGET_CLUSTER_ID --resource-group-name SOURCE_ACCOUNT_RESOURCE_GROUP
        ```
        `SOURCE_VPC_NAME`
        :   이전 단계의 VPC 이름입니다.
    
        `TARGET_CRN`
        :   대상 클러스터의 VPE 게이트웨이의 CRN입니다.
    
        `--name`
        :   VPE 게이트웨이의 이름입니다.
    
        `SOURCE_ACCOUNT_RESOURCE_GROUP`
        :   소스 계정의 리소스 그룹 이름입니다.
    
    1. `Could not find service` 오류가 발생하면 대상 CRN이 올바른지 확인하십시오. 올바른 경우 대상 계정에서 인증을 생성해야 합니다. [콘솔에서 ‘계정 간 VPE에 대한 서비스 권한 생성’을](/docs/vpc?topic=vpc-ordering-cross-account-endpoint-gateway&interface=ui#cross-account-vpe-prerequisite-console) 참조하십시오.
    
    
  3. VPE 게이트웨이에 예약 IP를 추가하세요.

    예약된 IP 주소를 하나 이상 추가해야 합니다. 예약 IP는 소스 VPC 서브넷에서 제공되며(영역당 최대 하나) 소스 VPC의 비공개 DNS 항목에 추가됩니다.

    1. 각 영역에 대해 예약 IP를 생성합니다.
        ibmcloud is subnet-reserved-ip-create SOURCE_VPC_SUBNET_NAME --vpc SOURCE_VPC_NAME --name ANY_NAME_YOU_CHOOSE --auto-delete true --target VPE_GATEWAY_NAME
        ```
    1. 선택 사항입니다: 보안 그룹을 추가하거나 수정합니다. 기본적으로 소스 VPC의 기본 보안 그룹만 연결됩니다. VPE 게이트웨이의 경우 보안 그룹은 인그레스 트래픽만 보호합니다. 보안 그룹이 클라이언트로부터 들어오는 모든 필수 트래픽을 허용하는지 확인하세요.
    
    
  4. 연결을 테스트하십시오.

    1. 소스 VPC의 VSI에서 원래 VPE 게이트웨이와 동일한 호스트 이름을 사용합니다. 서비스 엔드포인트 목록 또는 ibmcloud ks cluster get -c CLUSTER_NAMEVPE 게이트웨이 속성에서 찾을 수 있습니다.

    2. 연결이 제대로 작동하는지 확인합니다.

        curl -k https://CLUSTERID...:XXXXX/version
        ```
    1. 연결에 실패하면 다음을 확인하세요:
    
        * VSI 및 VPE 게이트웨이의 보안 그룹은 필요한 트래픽을 허용합니다
        * VPC ACL은 트래픽을 허용합니다
        * 대상 클러스터의 컨텍스트 기반 제한(CBR) 규칙을 통해 소스 VPC에서 발생하는 사설 트래픽을 허용합니다(소스 VPC의 세 개 `Cloud Service Endpoint source addresses` 을 사설 CBR 규칙에 추가하십시오)
    
    
    

예제: 대상 계정 명령

다음 예는 대상 계정에서 실행하여 클러스터 및 해당 VPE 게이트웨이에 대한 정보를 수집하는 명령을 보여줍니다.

  1. 올바른 계정을 타겟팅하고 있는지 확인합니다.

    ibmcloud target
    

    출력 예

    API endpoint:     https://cloud.ibm.com
    Region:           us-east
    User:             user2@example.com
    Account:          Target Account (9f8e7d6c5b4a321fedcba98765432222) <-> 2222222
    Resource group:   default
    
  2. 클러스터를 나열합니다.

    ibmcloud ks clusters
    

    출력 예

    OK
    Name                     ID                     State    Created     Workers   Location        Version                  Resource Group Name   Provider
    vpe-cross-account-test   c8m5n3p2q4x6z1w7y077   normal   1 day ago   2         Washington DC   4.19.25_1572_openshift   default               vpc-gen2
    
  3. VPE 게이트웨이 세부 정보를 확인하세요. 대상 CRN서비스 엔드포인트에 유의하세요.

    ibmcloud is endpoint-gateway iks-c8m5n3p2q4x6z1w7y077
    

    출력 예

    Getting endpoint gateway iks-c8m5n3p2q4x6z1w7y077 under account Target Account as user user2@example.com...
    ID                            r014-7a228b24-4bc4-416c-aede-7fda14e88d98   
    Name                          iks-c8m5n3p2q4x6z1w7y077
    CRN                           crn:v1:bluemix:public:is:us-east:a/9f8e7d6c5b4a321fedcba98765432222::endpoint-gateway:r014-7a228b24-4bc4-416c-aede-7fda14e88d98
    Target                        CRN      
                                  crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077::
    DNS resolution binding mode   primary   
    Target Type                   provider_cloud_service   
    Target Remote                 ID                        Name   Resource type      
                                  No target remote found.      
    VPC                           ID                                          Name      
                                  r014-464b4e54-48a8-4f6c-b10a-68edc6fd2be4   new-vpcgen2-default-sec-grp-wdc      
    Private IPs                   ID                                          Name                                   Address       Subnet ID      
                                  0757-3bd457cb-af5a-4ab6-b9bb-6e78d3eaf752   iks-useast1-c8m5n3p2q4x6z1w7y077-2e8   172.22.0.11   0757-0c981aa5-cb47-41d9-ab29-edee98b416f8
    Service Endpoints             c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com
    Lifecycle State               stable   
    Health State                  ok   
    Security groups               ID                                          Name      
                                  r014-3873358e-3180-482b-927e-abcc300ecbf8   kube-vpegw-c8m5n3p2q4x6z1w7y077
    Created                       2026-04-03T12:14:59-05:00   
    Resource Group                default
    
  4. 선택 사항입니다: 클러스터 세부 정보를 가져와서 VPE 게이트웨이를 확인합니다 URL.

    ibmcloud ks cluster get -c c8m5n3p2q4x6z1w7y077
    

    출력 예

    Retrieving cluster c8m5n3p2q4x6z1w7y077...
    OK
    Name:                           vpe-cross-account-test
    ID:                             c8m5n3p2q4x6z1w7y077
    State:                          normal
    Status:                         All Workers Normal
    Created:                        2026-04-03 11:56:38 -0500 (1 day ago)
    Resource Group ID:              950cec30388441ce809ca0d18b5ca3bc
    Resource Group Name:            default
    Pod Subnet:                     172.17.0.0/18
    Service Subnet:                 172.21.0.0/16
    Workers:                        2
    Worker Zones:                   us-east-1
    Ingress Subdomain:              vpe-cross-account-test-354226545946e7ee0a2c700f061c1661-0000.us-east.containers.appdomain.cloud
    Ingress Secret:                 vpe-cross-account-test-354226545946e7ee0a2c700f061c1661-0000
    Ingress Status:                 healthy
    Ingress Message:                All Ingress components are healthy.
    Trusted Profile ID:             -
    Public Service Endpoint URL:    https://c111-e.us-east.containers.cloud.ibm.com:31100
    Private Service Endpoint URL:   https://c111.private.us-east.containers.cloud.ibm.com:31100
    Pull Secrets:                   enabled in the default namespace
    VPCs:                           r014-464b4e54-48a8-4f6c-b10a-68edc6fd2be4
    VPE Gateway:                    https://c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com:31100
    OAuth Server URL:               https://c111-e.us-east.containers.cloud.ibm.com:31264
    Konnectivity Server URL:        https://c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com:30996
    Secure By Default Networking:   enabled
    Outbound Traffic Protection:    enabled
    Master      
    Status:     Ready (1 day ago)
    State:      deployed
    Health:     normal
    Version:    4.19.25_1572_openshift
    Location:   Washington DC
    URL:        https://c111-e.us-east.containers.cloud.ibm.com:31100
    

예시: 소스 계정 명령

다음 예는 대상 계정의 클러스터에 연결하는 VPE 게이트웨이를 만들기 위해 소스 계정에서 실행되는 명령을 보여줍니다.

  1. 올바른 소스 계정을 타겟팅하고 있는지 확인합니다.

    ibmcloud target
    

    출력 예

    API endpoint:     https://cloud.ibm.com
    Region:           us-south
    User:             user1@example.com
    Account:          Source Account (a1b2c3d4e5f6789abcdef01234561111) <-> 1111111
    Resource group:   Default
    
  2. VPC를 나열합니다.

    ibmcloud is vpcs
    

    출력 예

    Listing vpcs in resource group Default and region us-south under account Source Account as user user1@example.com...
    ID                                          Name                      Status      Classic access   Default network ACL                             Default security group                           Resource group   Health state   DNS Hub   DNS Resolver Type   
    r006-6f450c4b-c808-40e7-9de6-c61c262a2ae9   dev-ansiblepr-vpc         available   false            vendor-paradox-ravioli-tank                     harmonica-hypnoses-tranquil-alkalize             Default          ok             false     system   
    r006-bd06a98a-1183-42d2-810d-1c564eeb5f39   fvt-vpc-sdnlb-server-40   available   false            sloppy-program-venue-subsiding                  prattle-pension-wilt-recycled                    Default          ok             false     system   
    r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8   network-fvt-us-south      available   false            doorknob-baffle-quintet-poem                    spotted-sandpaper-auction-unluckily              Default          ok             false     system   
    r006-4ff93772-cee9-4d64-9d87-d8b1b781e201   network-fvt-vpc-gen2      available   false            stegosaur-reach-boxlike-alone-stranger-uncork   earplugs-preface-county-juicy-sensitize-babied   Default          ok             false     system
    
  3. 대상 계정에서 대상 CRN을 사용하여 VPE 게이트웨이를 만듭니다.

    ibmcloud is endpoint-gateway-create --vpc network-fvt-us-south --target crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077:: --name new-iks-c8m5n3p2q4x6z1w7y077 --resource-group-name Default
    

    출력 예

    Creating endpoint gateway new-iks-c8m5n3p2q4x6z1w7y077 in resource group Default under account Source Account as user user1@example.com...
    ID                            r006-2009f147-768a-4f6a-b8fa-75f20456cec2   
    Name                          new-iks-c8m5n3p2q4x6z1w7y077
    CRN                           crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2
    Target                        CRN      
                                  crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077::
    DNS resolution binding mode   primary   
    Target Type                   provider_cloud_service   
    Target Remote                 ID                        Name   Resource type      
                                  No target remote found.      
    VPC                           ID                                          Name      
                                  r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8   network-fvt-us-south      
    Private IPs                   -   
    Service Endpoints             c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com
    Lifecycle State               pending   
    Health State                  ok   
    Security groups               ID                                          Name      
                                  r006-7ae081e2-743d-4046-b755-5ca9997ae077   spotted-sandpaper-auction-unluckily      
    Created                       2026-04-04T18:17:12-05:00   
    Resource Group                Default
    
  4. 예약된 IP에 사용할 서브넷을 나열하여 식별합니다.

    ibmcloud is subnets --vpc network-fvt-us-south
    

    출력 예

    Listing subnets in resource group Default and region us-south under account Source Account as user user1@example.com...
    ID                                          Name                           Status      Subnet CIDR       Addresses   ACL                            Public Gateway                             VPC                    Zone         Resource group   
    0717-04288f84-4aef-4938-9fa7-5544a40ba258   network-fvt-us-south-1-priv    available   10.240.0.0/24     251/256     doorknob-baffle-quintet-poem   -                                          network-fvt-us-south   us-south-1   Default   
    0717-cdd4b20c-b48f-454b-b092-ad7aa14b39c8   network-fvt-us-south-1-pubgw   available   10.240.1.0/24     246/256     doorknob-baffle-quintet-poem   pgw-33eb53d0-74e4-11ee-a747-33927b3ab784   network-fvt-us-south   us-south-1   Default   
    0727-8813de08-fffa-45e3-ae67-2ba70703866e   network-fvt-us-south-2-priv    available   10.240.64.0/24    250/256     doorknob-baffle-quintet-poem   -                                          network-fvt-us-south   us-south-2   Default   
    0727-50b14707-c9f6-4f93-9f49-99de13c66161   network-fvt-us-south-2-pubgw   available   10.240.65.0/24    251/256     doorknob-baffle-quintet-poem   pgw-34fe4a70-74e4-11ee-a747-33927b3ab784   network-fvt-us-south   us-south-2   Default   
    0737-7a644374-f121-44c1-b216-5fd94c0362b2   network-fvt-us-south-3-priv    available   10.240.128.0/24   251/256     doorknob-baffle-quintet-poem   -                                          network-fvt-us-south   us-south-3   Default   
    0737-71a34942-304c-4419-9205-3714a3574962   network-fvt-us-south-3-pubgw   available   10.240.129.0/24   251/256     doorknob-baffle-quintet-poem   pgw-36088e80-74e4-11ee-a747-33927b3ab784   network-fvt-us-south   us-south-3   Default
    
  5. 첫 번째 영역에서 예약 IP를 생성하고 이를 VPE 게이트웨이에 연결합니다.

    ibmcloud is subnet-reserved-ip-create network-fvt-us-south-1-pubgw --vpc network-fvt-us-south --name reserved-ip-for-us-south-1 --auto-delete true --target new-iks-c8m5n3p2q4x6z1w7y077
    

    출력 예

    Creating reserved IP in subnet network-fvt-us-south-1-pubgw under account Source Account as user user1@example.com...
    ID                0717-685e1410-2fa1-4e7a-a4e5-27a097ec7a7a   
    Name              reserved-ip-for-us-south-1   
    Address           0.0.0.0   
    Auto delete       true   
    Owner             user   
    Created           2026-04-04T18:18:51-05:00   
    Lifecycle state   pending   
    Target            ID                                          Name                           Resource type      CRN      
                      r006-2009f147-768a-4f6a-b8fa-75f20456cec2   new-iks-c8m5n3p2q4x6z1w7y077   endpoint_gateway   crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2
    
  6. 예약된 IP가 추가되었는지 확인합니다.

    ibmcloud is eg new-iks-c8m5n3p2q4x6z1w7y077
    

    출력 예

    Getting endpoint gateway new-iks-c8m5n3p2q4x6z1w7y077 under account Source Account as user user1@example.com...
    ID                            r006-2009f147-768a-4f6a-b8fa-75f20456cec2   
    Name                          new-iks-c8m5n3p2q4x6z1w7y077
    CRN                           crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2
    Target                        CRN      
                                  crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077::
    DNS resolution binding mode   primary   
    Target Type                   provider_cloud_service   
    Target Remote                 ID                        Name   Resource type      
                                  No target remote found.      
    VPC                           ID                                          Name      
                                  r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8   network-fvt-us-south      
    Private IPs                   ID                                          Name                         Address      Subnet ID      
                                  0717-685e1410-2fa1-4e7a-a4e5-27a097ec7a7a   reserved-ip-for-us-south-1   10.240.1.5   0717-cdd4b20c-b48f-454b-b092-ad7aa14b39c8      
    Service Endpoints             c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com
    Lifecycle State               stable   
    Health State                  ok   
    Security groups               ID                                          Name      
                                  r006-7ae081e2-743d-4046-b755-5ca9997ae077   spotted-sandpaper-auction-unluckily      
    Created                       2026-04-04T18:17:12-05:00   
    Resource Group                Default
    
  7. 두 번째 영역에 예약 IP를 생성하고 VPE 게이트웨이에 연결합니다.

    ibmcloud is subnet-reserved-ip-create network-fvt-us-south-2-pubgw --vpc network-fvt-us-south --name reserved-ip-for-us-south-2 --auto-delete true --target new-iks-c8m5n3p2q4x6z1w7y077
    

    출력 예

    Creating reserved IP in subnet network-fvt-us-south-2-pubgw under account Source Account as user user1@example.com...
    ID                0727-d315d943-c501-4f69-823d-bb82a2b13b29   
    Name              reserved-ip-for-us-south-2   
    Address           0.0.0.0   
    Auto delete       true   
    Owner             user   
    Created           2026-04-04T18:19:24-05:00   
    Lifecycle state   pending   
    Target            ID                                          Name                           Resource type      CRN      
                      r006-2009f147-768a-4f6a-b8fa-75f20456cec2   new-iks-c8m5n3p2q4x6z1w7y077   endpoint_gateway   crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2
    
  8. 세 번째 영역에 예약 IP를 생성하고 이를 VPE 게이트웨이에 연결합니다.

    ibmcloud is subnet-reserved-ip-create network-fvt-us-south-3-pubgw --vpc network-fvt-us-south --name reserved-ip-for-us-south-3 --auto-delete true --target new-iks-c8m5n3p2q4x6z1w7y077
    

    출력 예

    Creating reserved IP in subnet network-fvt-us-south-3-pubgw under account Source Account as user user1@example.com...
    ID                0737-afbebd9f-02bd-4b9a-be90-5bacf9836041   
    Name              reserved-ip-for-us-south-3   
    Address           0.0.0.0   
    Auto delete       true   
    Owner             user   
    Created           2026-04-04T18:19:32-05:00   
    Lifecycle state   pending   
    Target            ID                                          Name                           Resource type      CRN      
                      r006-2009f147-768a-4f6a-b8fa-75f20456cec2   new-iks-c8m5n3p2q4x6z1w7y077   endpoint_gateway   crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2
    
  9. 예약된 IP가 모두 추가되었는지 확인합니다.

    ibmcloud is eg new-iks-c8m5n3p2q4x6z1w7y077
    

    출력 예

    Getting endpoint gateway new-iks-c8m5n3p2q4x6z1w7y077 under account Source Account as user user1@example.com...
    ID                            r006-2009f147-768a-4f6a-b8fa-75f20456cec2   
    Name                          new-iks-c8m5n3p2q4x6z1w7y077
    CRN                           crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2
    Target                        CRN      
                                  crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077::
    DNS resolution binding mode   primary   
    Target Type                   provider_cloud_service   
    Target Remote                 ID                        Name   Resource type      
                                  No target remote found.      
    VPC                           ID                                          Name      
                                  r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8   network-fvt-us-south      
    Private IPs                   ID                                          Name                         Address        Subnet ID      
                                  0737-afbebd9f-02bd-4b9a-be90-5bacf9836041   reserved-ip-for-us-south-3   10.240.129.5   0737-71a34942-304c-4419-9205-3714a3574962      
                                  0717-685e1410-2fa1-4e7a-a4e5-27a097ec7a7a   reserved-ip-for-us-south-1   10.240.1.5     0717-cdd4b20c-b48f-454b-b092-ad7aa14b39c8      
                                  0727-d315d943-c501-4f69-823d-bb82a2b13b29   reserved-ip-for-us-south-2   10.240.65.5    0727-50b14707-c9f6-4f93-9f49-99de13c66161      
    Service Endpoints             c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com
    Lifecycle State               stable   
    Health State                  ok   
    Security groups               ID                                          Name      
                                  r006-7ae081e2-743d-4046-b755-5ca9997ae077   spotted-sandpaper-auction-unluckily      
    Created                       2026-04-04T18:17:12-05:00   
    Resource Group                Default
    
  10. 소스 VPC의 VSI에서 연결을 테스트합니다.

    curl -k https://c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com:31100/version
    

    출력 예

    {
      "major": "1",
      "minor": "32",
      "gitVersion": "v1.32.12",
      "gitCommit": "9b706b45b52a0c8bb05847295ee98ffccbabba32",
      "gitTreeState": "clean",
      "buildDate": "2026-02-19T13:30:47Z",
      "goVersion": "go1.23.10 (Red Hat 1.23.10-10.el9) X:strictfipsruntime",
      "compiler": "gc",
      "platform": "linux/amd64"
    }
    
  11. 호스트 이름이 예약된 IP로 확인되는지 확인합니다.

    dig +short c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com
    

    출력 예

    10.240.65.5