기존 서비스에 LoadBalancer 추가

기존 서비스에 LoadBalancer 추가

이 방명록 튜토리얼을 따르세요..

마지막에는 서비스를 생성 LoadBalancer하거나 할당하는 방법에 대해 설명합니다. NodePorts그들은 참조이 문서다양한 유형과 그 기능을 설명하지만 서비스에 적용하는 방법에 대해서는 자세히 설명하지 않습니다. 실행 중인 서비스를 업데이트하고 로드 밸런서를 생성하여 지정된 포트에 연결하는 방법이 있습니까?

Amazon Web Services를 사용하여 클러스터를 호스팅하면 서비스 생성 시 로드 밸런서를 훌륭하게 지원하지만 서비스를 수정하는 방법을 잘 모르겠습니다.

편집하다:

이를 시도하면 오류가 발생했습니다.

$ kubectl visible service frontend --port=80 --type=LoadBalancer
서버의 오류: 서비스 "프런트엔드"가 이미 존재합니다.

답변1

꽤 혼란스럽긴 하지만 kubectl expose새로운 서비스만 생성할 수 있고 기존 서비스를 업데이트할 수는 없는 것 같습니다. 이는 기존 서비스에서 실행할 때 --name발생한 충돌을 피하기 위해 새 서비스의 원하는 이름을 지정하는 플래그를 전달해야 한다고 말합니다.

kubectl patch현재 서비스를 업데이트하려면 또는 중 하나를 사용할 수 있어야 합니다 kubectl update. 아마도 최적의 접근 방식은 아닐 수도 있지만 저는 개인적으로 를 실행하고 원하는 대로( 이 경우에는) kubectl get svc svc-name -o yaml > svc.yamlsvc.yaml을 업데이트하여 이런 종류의 작업을 수행하는 경향이 있습니다 .type: LoadBalancerkubectl update -f svc.yaml

답변2

이것이 귀하의 경우에 적합한지 확실하지 않지만 보다 근본적이고 간단한 접근 방식은 서비스를 삭제하는 것입니다(배포는 삭제하지 않음).

kubectl delete service 'service-name'

배포를 LoadBalancer로 다시 노출합니다.

kubectl expose deployment/'deployment-name' --type="LoadBalancer"

답변3

다음 중 하나를 수행할 수 있습니다.

  • kubectl edit <SERVICE_NAME>편집기에서 대화형으로 유형을 "LoadBalancer"로 수정
  • 하나의 명령으로kubectl patch <SERVICE_NAME> -p '{"spec":{"type":"LoadBalancer"}}'

관련 정보