[Tanzu] HTTP communication could not be completed with status 404

이미 널리 알려진 문제로서, William Lam이 비공식 해결 방법을 공개한지 꽤 되었다.

HTTP communication could not be completed with status 404

이 문제는 현재의 vSphere 7.0.2 최신 버전에서도 여전히 발생하므로 배포 시 숙지해두어야 한다. 서로 다른 사이트에 Tanzu를 4번 배포해보았는데, VMware Learning Platfom 제외하고 모두 같은 문제가 발생하였다. 수시로 편히 참조할 수 있도록 필요한 부분만 간단히 정리하였다.

원인

쿠버네티스는 배포 시에 wcpsvc.yaml에 구성된 내용을 참조한다. Tanzu 배포 시에 Controller Virtual Machine (이하 CM)은 vCenter에서 커스터마이즈한 경로를 통해 배포하고, 야믈을 참조하지 않도록 주석처리 되어 있다. 그런데 기존 커스터마이즈 HTTPS 통신 허용에 문제가 있다.

vCenter는 443과 8443의 HTTPS 인바운드 포트를 제공하는데, 8443이 ESXi에서 아웃바운드 목적지 포트로 허용되어 있지 않아 vCenter의 8443 포트를 통해 CVM을 내려받을 수 없다.

문제해결

Tanzu 배포 시에 wcpsvc.yaml을 먼저 참조하므로, kubevm에 통신 허용이 되어 있는 경로를 통해 CVM을 배포하도록 구성하여 문제를 회피함이 Willam Lam의 문제해결 골자다.

CVM 배포 시 사용되는 경로를 443 포트 서비스 경로에 심볼릭 링크를 연결하여 ESXi의 방화벽 문제를 우회하고 wcpsvc.yaml에 해당 경로를 명시한다. 과정은 하기와 같다.

wcpagent 디렉터리를 vCenter 443 웹 서비스 경로에 심볼릭 링크를 연결
심볼릭 링크하여 서비스 중인 443 경로를 kubevm에 명시


게시됨

카테고리

작성자

댓글

“[Tanzu] HTTP communication could not be completed with status 404”에 대한 5개의 응답

  1. 숑파파 아바타
    숑파파

    안녕하세요. 탄주 배포과정에서 404 에러가 발생해서 검색중에 블로그에 글남기신거 보고 진행을 했봤는데요. 정상 배포 후 apiserver에 통신이 되지않아 클러스터를 지우고 다시 배표 해 보니 또 404 에러가 발생하네요…. 혹시 이런 경우에는 어떻게 처리해야 할지 조언 부탁드려도 될까요?

    1. FoW 아바타
      FoW

      정상 배포되었다다고 하셨으나 혹여나 싶어 여쭙습니다. wcpsvc.yaml 수정할 때 “kubevm:” 앞의 해시태그까지 2개를 지워준것이 맞는지요?
      안타깝게도 제 경우는 해당 야믈 수정하고서 배포 문제가 재발하지 않았습니다.
      404는 경로를 찾을 수 없다는 에러이므로, 만약 랩 환경이 아닌 업무 환경여서 ESXi가 vCenter와 다른 네트워크에 있다면, 스위치 단 방화벽도 고려해볼만 해보입니다.

      1. 숑파파 아바타
        숑파파

        응답 주셔서 감사합니다. 환경은 사내 테스트 환경이라 방화벽이 따로 없는 환경입니다. 앞의 해시태그까지 지워준거 맞는데 배포가 되다 안되다 해서 esxi의 방화벽을 내리고 테스트하니 배포는 잘 되어 일단 이렇게 테스트 중 입니다. haproxy를 이용하여 배포 테스트 중인데 haproxy의 lb ip에 192.200.0.41/29로 세팅 하고 tanzu 클러스터 배포 시 lb ip를 192.200.0.41-192.200.0.48로 세팅하여 배포하면 배포 성공하고 Control Plane Node IP Address에 192.200.0.41로 표시 되는데 192.200.0.41로 ping도 가지 않고 namespace 생성 후 Link to CLI Tools 로 연결도 되지않네요… haproxy 배포시 default 세팅으로 하였고 mgmt 네트워크는 192.200.0.0/24 대역이고 워크로드는 192.200.1.0/24 대역입니다. 무슨 문제일까요?

        1. FoW 아바타
          FoW

          지금 즈음 이미 해결하셨으려나 싶습니다만, 저는 NSX-T 환경에서만 배포하였으며 HAProxy는 배포 경험이 없네요.
          NSX-T 연동 구축 시, Ingress CIDR로의 접근은 백본 L3 Router와 NSX-T 간 맺어놓은 iBGP를 통해 자동화하여 (Ctonrol Plane VM 아이피로의 32비트 라우트 경로 생성 통해) 별 이슈 없이 접속하였습니다.

          1. 숑파파 아바타
            숑파파

            다른업무로 오랫만에 확인했습니다^^
            mgmt와 workload 네트웍간에 라우팅이 안되어 있었어 배포에러가 계속 나는거 였습니다. haproxy 이용해서 인프라 정상 배포 되었습니다.
            mgmt, workload 두개의 네트워크만 생성 해서 배포 했습니다.
            댓글 감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다