마지막에는 서비스를 생성 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.yaml
svc.yaml을 업데이트하여 이런 종류의 작업을 수행하는 경향이 있습니다 .type: LoadBalancer
kubectl 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"}}'