23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
아래의 내용으로 AKS로 쿠버네티스 시작하기를 진행하였다.
AKS에서 CI/CD가 가능한 환경 구성을 실무를 진행하면서 완성할 수 있었다.
매주 2시간 정도씩 투입하여 프로젝트에 직접 적용하여 애플리케이션 배포까지 모두 가능하게 되었다.
AKS 내에 서비스를 배포하는 단계까지 완성하여 최적화와 병행해서 다양한 활용 사례를 발굴해 보기로 하였다.
k8s로 VM을 제공할 수 있다. KubeVirt는 쿠버네티스 클러스터 위에 가상화 레이어를 제공하는 오픈소스 프로젝트이다.
< 출처: https://da-nika.tistory.com/187>
장점을 생각해 보면 아래와 같다.
1. 인프라와 분리된 별도의 컴포넌트
Kubernetes 클러스터와 별도의 컴포넌트로, 기존 클러스터 인프라에 구애를 받지 않습니다.
2. 리소스 공유를 통한 절감
쿠버네티스 노드의 CPU와 메모리를 공유하여 VM이 사용합니다. 노드는 물리 호스트나 클라우드의 파드로 제공될 수 있습니다.
3. 표준화 VM
CRD와 API를 통해 VM을 표준화하고 관리할 수 있습니다. 유저는 새로운 VM 인스턴스를 정의하고 관리하는 것에 집중할 수 있습니다.
4. 확장성과 가용성
KubeVirt VM은 쿠버네티스 클러스터의 확장성과 가용성을 누릴 수 있습니다. 노드가 추가되거나 변경되더라도 VM은 계속 사용할 수 있습니다.
5. 생명주기 관리
CRD와 컨트롤러를 통해 VM의 전체 생명주기를 관리합니다. 유저는 쉽게 VM을 생성, 업데이트, 삭제하고 스냅샷을 다룰 수 있습니다.
https://github.com/kubevirt/kubevirt/releases/tag/v0.59.2
KubeVirt를 설치하기 위해 KubeVirt GitHub 저장소에서 YAML 파일을 다운로드합니다. : operator와 CR
wget https://github.com/kubevirt/kubevirt/releases/download/v0.59.2/kubevirt-operator.yamlwget https://github.com/kubevirt/kubevirt/releases/download/v0.59.2/kubevirt-cr.yaml- 다운로드시 적절한 버전을 선택하여 다운로드 : 최신 버전에 대한 정보는 KubeVirt GitHub 저장소를 확인
설치 : 다운로드한 yaml파일을 적용하여 설치합니다. 다운로드한 YAML 파일을 적용하여 KubeVirt를 설치합니다.
kubectl apply -f kubevirt-operator.yamlkubectl apply -f kubevirt-cr.yaml- 위의 예시는 KubeVirt 버전 0.59.2을 다운로드하는 것입니다. 적절한 버전을 선택하여 다운로드 해야 합니다.
대기시간
KubeVirt 설치가 완료될 때까지 몇 분(약 4분)이 걸릴 수 있습니다.
설치 상태 확인
kubectl get kubevirt -n kubevirt설치가 완료되면 KubeVirt가 실행 중인지 확인할 수 있습니다.
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: testvm
spec:
running: false
template:
metadata:
labels:
kubevirt.io/size: small
kubevirt.io/domain: testvm
spec:
domain:
devices:
disks:
- name: containerdisk
disk:
bus: virtio
- name: cloudinitdisk
disk:
bus: virtio
interfaces:
- name: default
masquerade: {}
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- name: containerdisk
containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
- name: cloudinitdisk
cloudInitNoCloud:
userDataBase64: SGkuXG4=1. 다운로드(맥북 M1용)
curl -L0 -o virtctl-v0.59.2-darwin-amd64 https://github.com/kubevirt/kubevirt/releases/download/v0.59.2/virtctl-v0.59.2-darwin-amd64
2. 다운로드 받은 바이너리 이름 변경
cp virtctl-v1.59.2-darwin-amd64 virtctl
3. 실행가능한 파일로 변경
chmod +x virtctl
4. 파일을 이동
sudo mv virtctl /usr/local/bin/
# VM 생성
➜ kubectl apply -f kv-test-vm.yaml
virtualmachine.kubevirt.io/testvm created
# VM 조회
➜ kubectl get vm
NAME AGE STATUS READY
testvm 10s Stopped False
# VM 기동
➜ virtctl start testvm
VM testvm was scheduled to start
➜ kubevirt k get vm
NAME AGE STATUS READY
testvm 41s Starting False
# VM의 IP 확인
➜ kubectl get vmi
NAME AGE PHASE IP NODENAME READY
testvm 34s Running 100.64.10.10 aks-agentpool-29402424-vmss000004 True
# VM으로 접속
➜ virtctl console testvm
Successfully connected to testvm console. The escape sequence is ^]
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
testvm login: cirros
Password:
$ hostname
testvm
# 콘솔을 닫으려면 Ctrl+]k8s에다 VM을 생성할 수 있었다.
절차는 kubevirt cr/operator 설치 → vm yaml 작성 → vm생성 → vm 기동 순으로 진행했다.
yaml 파일로 VM을 표준화된 방식으로 생성하므로 필요시 간단/신속하게 작업 환경을 제공해 줄 수 있어 agile에 적합하다.
예를 들어 0.1 core단위로 VM을 할당할 수도 있어 효율적인 자원 할당이 가능하다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.