사전 설치 : Kubevirt, cdi, rook-ceph(file-Storage 대체 가능)
1. 네임스페이스 limit-range 생성
- 컨테이너 형식으로 생성되는 vm은 호스트 os의 커널을 공유한다.
- 모든 자원을 독점 사용으로 인하여, 모든 서비스에 영향을 미칠 수 있으므로 해당 namespace의 자원을 제한한다.
---
apiVersion: v1
kind: LimitRange
metadata:
name: piracoon-limit-range
namespace: piracoon
spec:
limits:
- default:
cpu: 4
memory: 4Gi
defaultRequest:
cpu: 3
memory: 512Mi
type: Container
---
2. loadBalancer 생성
- windows vm을 생성한다면 포트는 3389로 설정한다. (원격 데스크탑 연결 시도 시, 3389포트 사용)
- linux vm을 생성한다면 포트는 22로 설정한다. (default ssh 22포트 사용)
- selector는 이후 생성하는 vm에 명시를 해줘야 해당 externalIP로 접근이 가능하다.
- LoadBalancer를 설정해 주지 않았다면 NodePort로 지정해도 좋다.
---
apiVersion: v1
kind: Service
metadata:
name: windows-lb
namespace: piracoon
spec:
selector:
piracoonlb: lb
ports:
- protocol: TCP
port: 3389
targetPort: 3389
type: LoadBalancer
---
3. 데이터 볼륨 생성
- 호스트 os의 커널을 공유하기 때문에 ISO 파일로 설치하는 과정과 다르다.
- 데이터 볼륨을 생성을 해줘야 부팅을 할 수 있는 스토리지가 생성된다.
- 이때, 지정한 크기의 2배 저장공간이 확보가 되어야 한다.
---
apiVersion: cdi.kubevirt.io/v1alpha1
kind: DataVolume
metadata:
name: dv-windows
namespace: piracoon
spec:
source:
registry:
url: "docker://xxx.xxx.xxx.81:5000/vm/windows_server:2012r2"
pvc:
storageClassName: rook-ceph-block
reclaimPolicy:
- Delete
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
---
4. vm 생성
---
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
name: vm-windows
namespace: piracoon
spec:
running: true
template:
metadata:
labels:
lbtest: lb
spec:
hostname: master
domain:
machine:
type: q35
devices:
disks:
- disk:
bus: virtio
name: rootdisk
- cdrom:
bus: sata
readonly: true
name: cloudinitdisk
interfaces:
- name: default
model: virtio
bridge: {}
cpu:
cores: 4
memory:
guest: 4Gi
resources:
overcommitGuestOverhead: false
requests:
cpu: 3500m
memory: 4Gi
limits:
cpu: 4500m
memory: 5Gi
terminationGracePeriodSeconds: 0
networks:
- name: default
pod: {}
volumes:
- name: rootdisk
persistentVolumeClaim:
claimName: dv-windows
- name: cloudinitdisk
cloudInitConfigDrive:
userData: |
#ps1_sysnative
NET USER piracoon "Qwer12345" /ADD
NET LOCALGROUP "Administrators" "piracoon" /add
---
'Cloud > MSA' 카테고리의 다른 글
[Sonatype Nexus] Kubernetes Deployment 배포 (0) | 2021.04.23 |
---|---|
[WordPress] Kubernetes Deployment 배포 (0) | 2021.04.22 |
[Kubevirt] Windows VM VNC(TigerVNC, VNC Viewer) 사용 (0) | 2021.01.28 |
[Kubevirt] Windows VM VNC(Xming) 사용-2 (0) | 2021.01.26 |
[Kubevirt] Windows VM VNC(Xming) 사용-1 (0) | 2021.01.26 |