윈도우에서 ubuntu multipass 를 사용하여 ubuntu 4 대 (k3s master 1개, node 3개) 를 설치한다.

 

mutipass 의 경우 hyper-v(권장) 를 사용하므로 윈도우 재부팅시마다 IP 가 변경되므로 2가지 방법을 사용할 수 있다.

방법2를 사용하였다.

  • 방법1. 네트워크를 추가 및 ubuntu 설정에 고정 IP 설정 (설정 방법은 글 하단에 기록한다.)
  • 방법2. C:\Windows\System32\drivers\etc\host.ics 에 등록된 도메인을 사용하여 통신한다. (윈도우 재시작시마다 변경된 IP 정보가 갱신된다.)

 

 

 

# multipass 로 ubuntu 설치 (on windows)
https://multipass.run/

# ubuntu 설치
multipass launch -n k3s-master -c 2 -m 2G -d 20G impish
multipass launch -n k3s-node1 -c 2 -m 2G -d 20G impish
multipass launch -n k3s-node2 -c 2 -m 2G -d 20G impish
multipass launch -n k3s-node3 -c 2 -m 2G -d 20G impish

# ubuntu 구동 확인
multipass ls

# ubuntu swapoff
multipass exec k3s-master -- /bin/bash -c "sudo swapoff -a"
multipass exec k3s-node1 -- /bin/bash -c "sudo swapoff -a"
multipass exec k3s-node2 -- /bin/bash -c "sudo swapoff -a"
multipass exec k3s-node3 -- /bin/bash -c "sudo swapoff -a"

multipass exec k3s-master -- /bin/bash -c "free -m"
multipass exec k3s-node1 -- /bin/bash -c "free -m"
multipass exec k3s-node2 -- /bin/bash -c "free -m"
multipass exec k3s-node3 -- /bin/bash -c "free -m"

# 도메인 확인
C:\Windows\System32\drivers\etc\host.ics 에 등록된 각 ubuntu 주소를 사용한다.

# k3s 마스터 설치
# https://rancher.com/docs/k3s/latest/en/quick-start/
multipass exec k3s-master -- /bin/bash -c "curl -sfL https://get.k3s.io | sh -"

# k3s 마스터 토큰 정보 조회
multipass exec k3s-master -- /bin/bash -c "sudo cat /var/lib/rancher/k3s/server/node-token"

# k3s 노드 설치 - node1, 2, 3
# multipass exec k3s-node1 -- /bin/bash -c "curl -sfL https://get.k3s.io | K3S_TOKEN=\"<토큰 정보>\" K3S_URL=https://<마스터 노드 IP>:6443 sh -"
multipass exec k3s-node1 -- /bin/bash -c "curl -sfL https://get.k3s.io | K3S_TOKEN=K10c9bdcda4f8d25fc78c40ab5663939f2afda0891cdb34130cb930be9025cdc7f9::server:b66b233891f92e47feea3e30477fb72e K3S_URL=https://k3s-master.mshome.net:6443 sh -"
multipass exec k3s-node2 -- /bin/bash -c "curl -sfL https://get.k3s.io | K3S_TOKEN=K10c9bdcda4f8d25fc78c40ab5663939f2afda0891cdb34130cb930be9025cdc7f9::server:b66b233891f92e47feea3e30477fb72e K3S_URL=https://k3s-master.mshome.net:6443 sh -"
multipass exec k3s-node3 -- /bin/bash -c "curl -sfL https://get.k3s.io | K3S_TOKEN=K10c9bdcda4f8d25fc78c40ab5663939f2afda0891cdb34130cb930be9025cdc7f9::server:b66b233891f92e47feea3e30477fb72e K3S_URL=https://k3s-master.mshome.net:6443 sh -"


# 관리 PC - 마스터 설정 복사
multipass exec k3s-master -- /bin/bash -c "sudo cp /etc/rancher/k3s/k3s.yaml /home/ubuntu/k3s.yaml"
multipass exec k3s-master -- /bin/bash -c "sudo chown ubuntu.ubuntu /home/ubuntu/k3s.yaml"
multipass transfer k3s-master:/home/ubuntu/k3s.yaml c:\
multipass exec k3s-master -- /bin/bash -c "sudo rm -rf /home/ubuntu/k3s.yaml"

# ~/.kube/config 은 확장자 없는 파일이다.
md ~/.kube -ea 0
Move-item -Path 'c:/k3s.yaml' -destination '~/.kube/config' -force

# k3s.yaml 파일 마스터 ip 수정
cd ~/.kube
notepad config
    server: https://k3s-master.mshome.net:6443

# 관리 PC - kubectl 설치
# https://kubernetes.io/ko/docs/tasks/tools/

# 관리 PC - kubectl 체크
kubectl get nodes

# k9s 설치
# https://k9scli.io/
choco install -y k9s

# ubuntu 시작/중지
# multipass start k3s-master k3s-node1 k3s-node2 k3s-node3
# multipass stop k3s-master k3s-node1 k3s-node2 k3s-node3

 

 

 

 

 

 

 

네트워크를 추가 및 ubuntu 설정에 고정 IP 설정 방법

hyper-v 는 윈도우 재시작 마다 "vEthernet (Default Switch)" 의 ip 가 변경되므로

multipass 의 ubuntu ip 가 매번 변경되기 때문에 IP 를 고정하기 위한 방법이다.

 

관리자 권한 파워쉘에서 실행.

# 고정된 스위치와 인터넷 통신을 위한 NAT 를 생성한다. 172.16.0.1/16
New-VMSwitch -SwitchName "MySwitch" -SwitchType Internal
New-NetIPAddress -IPAddress 172.16.0.1 -PrefixLength 16 -InterfaceAlias "vEthernet (MySwitch)"
New-NetNat -Name "NATNetwork" -InternalIPInterfaceAddressPrefix "172.16.0.1/16"

# mutipass launch 시 network 를 추가한다.
multipass launch -n k3s-master -c 2 -m 2G -d 20G --network name=MySwitch impish

# ubuntu 접속
multipass shell k3s-master

 

 

# 50-cloud-init.yaml 에 고정 아이피를 설정한다.

sudo su
vi /etc/netplan/50-cloud-init.yaml

-- 기존

network:
    ethernets:
        default:
            dhcp4: true
            match:
                macaddress: 52:54:00:0f:3c:3f
        extra0:
            dhcp4: true
            dhcp4-overrides:
                route-metric: 200
            match:
                macaddress: 52:54:00:6c:aa:ef
            optional: true
    version: 2


 


-- 수정

network:
    ethernets:
        default:
            dhcp4: true
            match:
                macaddress: 52:54:00:0f:3c:3f
        extra0:
            dhcp4: no
            dhcp4-overrides:
                route-metric: 200
            match:
                macaddress: 52:54:00:6c:aa:ef
            optional: true
            addresses: 
                - 172.16.0.2/24
            routes:
                - to: default
                  via: 172.16.0.1
            nameservers:
              addresses: [8.8.8.8,168.126.63.1]
    version: 2


 


# 설정 적용
netplan apply


# netplan apply 시 실제 콘솔에선 먹통이 되므로
# 다른 powershell 에서 호가인해보면 ip 가 추가로 적용된 것을 알 수 있다. 
PS C:\WINDOWS\system32> multipass ls
Name                    State             IPv4             Image
k3s-master              Running           172.20.46.226    Ubuntu 21.10
                                          172.16.0.2

# 설정 확인 (ubuntu 명령)
ip addr
ip route
nslookup google.com

 

 

'가지가지' 카테고리의 다른 글

git - 부모 브랜치 조회  (0) 2023.01.02
redis sentinel. master 정보 확인  (0) 2022.12.02
[kubernetes] deployment, service 테스트  (0) 2022.05.18
[kubernetes] CLI 명령어  (0) 2022.05.18
powershell 원격 PC 파일 복사  (0) 2021.10.26
docker, docker-compose 설치 on ubuntu  (0) 2021.03.12
logstash grok sample  (0) 2020.03.10
tcpdump  (0) 2020.03.03