23.3. GCP 외부 로드 밸런서를 서비스로 사용
LoadBalancer
서비스를 사용하여 외부에서 서비스를 노출하여 GCP 로드 밸런서를 사용하도록 OpenShift Container Platform을 구성할 수 있습니다. OpenShift Container Platform은 GCP에 로드 밸런서를 생성하고 필요한 방화벽 규칙을 생성합니다.
절차
새 애플리케이션을 생성합니다.
$ oc new-app openshift/hello-openshift
로드 밸런서 서비스를 노출합니다.
$ oc expose dc hello-openshift --name='hello-openshift-external' --type='LoadBalancer'
이 명령은 다음 예와 유사한
LoadBalancer
서비스를 생성합니다.apiVersion: v1 kind: Service metadata: labels: app: hello-openshift name: hello-openshift-external spec: externalTrafficPolicy: Cluster ports: - name: port-1 nodePort: 30714 port: 8080 protocol: TCP targetPort: 8080 - name: port-2 nodePort: 30122 port: 8888 protocol: TCP targetPort: 8888 selector: app: hello-openshift deploymentconfig: hello-openshift sessionAffinity: None type: LoadBalancer
서비스가 생성되었는지 확인하려면 다음을 수행하십시오.
$ oc get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-openshift ClusterIP 172.30.62.10 <none> 8080/TCP,8888/TCP 20m hello-openshift-external LoadBalancer 172.30.147.214 35.230.97.224 8080:31521/TCP,8888:30843/TCP 19m
LoadBalancer
유형 및 외부 IP 값은 서비스에서 애플리케이션을 노출하기 위해 GCP 로드 밸런서를 사용하고 있음을 나타냅니다.
OpenShift Container Platform은 다음과 같은 GCP 인프라에 필요한 오브젝트를 생성합니다.
방화벽 규칙:
$ gcloud compute firewall-rules list | grep k8s k8s-4612931a3a47c204-node-http-hc my-net INGRESS 1000 tcp:10256 k8s-fw-a1a8afaa7762811e88c5242010af0000 my-net INGRESS 1000 tcp:8080,tcp:8888
참고이러한 방화벽 규칙은
<openshift_gcp_prefix>ocp
태그가 지정된 인스턴스에 적용됩니다. 예를 들어openshift_gcp_prefix
매개변수 값이 mycluster로 설정된 경우mycluster
ocp상태 점검:
$ gcloud compute http-health-checks list | grep k8s k8s-4612931a3a47c204-node 10256 /healthz
로드 밸런서:
$ gcloud compute target-pools list | grep k8s a1a8afaa7762811e88c5242010af0000 us-west1 NONE k8s-4612931a3a47c204-node $ gcloud compute forwarding-rules list | grep a1a8afaa7762811e88c5242010af0000 a1a8afaa7762811e88c5242010af0000 us-west1 35.230.97.224 TCP us-west1/targetPools/a1a8afaa7762811e88c5242010af0000
로드 밸런서가 올바르게 구성되었는지 확인하려면 외부 호스트에서 다음 명령을 실행합니다.
$ curl 35.230.97.224:8080 Hello OpenShift!