macOS에서 테스트하기 위해 로컬 Kubernetes 클러스터를 설정하고 싶습니다. 내가 선택한microk8s캐노니컬 제공. Kubernetes는 macOS에서 기본적으로 실행되지 않지만 다음에서 제공하는 Linux VM을 사용합니다.멀티패스.
설치가 원활하게 진행되었으며 배포가 완료되었습니다.쿠버네티스 부트캠프효과가 있었던 것 같았습니다. 이것은 지금까지 얻은 결과입니다.
microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 5h9m
kubernetes-bootcamp NodePort 10.152.183.226 <none> 8080:31004/TCP 4h10m
multipass list
Name State IPv4 Image
microk8s-vm Running 192.168.64.2 Ubuntu 18.04 LTS
인스턴스를 핑하면 ping 192.168.64.2
예상대로 작동합니다.
업데이트: VM 내부에 nginx를 설치하여 연결성을 추가로 테스트했습니다. curl http://192.168.64.2
VM 내부에서 nginx 시작 페이지를 사용하면 macOS에 표시됩니다.
이제 를 사용하여 VM에 쉘을 설치하면 다음 두 가지를 모두 사용하여 예상대로 배포된 서비스에 들어갈 multipass exec microk8s-vm -- bash
수 있습니다 .curl
curl http://127.0.0.1:31004
curl http://10.152.183.226:8080
예상되는 결과 얻기:
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-57978f5f5d-d977w | v=1
그러나 macOS(컬 및 브라우저 모두)에서 이러한 URL에 액세스하는 단계가 누락되었습니다. 시도했지만 실패했습니다.
curl http://10.152.183.226:8080
curl http://10.152.183.226:31004
curl http://192.168.64.2:8080
curl http://192.168.64.2:31004
macOS 호스트에서 실행 중인 서비스에 액세스할 수 있도록 하는 단계가 분명히 누락되었습니다. 내가 놓친 게 무엇입니까? 도움을 주시면 대단히 감사하겠습니다!
답변1
192.168.64.2는 호스트 전용 네트워크처럼 보이며 내부 호스트 전용 네트워크일 수도 있습니다. Mac 터미널에서 192.168.64.2를 ping할 수 있습니까? 멀티패스는 기본적으로 네트워크의 NAT로 설정되어 있으며 멀티패스 1.6까지는 이를 브리지로 변경할 수 있는 옵션을 제공하지 않습니다. 현재로서는 소스일 뿐입니다. 를 입력하면 1.5가 표시됩니다 multipass --version
.
어쨌든 ssh를 사용하여 멀티패스 포트를 Mac 호스트로 전달하면 이 문제를 해결할 수 있습니다. multipass shell
기본이 기본인 멀티패스 셸 AKA에서 . ssh 포트 전달 명령을 백그라운드에서 실행하려면 추가 하고, Mac과 동일한 네트워크에 있는 다른 호스트의 연결을 허용하려면 추가하세요. Mac에서 SSH를 사용할 수 없는 경우 Mac 설정의 공유 제어판에서 사용자 이름에 대해 원격 액세스를 활성화하거나 SSH 로그인(Ssh 서버)만 활성화하세요.ssh -R 8080 -R 31004 [email protected]
-f
-g