Application Load Balancer for VPC 설정
클러스터의 Kubernetes LoadBalancer
서비스를 설정하여 공용 또는 사설 네트워크에 앱을 노출합니다. 앱을 노출하면 요청을 앱으로 라우팅하는 Application Load Balancer for VPC (VPC ALB)가 클러스터 외부의 VPC에 자동으로 작성됩니다. 그런 다음 선택적으로 DNS 레코드 및 TLS 인증서를 사용하여 VPC ALB를 등록할 수 있습니다. VPC ALB는 TCP 프로토콜만 지원합니다.
Application Load Balancer for VPC를 Red Hat OpenShift on IBM Cloud Ingress 애플리케이션 로드 밸런서와 혼동하지 마십시오. Application Load Balancers for VPC(VPC ALB)는 VPC에 있는 클러스터의 외부에서 실행되며 작성된 Kubernetes LoadBalancer
서비스에 의해 구성됩니다. Ingress 애플리케이션 로드 밸런서(ALB)는
클러스터에 있는 작업자 노드에서 실행되는 Ingress 제어기입니다.
공용 또는 사설 VPC ALB 설정
시작하기 전에
- VPC ALB에 대한 Kubernetes
LoadBalancer
서비스를 배포하는 네임스페이스에 대해 작성자 또는 관리자 IBM Cloud IAM 서비스 액세스 권한이 있는지 확인합니다. - Red Hat OpenShift 클러스터에 액세스하십시오.
- VPC ALB를 보려면
infrastructure-service
플러그인을 설치하십시오. 명령을 실행하기 위한 접두부는ibmcloud is
입니다.ibmcloud plugin install infrastructure-service
앱에서 공개 또는 비공개 요청을 받도록 설정하려면 다음과 같이 하세요:
-
클러스터에 앱을 배치하십시오. 배치 구성 파일의 메타데이터 섹션에서 레이블을 추가했는지 확인하십시오. 이 사용자 정의 레이블은 앱이 실행되는 모든 팟(Pod)을 식별하여 로드 밸런싱에 포함시킵니다.
-
Kubernetes
LoadBalancer
서비스의 구성 YAML 파일을 작성하십시오. YAML 파일에서service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type
어노테이션을"public"
또는"private"
로 지정합니다. 예제 파일의annotations
섹션에는 사용 가능한 일부 주석만 포함되어 있습니다. 필수 및 선택적 VPC ALB 주석의 전체 목록은 주석 및 사양 에서 확인할 수 있습니다.VPC ALB를 쉽게 식별할 수 있게 하려면
<app_name>-vpc-alb-<VPC_zone>
형식으로 서비스 이름을 지정하는 것이 좋습니다.apiVersion: v1 kind: Service metadata: name: myloadbalancer annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "`<app_name>-vpc-alb-<VPC_zone>`" service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol" service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "<public_or_private>" service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector: "<key>=<value>" spec: type: LoadBalancer selector: <selector_key>: <selector_value> ports: - name: http protocol: TCP port: 8080 targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. - name: https protocol: TCP port: 443 targetPort: 443 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. externalTrafficPolicy: Local # Specify Local or Cluster.
-
클러스터에 Kubernetes
LoadBalancer
서비스를 작성하십시오.oc apply -f myloadbalancer.yaml -n <namespace>
-
클러스터에서 Kubernetes
LoadBalancer
서비스가 작성되었는지 확인하십시오. 서비스가 작성되면 LoadBalancer Ingress 필드는 VPC ALB가 지정하는 호스트 이름으로 채워집니다.VPC에서 VPC ALB를 프로비저닝하는 데 수 분이 소요됩니다. VPC ALB가 완전히 프로비저닝될 때까지 Kubernetes
LoadBalancer
서비스의 호스트 이름을 사용하여 앱에 액세스할 수 없습니다.oc describe svc myloadbalancer -n <namespace>
공용
LoadBalancer
서비스의 CLI 출력 예:NAME: myvpcalb Namespace: default Labels: <none> Annotations: Selector: app=echo-server Type: LoadBalancer IP: 172.21.XX.XX LoadBalancer Ingress: 1234abcd-us-south.lb.appdomain.cloud Port: tcp-80 80/TCP TargetPort: 8080/TCP NodePort: tcp-80 30610/TCP Endpoints: 172.17.17.133:8080,172.17.22.68:8080,172.17.34.18:8080 + 3 more... Session Affinity: None External Traffic Policy: Local HealthCheck NodePort: 31438 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal EnsuringLoadBalancer 16m service-controller Ensuring load balancer Normal EnsuredLoadBalancer 15m service-controller Ensured load balancer Normal CloudVPCLoadBalancerNormalEvent 13m ibm-cloud-provider Event on cloud load balancer myvpcalb for service default/myvpcalb with UID 08cbacf0-2c93-4186-84b6-c4ab88a2faf9: The VPC load balancer that routes requests to this Kubernetes LoadBalancer service is currently online/active.
-
VPC에 VPC ALB가 작성되었는지 확인하십시오. 출력에서 VPC ALB의 운영 상태가
online
이고 프로비저닝 상태가active
인지 확인하십시오.ibmcloud is load-balancers
다음 CLI 출력 예에서는
kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306
으로 이름 지정된 VPC ALB가 KubernetesLoadBalancer
서비스에 대해 작성되었습니다.ID Name Family Subnets Is public Provision status Operating status Resource group r006-d044af9b-92bf-4047-8f77-a7b86efcb923 kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306 Application mysubnet-us-south-3 true active online default
-
공용
LoadBalancer
서비스를 작성한 경우, 4단계에서 찾은 VPC ALB가 지정한 KubernetesLoadBalancer
서비스의 호스트 이름에 대해 curl을 실행하십시오. 예:curl 06496f64-us-south.lb.appdomain.cloud:8080
출력 예
Hello world from hello-world-deployment-5fd7787c79-sl9hn! Your app is up and running in a cluster!
사설
LoadBalancer
서비스를 작성한 경우, 사설 VPC 네트워크에 연결하여 호스트 이름을 curl해야 합니다.
클러스터 작성 중에, 또는 구역에서 작업자 노드를 추가할 때 클러스터에 연결한 서브넷을 삭제하지 마십시오. 클러스터에서 사용한 VPC 서브넷을 삭제하면 서브넷의 IP 주소를 사용하는 로드 밸런서에 문제가 발생하고 새 로드 밸런서를 작성하지 못할 수 있습니다.
Kubernetes 또는 OpenShift 클러스터에 연결되지 않은 VPC ALB 및 NLB는 'ibmcloud is' 명령 또는 콘솔의 VPC 인프라 섹션을 사용하여 직접 업데이트할 수 있습니다. 예를 들어 프런트엔드 리스너의 포트 또는 상태 확인 시간 초과 값을 변경할 수 있습니다. 그러나 Kubernetes 또는 OpenShift 클러스터에 연결된 VPC 로드 밸런서의 경우, 해당 클러스터에 대한 업데이트는 인그레스 구성의 어노테이션을 통해 수행해야 합니다. IBM Cloud 공급자는 실행 중인 로드 밸런서가 인그레스의 예상 구성에 부합하는지 확인하기 위해 연결된 모든 VPC ALB 및 NLB와 주기적으로 다시 동기화합니다. 따라서 인그레스 어노테이션을 사용하는 대신 VPC를 통해 직접 로드 밸런서를 변경하면 해당 변경 사항이 다시 되돌려집니다.
DNS 레코드 및 TLS 인증서 등록
Application Load Balancer for VPC(VPC ALB)는 앱에 액세스하는 데 사용할 수 있는 1234abcd-<region>.lb.appdomain.cloud
형식의 기본 HTTP 호스트 이름을 제공합니다. 그러나 앱 도메인에 대한 TLS 인증서가 HTTPS를 지원하도록 하려는 경우에는 공용 및 사설 VPC ALB 모두에 대해 IBM 제공 하위 도메인을 작성하거나 사용자 정의
도메인을 사용할 수 있습니다.
VPC ALB 호스트 이름에 대한 DNS 하위 도메인을 작성한 후에는 nlb-dns health-monitor
명령을 사용하여 사용자 정의 상태 검사를 작성할 수 없습니다. 대신 기본 VPC ALB 호스트 이름에 대해 제공되는 기본 VPC 로드 밸런서 상태 확인이 사용됩니다. 자세한 정보는 VPC 문서를 참조하십시오.
시작하기 전에
- VPC ALB를 설정하십시오. VPC ALB를 구성하는 Kubernetes
LoadBalancer
서비스에서 HTTP 포트를 정의했는지 확인하십시오. - HTTPS를 통해 앱에 액세스하는 데 TLS 인증서를 사용하려면 앱이 TLS 연결을 종료할 수 있어야 합니다.
DNS 하위 도메인에 VPC ALB 호스트 이름을 등록하려면 다음 작업을 수행하십시오.
-
get svc
명령을 실행하여 VPC ALB의 호스트 이름을 검색하십시오. 출력의 EXTERNAL-IP 열에서 호스트 이름을 찾으십시오. 예:1234abcd-us-south.lb.appdomain.cloud
.oc get svc -o wide
출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR ... webserver-lb LoadBalancer 172.21.xxx.xxx 1234abcd-us-south.lb.appdomain.cloud 8080:30532/TCP 1d run=webserver
-
로드 밸런서 호스트 이름에 대해 사용자 정의 또는 IBM 제공 DNS 서브도메인을 작성하십시오.
-
사용자 지정 도메인: 사용자 지정 도메인을 제공하고 CNAME(표준 이름 레코드) 형식(
1234abcd-us-south.lb.appdomain.cloud
)으로 로드 밸런서 외부 IP를 지정하여 별칭을 지정합니다.- DNS(Domain Name Service) 제공자 또는 IBM Cloud DNS를 통해 사용자 정의 도메인을 등록하십시오.
- 로드 밸런서 외부 IP를 CNAME(정식 이름 레코드)로 지정하여 사용자 지정 도메인의 별칭을 정의합니다. 다음 예제에서는 외부 IP가
1234abcd-us-south.lb.appdomain.cloud
인 로드 밸런서에www.your-custom-domain.com
로 연결할 수 있습니다.
- 호스트/서비스
- 앱에 도달하려는 접두사(예:
www
)를 입력합니다. - 리소스 유형
CNAME
을(를) 선택하십시오.- TTL
- 라이브 시간을 선택합니다.
- 값/대상
- 앞서 검색한 LoadBalancer 외부 IP입니다. 예:
1234abcd-us-south.lb.appdomain.cloud.
. IBM Cloud DNS를 사용하는 경우 후행 마침표를 입력해야 합니다.
-
IBM 제공 하위 도메인: VPC ALB 호스트 이름에 대한 TLS 인증서로 하위 도메인을 생성하려면
nlb-dns
명령을 사용하십시오. IBM Cloud는 사용자 대신 하위 도메인의 와일드카드 TLS 인증서를 생성 및 유지보수합니다.- DNS 하위 도메인 및 TLS 인증서를 작성하십시오.
ibmcloud oc nlb-dns create vpc-gen2 --cluster <cluster_name_or_id> --lb-host <vpc_lb_hostname> --type (public|private)
- 하위 도메인이 작성되었는지 확인하십시오. 자세한 정보는 하위 도메인 포맷 이해를 참조하십시오.
출력 예ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>
Subdomain Load Balancer Hostname Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["1234abcd-us-south.lb.appdomain.cloud"] None created <certificate>
- DNS 하위 도메인 및 TLS 인증서를 작성하십시오.
-
-
퍼블릭 VPC ALB의 하위 도메인을 만든 경우 웹 브라우저를 열고
www.your-custom-domain.com
과 같은 하위 도메인을 통해 앱에 액세스하려면 URL 을 입력합니다. 사설 VPC ALB의 하위 도메인을 작성한 경우에는 하위 도메인에 대한 액세스를 테스트하려면 사설 VPC 네트워크에 연결되어 있어야 합니다.
HTTPS를 통해 앱에 액세스하는 데 SSL 인증서를 사용하려면 Kubernetes LoadBalancer
서비스에서 HTTPS 포트를 정의했는지 확인하십시오. curl -v --insecure https://<domain>
을 실행하여 HTTPS 포트를 통해 요청이 올바르게 라우팅되는지 확인할 수 있습니다. 서비스에 HTTPS
포트가 열려 있지 않다는 연결 오류가 표시됩니다. 또한 앱을 사용하여 TLS 연결을 종료할 수 있는지 확인하십시오. curl -v https://<domain>
을 행하여 앱이 TLS를 올바르게 종료하는지 확인할 수 있습니다. 앱이 TLS 연결을 올바르게 종료하지 않는다는 인증서 오류가 표시됩니다.
사설 VPC ALB에 대한 사설 DNS 레코드 등록하기
버전 4.15 이상에서는 다음 선택적 어노테이션을 사용하여 사용자 지정 DNS instance
를 제공하는 자체 DNS zone
를 비공개 VPC ALB에 연결할 수 있습니다. 이를 위해서는 두 가지 선택적 어노테이션을 모두 설정해야 합니다. 지정하지 않으면 이 로드 밸런서의 A
속성에 대한 DNS hostname
레코드가 공용 DNS
영역 lb.appdomain.cloud
에 추가됩니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "private-dns-crn"
- 이 부하 분산 장치와 연결할 DNS
instance
. 지정된 인스턴스는 IAM 정책에 따라 다른 지역 또는 계정에 있을 수 있습니다. 가능한 값입니다: 9 ≤ 길이 ≤ 512 service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "dns-zone-id"
- 이 부하 분산 장치와 연결할 DNS
zone
. 지정된 영역은 IAM 정책에 따라 다른 지역 또는 계정에 있을 수 있습니다. 가능한 값: 1 ≤ 길이 ≤ 128, 값은 정규식 [1]*[a-z0-9]$와 일치해야 합니다
이 기능을 사용하려면 사전 요구 사항으로 다음을 수행해야 합니다:
- 로드밸런서에 바인딩할 수 있는 DNS 영역 만들기
- VPC LB와 DNS Services 간에 서비스 간 인증을 사용하도록 설정합니다
- 영역의 허용된 네트워크에 클러스터의 VPC를 추가합니다
자세한 내용은 애플리케이션 로드 밸런서를 IBM Cloud DNS Services 및 VPC를 DNS 영역에 허용된 네트워크로 추가하기 문서를 참조하세요.
예:
apiVersion: v1
kind: Service
metadata:
name: myloadbalancer
annotations:
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer"
service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "crn:v1:bluemix:public:dns-svcs:global:a/bb1b52262f7441a586f49068482f1e60:f761b566-030a-4696-8649-cc9d09889e88::"
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "d66662cc-aa23-4fe1-9987-858487a61f45"
spec:
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: 169.60.115.164
...
주석 및 사양
필수 및 선택 사항인 VPC ALB 주석 및 사양을 검토하세요.
필수 주석 및 사양
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "alb"
- 어노테이션을 사용하여 VPC ALB를 생성합니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features
을 포함하지 않으면 기본적으로 VPC ALB가 프로비저닝됩니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
- (비공개 VPC ALB에 필요) 공개 또는 비공개 요청을 수락하는 서비스를 지정하는 주석입니다. 이 어노테이션이 포함되지 않으면 공개 VPC ALB가 생성됩니다.
externalTrafficPolicy
Cluster
을 지정하여 앱 파드가 포함된 워커 노드로 요청을 전달합니다. 이 작업자 노드는 다른 영역에 있을 수 있습니다. 기본적으로 이 어노테이션은Cluster
로 설정되어 있습니다.- 수신 트래픽이 다른 노드로 포워딩되지 않도록 하려면
Local
을 지정하세요. 이 옵션은 HTTP 상태 확인도 구성합니다. - VPC ALB에 원래 클라이언트 소스 IP를 사용하려면
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol"
어노테이션을 사용하여 PROXY 프로토콜을 활성화해야 합니다.
선택적 주석 및 사양
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name
- VPC 부하 분산 장치를 영구적으로 사용할 수 있도록 고유 이름을 포함하세요. 영구 VPC 로드 밸런서는 소속된 클러스터가 삭제되어도 삭제되지 않습니다. 자세한 내용은 퍼시스턴트 VPC 로드 밸런서 를 참조하세요. 이 어노테이션은 로드 밸런서를 생성할 때만 설정할 수 있습니다. 업데이트 작업에는 사용할 수 없습니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol"
- 프록시 프로토콜을 사용으로 설정하십시오. 로드 밸런서는 요청 헤더의 클라이언트 IP 주소, 프록시 서버 IP 주소 및 두 포트 번호를 포함한 클라이언트 연결 정보를 백엔드 앱에 전달합니다. 백엔드 앱이 PROXY 프로토콜을 허용하도록 구성되어야 합니다. 예를 들어 다음 단계에 따라 PROXY 프로토콜을 수락하도록 NGINX 앱을 구성할 수 있습니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone
- 클러스터가 연결된 VPC 구역을 지정하는 어노테이션입니다. 이 주석에서 영역을 지정하면 두 가지 프로세스가 발생합니다: (1) 작업자 노드가 연결된 해당 영역의 동일한 서브넷에 VPC ALB가 배포되고, (2) 이 영역에 있는 클러스터의 작업자 노드만 VPC ALB로부터 트래픽을 수신하도록 구성됩니다. 특정 구역에 로드 밸런서를 배치하려면 로드 밸런서를 작성하는 이 어노테이션을 지정해야 합니다. 나중에 이 어노테이션을 다른
영역으로 변경하면 수신 및 백엔드 워커 노드가 새 영역과 일치하도록 자동으로 업데이트됩니다.
dedicated: edge
레이블이 워커 노드에 설정되어 있고 이 어노테이션을 지정하면 지정된 영역의 에지 노드만 트래픽을 수신하도록 구성됩니다. 다른 구역의 에지 노드 및 지정된 구역의 에지가 아닌 노드는 로드 밸런서에서 트래픽을 수신하지 않습니다. 구역을 보려면ibmcloud ks zone ls --provider vpc-gen2
를 실행하십시오. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets
- 어노테이션 - VPC ALB 서비스가 배포할 하나 이상의 서브넷을 지정하는 주석입니다. 지정된 경우 이 어노테이션은
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone
어노테이션보다 우선합니다. 이 주석이 없으면 클러스터가 단일 영역 영역에서 다중 영역으로 또는 그 반대로 업데이트되는 경우 클러스터의 영역과 일치하도록 VPC ALB가 배포하는 서브넷이 자동으로 업데이트됩니다. 동일한 VPC에서 클러스터가 연결된 서브넷과 다른 서브넷을 지정할 수 있다는 점을 참고하십시오. 이 경우 VPC ALB는 동일한 VPC의 다른 서브넷에 배치되지만 VPC ALB는 여전히 동일한 구역에 있는 클러스터 서브넷의 작업자 노드에 트래픽을 라우팅할 수 있습니다. 모든 리소스 그룹의 서브넷을 보려면ibmcloud oc subnets --provider vpc-gen2 --vpc-id <vpc> --zone <zone>
을 실행하십시오. 이 어노테이션은 기존 VPC ALB에 추가하거나 수정할 수 있습니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector
- 작업자 노드 레이블 선택기를 지정하는 어노테이션입니다. 레이블 선택기 키를 지정하여 클러스터의 특정 워커 노드가 트래픽을 수신하도록 구성할 수 있습니다. 주석에는 하나의 레이블 선택자만 포함할 수 있으며, 선택자는
"key=value"
형식으로 지정해야 합니다. 이 어노테이션이 지정되지 않으면 클러스터의 모든 작업자 노드가 VPC ALB로부터 트래픽을 수신하도록 구성됩니다. 이 어노테이션은service.kubernetes.io/ibm-load-balancer-cloud-provider-zone
어노테이션보다 우선하며, 워커 노드의dedicated: edge
레이블은 무시됩니다. 특정 영역으로 트래픽을 제한하려면 이 어노테이션을 사용하여 해당 영역의 워커 노드를 지정할 수 있습니다. 클러스터 워커 노드에 새 레이블을 설정한다고 해서 자동으로 트래픽을 수신하도록 워커 노드가 구성되는 것은 아니며, 새로 레이블이 지정된 워커 노드가 트래픽을 수신하려면 VPC ALB를 다시 만들거나 업데이트해야 합니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol
- Kubernetes 로드밸런서 서비스와 연결된 VPC 로드밸런서 리소스에 대한 상태 확인 프로토콜입니다. 사용 가능한 옵션은
http
,https
또는tcp
입니다. 일반적으로 VPC LB 상태 확인 프로토콜은 Kubernetes 로드 밸런서 서비스 사양의externalTrafficPolicy
설정 값에 따라 결정되지만 이 주석은 해당 논리를 재정의합니다. 이 주석은 Kubernetes, 특히 kube-proxy가externalTrafficPolicy
의 다양한 설정과 관련하여 동작하는 방식을 변경하지 않습니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-port
- 상태 확인에 사용되는 TCP 포트입니다. 이 주석은
ibm-load-balancer-cloud-provider-vpc-health-check-protocol
도 지정된 경우에만 적용됩니다. - 클러스터에서 기본값으로 보안 이 실행되지 않는 경우, 적용되는 VPC 보안 그룹을 다음과 같이 수정해야 할 수 있습니다. 클러스터에서 기본적으로 보안을 실행하는 경우 이러한 변경 사항이 자동으로 적용됩니다.
-
- 지정된 TCP 포트가 Kubernetes 노드 포트 범위(30,000-32,767)를 벗어난 경우, 클러스터 워커 노드에 적용된 VPC 보안 그룹이 modified 여야 포트의 인바운드 트래픽을 허용할 수 있습니다.
-
- 이 어노테이션이 VPC ALB와 연결된 Kubernetes 로드밸런서 서비스에 적용되는 경우, 지정된 TCP 포트로의 아웃바운드 트래픽을 허용하려면 VPC ALB에 할당된 보안 그룹의 아웃바운드 규칙이 modified 여야 합니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-path
- HTTP 및 HTTP 상태 확인을 위한 상태 확인 URL 경로입니다. 이 주석은
ibm-load-balancer-cloud-provider-vpc-health-check-protocol
이http
또는https
으로 설정된 경우에만 적용됩니다. URL 경로는 원본 양식 요청 대상의 형식이어야 합니다. 이 어노테이션을 지정하지 않고ibm-load-balancer-cloud-provider-vpc-health-check-protocol
어노테이션이http
또는https
로 설정되어 있으면 기본값인/
이 적용됩니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-delay
- 상태 확인 시도 사이에 대기할 시간(초)입니다. 기본적으로 이 값은
5
로 설정되어 있으며 최소2
에서 최대60
입니다. 이 값은 기본적으로ibm-load-balancer-cloud-provider-vpc-health-check-timeout
로 설정된2
값보다 커야 합니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-timeout
- 상태 확인에 대한 응답을 기다리는 시간(초)입니다. 기본적으로 이 값은
2
로 설정되어 있으며 최소1
에서 최대59
입니다. 이 값은 기본적으로ibm-load-balancer-cloud-provider-vpc-health-check-delay
로 설정된5
보다 작아야 합니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-retries
- VPC 로드 밸런서에 대한 최대 상태 확인 재시도 횟수입니다. 기본적으로 이 값은
2
로 설정되어 있으며 최소1
에서 최대10
입니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-idle-connection-timeout
- 리스너의 유휴 연결 제한시간(초 단위)입니다. 기본 유휴 시간 제한은 계정 설정에 따라 다릅니다. 일반적으로 이 값은
50
입니다. 그러나 일부 허용 목록에 있는 계정의 경우 시간 초과 설정이 더 큽니다. 어노테이션을 설정하지 않으면 로드 밸런서는 계정의 시간 초과 설정을 사용합니다. 이 어노테이션을 설정하여 명시적으로 시간 초과를 지정할 수 있습니다. 최소값은50
입니다. 최대값은7200
입니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name: "example-ingress-domain.<region>.containers.appdomain.cloud"
- 버전 4.17 이상.
- 로드밸런서의 IP 주소를 지정된 접속 도메인 에 등록합니다. 지정한 도메인이 존재하지 않으면 내부 IBM 관리 공급업체(
akamai
)를 사용하는 도메인이 만들어집니다. 새 도메인을 만들려면 클러스터에 있는 도메인뿐만 아니라 모든 기존 도메인에서 고유한 이름이어야 합니다. 로드 밸런서 서비스를 삭제하면 도메인에서 IP 주소가 제거됩니다. 그러나 주석을 제거해도 도메인에서 IP 주소가 제거되지는 않습니다. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "private-dns-crn"
- 버전 4.15 이상.
- 이 부하 분산 장치와 연결할 DNS
instance
. 자세한 내용은 비공개 DNS 레코드 등록하기 를 참조하세요. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "dns-zone-id"
- 버전 4.15 이상.
- 이 부하 분산 장치와 연결할 DNS
zone
. 자세한 내용은 비공개 DNS 레코드 등록하기 를 참조하세요. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-member-quota
- 로드밸런서가 라우팅하는 영역당 작업자 노드 수입니다. 기본값은 8입니다. 3개의 영역에 워커 노드가 있는 클러스터의 경우, 이렇게 하면 로드 밸런서가 총 24개의 워커 노드로 라우팅하게 됩니다. 로드 밸런서가 라우팅하는 모든 영역의 총 작업자 노드 수는 50개를 초과할 수 없습니다. 클러스터의 워커 노드가 모든 영역에 걸쳐 50개 미만인 경우, 0을 지정하여 영역의 모든 워커 노드로 라우팅합니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-security-group
- 버전 1.30 이상.
- VPC 부하 분산 장치에 추가할 고객 관리형 보안 그룹입니다. IBM 보안 그룹을 사용하지 않으려면 사용자가 소유하고 관리하는 보안 그룹을 지정하세요. 이 옵션은 IBM 보안 그룹을 제거하고 사용자가 지정한 보안 그룹으로 대체합니다. 기존 로드 밸런서에서 주석을 제거하면 추가한 보안 그룹이 IBM 보안 그룹으로 대체됩니다. 이 주석은 언제든지 추가하거나 제거할 수 있습니다. 보안 그룹을 관리하고 최신 상태로 유지할 책임은 회원님에게 있습니다.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-allow-outbound-traffic
- 기본적으로 보안 설정 을 실행하는 클러스터에 사용할 수 있습니다. 지정한 외부 포트와 연결된 ALB의 각 IP 주소에 대해 보안 그룹을 만드는 주석입니다. 이러한 규칙은 클러스터 보안 그룹에 생성되며 VPC ALB IP 주소가 변경되면 자동으로 업데이트됩니다. 쉼표로 구분된 목록에 유효한
외부 포트를 지정합니다(예:
80,443
). 이 예에서 각 외부 포트 값과 연결된 각 공개 ALB에 두 개의 IP 주소가 있는 경우 IP 주소당 하나의 아웃바운드 규칙이 생성되어 총 4개의 새 규칙이 만들어집니다. 이 주석은 언제든지 추가하거나 제거할 수 있습니다. selector
- 앱 배치 YAML의
spec.template.metadata.labels
섹션에서 사용한 레이블 키(<selector_key>
) 및 값(<selector_value>
)입니다. 이 사용자 정의 레이블은 앱이 실행되는 모든 팟(Pod)을 식별하여 로드 밸런싱에 포함시킵니다. port
- 서비스가 청취하는 포트입니다.
targetPort
- 서비스가 트래픽을 지정하는 대상 포트입니다. 파드에서 실행 중인 애플리케이션은 이 대상 포트에서 들어오는 TCP 트래픽을 수신 대기 중이어야 합니다. 대상 포트는 애플리케이션 포드에서 실행 중인 이미지에 정적으로 정의되는 경우가 많습니다. 파드에 구성된 대상 포트는 서비스의 노드 포트와 다르며 VPC LB에 구성된 외부 포트와도 다를 수 있습니다.
-
a-z0-9- ↩︎