프라이빗 클라우드 서비스 엔드포인트를 통해 클래식 클러스터에 액세스
프라이빗 클라우드 서비스 엔드포인트만 활성화된 IBM Cloud Kubernetes Service 클래식 클러스터의 경우, 클러스터에 액세스하려면 프라이빗 NLB를 통해 마스터 엔드포인트를 노출하고 VPN 연결을 통해 IBM Cloud 클래식 프라이빗 네트워크에 연결해야 합니다.
시작하기 전에
- 필요한 CLI 도구를 설치하십시오.
- xml-ph-0000@deepl.internal 클래식 사설 네트워크에 Virtual Private Network (VPN) for VPCIBM Cloud 클래식 프라이빗 네트워크에 대한 연결을 설정합니다.
- 클러스터 상태가 정상인지 확인하세요:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID.
비공개 NLB를 통해 마스터 엔드포인트 노출하기
사설 네트워크를 통해 클러스터 마스터에 연결하려면, 먼저 사설 NLB를 통해 사설 클라우드 서비스 엔드포인트를 공개해야 합니다.
-
클러스터에 대한 프라이빗 클라우드 서비스 엔드포인트 URL 및 포트를 가져오십시오.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID이 출력 예에서 개인 서비스 엔드포인트 URL은
https://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. ... -
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 -
사설 NLB를 작성하려면 클러스터 마스터에 연결되어 있어야 합니다. 아직 VPN이나 IBM Cloud Direct Link 를 통해 프라이빗 클라우드 서비스 엔드포인트에 연결할 수 없으므로, 퍼블릭 클라우드 서비스 엔드포인트나 대시보드를 사용하여 클러스터 마스터에 연결한 후 NLB를 생성해야 합니다.
-
프라이빗 클라우드 서비스 엔드포인트만 활성화한 경우, Headlamp 대시보드를 사용하여 NLB를 생성할 수 있습니다. Headlamp은 모든 요청을 마스터의 프라이빗 클라우드 서비스 엔드포인트로 전달합니다.
- '클러스터' 페이지에서 액세스하려는 클러스터를 클릭합니다.
- Ingress 하위 도메인을 확인하세요:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID | grep "Ingress Subdomain". - 브라우저에서
https://headlamp.<ingress_subdomain>을 열고, 로그인한 후 + > YAML 업로드로 이동합니다. kube-api-via-nlb.yaml파일을 업로드한 후 ‘적용’을 클릭하세요.- ‘네트워크 > 서비스’로 이동하여 ‘
kube-api-via-nlb’ 서비스가 생성되었는지 확인하고, ‘10.x.x.x’의 외부 IP 주소를 기록해 둡니다. 이 IP 주소는 YAML 파일에 지정된 포트에서 Kubernetes 마스터에 대한 프라이빗 클라우드 서비스 엔드포인트를 노출합니다.
-
퍼블릭 클라우드 서비스 엔드포인트도 사용으로 설정한 경우에는 이미 마스터에 액세스할 수 있는 상태입니다.
- 클러스터에 대한
kubeconfig구성 파일을 다운로드하여kubeconfig의 기존~/.kube/config또는KUBECONFIG환경 변수의 마지막 파일에 추가하십시오.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID - NLB 및 엔드포인트를 작성하십시오.
kubectl apply -f kube-api-via-nlb.yaml kube-api-via-nlbNLB가 작성되었는지 확인하십시오. 출력에서10.x.x.xEXTERNAL-IP 주소를 기록해 두십시오. 이 IP 주소는 YAML 파일에 지정된 포트에서 Kubernetes 마스터에 대한 프라이빗 클라우드 서비스 엔드포인트를 노출합니다.
이 출력 예제에서 Kubernetes 마스터에 대한 프라이빗 클라우드 서비스 엔드포인트의 IP 주소는kubectl get svc -o wide10.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> ...
- 클러스터에 대한
-
-
사용자가
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 ``` -
VPN 또는 IBM Cloud Direct Link 연결을 통해 사설 네트워크에 연결했는지 확인하십시오.
-
클러스터에 대한
kubeconfig구성 파일을 다운로드하여kubeconfig의 기존~/.kube/config또는KUBECONFIG환경 변수의 마지막 파일에 추가하십시오.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --endpoint private -
kubectl명령이 올바르게 실행되고 Kubernetes 컨텍스트가 클러스터로 설정되었는지 확인하십시오.kubectl config current-context출력 예
<cluster_name>/<cluster_ID>