방법: Hyper-V를 사용하는 Windows의 Multipass에서 영구 개인 IP

Hyper-V가 있는 Windows에서 Multipass을 사용하는 경우 MicroK8S 또는 가능한 다른 서비스를 실행할 때 인스턴스 또는 호스트를 다시 시작할 때 MicroK8S가 작동하지 않는다는 것을 알 수 있습니다.

문제는 인스턴스에 대한 인터넷 연결도 제공하는 Hyper-V의 기본 V-스위치에 의해 할당된 IP가 인스턴스에 항상 다른 IP 주소를 할당한다는 것입니다.

Kubernetes, MicroK8S, K3S와 같은 서비스는 사용되는 기본 IP가 변경되지 않을 것으로 예상합니다. IP 주소 변경 작업은 더 복잡하지만 실행 가능합니다.

Windows의 Hyper-V의 경우 사용하기 쉬운 솔루션이 있습니다. 내부 유형의 보조 V-Swith를 추가합니다. Private을 사용할 수 있지만 Multipass 및 MicroK8S를 사용하는 데 불필요한 추가 복잡성이 있습니다.

따라서 Hyper-V 관리자를 열고 V-Swith 섹션에서 예를 들어 multipass라는 새 스위치를 추가합니다. 이름은 간단하게 한 단어로 소문자로 유지하십시오. 그렇지 않다면 내가 왜 그렇게 조언하는지 나중에 이해하게 될 것입니다.

이제 새 Multipass 인스턴스를 시작하려면 네트워크 매개변수를 추가하십시오. 예시:
multipass launch -n microk8s-3 -c 2 -m 4G -d 40G --network name=multipass,mode=manual
이렇게 하면 인스턴스에서 구성을 기다리는 보조 ETH1 네트워크 인터페이스가 제공됩니다.

새로운 v-switch로 dhcpd를 수행하는 방법을 찾으려고 시도하지 마십시오. 99%의 경우 기본 기본 V-Switch, 임의 IP 주소와 동일한 동일한 상황이 발생합니다.

이제 인스턴스를 쉘하고 준비 netplan 파일을 추가하십시오.
ip l --- ETH1의 MAC 주소를 기록해 둡니다(나중에 복사하여 붙여넣을 수 있도록 메모장에 복사했습니다).
sudo nano /etc/netplan/99-multipass.yaml
다음 템플릿을 붙여넣고 요구 사항에 맞게 MAC 및 넷마스크를 포함한 IP 주소를 변경합니다.

network:
    ethernets:
        eth1:
            dhcp4: false
            match:
                macaddress: 52:54:00:d4:44:41
            set-name: eth1
            addresses: [10.0.1.1/16]
    version: 2


유일한 중요한 점은 머신이 동일한 넷마스크를 사용한다는 것입니다. 따라서 추가된 vswith는 이 경우 덤프 단순 하드웨어 네트워크 스위치와 같기 때문에 인스턴스 그룹과 다른 인스턴스 그룹이 다른 경우 ip 클래스는 중요하지 않습니다.

인스턴스에 대해 10.0.0.0/16을 사용했습니다. Pod에 대한 터널 네트워크가 없는 일부 실험의 경우 Microk8s는 10.1.0.0/16을 수행하고 Hetzner에서 이 설정을 사설 네트워크 및 kubernetes용 hetzner ccm을 사용하여 자동 경로 생성과 일치시킵니다. (이것은 또 다른 주제이지만 Hyper-V를 사용하여 Hetzner Cloud를 로컬에서 복제하고 비용 없이 실험할 수 있었습니다.)
MicroK8S 외부의 다른 프로젝트에서는 다른 IP 주소 클래스를 사용합니다.

운영:sudo netplan apply
이렇게 하면 CLI가 정지됩니다. 몇 분 동안 그대로 두면 CMD 프롬프트로 돌아가거나 참을성이 없으면 현재 Windows 터미널 탭을 닫고 다른 탭을 열고 인스턴스에서 다시 쉘을 엽니다. 지금 테스트:
ip a를 실행하면 ETH1이 구성되어 있는 것을 볼 수 있습니다.

즐기다!

https://www.madalin.me/devops/2022/250/multipass-permanent-ip-private-network-hyperv-windows.html에 원래 게시됨

좋은 웹페이지 즐겨찾기