Tanzu Kubernetes 클러스터에서 외부 로드 밸런서를 프로비저닝하기 위해 LoadBalancer 유형의 서비스를 생성할 수 있습니다. 로드 밸런서 서비스는 공용 IP 주소를 노출합니다. 외부 로드 밸런서의 트래픽은 클러스터 포드에서 리디렉션할 수 있습니다.

서비스로 노출된 Kubernetes 포드에 대한 외부 로드 밸런서를 프로비저닝할 수 있습니다. 예를 들어 Nginx 컨테이너를 배포하고 LoadBalancer 유형의 Kubernetes 서비스로 노출할 수 있습니다.

사전 요구 사항

프로시저

  1. 기본 권한이 있는 PSP에 적절한 역할 바인딩을 생성합니다. 포드 보안 정책에 대한 역할 바인딩 예의 내용을 참조하십시오.
  2. 다음 nginx-lbsvc.yaml YAML 파일을 생성합니다.
    이 YAML 파일은 LoadBalancer 유형의 Kubernetes 서비스를 정의하고 서비스에 대한 외부 로드 밸런서로 Nginx 컨테이너를 배포합니다.
    kind: Service
    apiVersion: v1
    metadata:
      name: srvclb-ngnx
    spec:
      selector:
        app: hello
        tier: frontend
      ports:
      - protocol: "TCP"
        port: 80
        targetPort: 80
      type: LoadBalancer
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: loadbalancer
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
            tier: frontend
        spec:
          containers:
          - name: nginx
            image: "nginxdemos/hello"
    
  3. YAML을 적용합니다.
    kubectl apply -f nginx-lbsvc.yaml
  4. Nginx 서비스의 배포를 확인합니다.
    kubectl get services
    srvclb-ngnx는 외부 및 내부 IP 주소를 사용하여 작동합니다.
    NAME          TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    srvclb-ngnx   LoadBalancer   10.11.12.19      10.19.15.89     80:30818/TCP   18m
    
  5. 브라우저를 사용하여 Nginx LoadBalancer 서비스의 외부 IP 주소를 입력합니다.
    로드 밸런서의 세부 정보 및 NGINX 배너 메시지가 보입니다.