HTTPS 포트를 열려면 Kubernetes 인스턴스 템플릿 변경
나는 구글 컨테이너 엔진(GKE)에서 웹 앱을 호스팅하기 위해 NodePort를 사용하고 있었다. 값비싼 Google 로드 밸런서 대신 도메인을 노드 IP 주소로 직접 가리킬 수 있습니다. 안타깝게도 인스턴스는 기본적으로 차단된 HTTP 포트로 생성되며 업데이트가 수동으로 잠겨 노드를 변경합니다. 이제 및 인스턴스 그룹/및 불변 인스턴스 템플릿을 사용하여 생성됩니다.
노드에서 포트 443을 열어야 하는데, 쿠버네티스 또는 GCE에서 어떻게 합니까? 가급적이면 업데이트에 내성이 있는 방식입니다.
관련 github 질문:
Kubernetes 노드에서 포트 443을 사용하는 것은 표준 방법이 아닙니다. 만약 당신이 당신을 보고 기본값이 에 있는 큐벳 옵션을 본다면, 당신은 그것을 혹은 다른 것으로 바꿀 수 있다. 아래의 모든 포트는 로 제한됩니다.
요약하자면, Kubernetes 서비스를 포트에서 실행하는 것은 좋은 생각/실천이 아닙니다. 더 일반적인 시나리오는 서비스의 NodePort로 트래픽을 보내는 외부 nginx/haproxy 프록시입니다. 말씀하신 또 다른 옵션은 클라우드 로드 밸런서를 사용하는 것이지만 비용 때문에 이 옵션을 사용하지 않는 것이 좋습니다.
노드가 자체적으로 파괴 및 재생성될 수 있는 경우 포트 트래픽을 새 노드로 전환하는 경로 조정을 처리하는 로드 밸런서가 없는 운영 환경에서 특정 서비스를 안정적으로 사용할 수 있다고 어떻게 확신하십니까
2023-06-23 업데이트
Google이 노드 풀에 네트워크 태그를 추가할 수 있는 기능을 추가했습니다... 이제 http-server, https-server를 직접 추가할 수 있으며 예상대로 작동합니다.
업데이트: 노드 포트가 있는 디몬 세트가 포트 열기를 처리할 수 있습니다. nginx/k8s-ingress는 443에 사용자 지정 방화벽 규칙에 의해 노출되는 노드 포트를 가지고 있습니다. 기본 규칙을 사용하지 않기 때문에 GCE UI에 "HTTPS 트래픽 허용"이 선택된 상태로 표시되지 않습니다.
클라우드 SDK를 사용하여 GUI Google Cloud Console에서 수행하는 모든 작업을 Google Cloud Shell을 통해 가장 쉽게 수행할 수 있습니다. 다음은 실행 중인 인스턴스에 네트워크 태그를 추가하는 명령입니다. GUI가 이 기능을 비활성화했지만 이 기능은 작동합니다
gcloud compute instances add-tags gke-clusty-pool-0-7696af58-52nf --zone=us-central1-b --tags https-server,http-server
이것은 베타에서도 작동하며, 이는 잠시 동안 계속 작동해야 한다는 것을 의미한다. 이를 자동화하는 방법에 대한 예는 를 참조하십시오. 다운타임이 감지되면 웹 훅에서 실행하는 것을 고려해 보십시오. 분명히 이것들 중 어느 것도 이상적이지 않다.
또는 템플릿 자체를 변경할 수 있습니다. 이 방법을 사용하면 시작을 새 노드에 추가할 수도 있습니다. 이를 통해 라운드 로빈의 낮은 다운타임 동적 DNS에 대해 새 IP 주소로 웹 훅을 실행하는 것과 같은 작업을 수행할 수 있습니다.
출처(그는 반대의 문제를 가지고 있었고, 그의 문제는 우리의 해결책이다):
'개발하자' 카테고리의 다른 글
클러스터 IP 서비스가 있고 기본 nginx가 있는 kubernetes 수신 컨트롤러가 예상대로 작동하지 않음 (0) | 2023.06.26 |
---|---|
축소자와 유형 스크립트 결합에서 "유형 인수를 'ReduersMapObject' 유형의 매개 변수에 할당할 수 없습니다." 오류를 반환합니다 (0) | 2023.06.26 |
Python을 사용하여 PDF에서 고해상도 이미지 추출 (0) | 2023.06.25 |
gitlab에서 kubernetes 배포 상태 가져오기 (0) | 2023.06.24 |
쿠베르네테스: kubectl 구성에서 클러스터와 컨텍스트를 삭제하려면 어떻게 해야 합니까? (0) | 2023.06.23 |