cluster-wide IP address management
ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
Simple Provision
jiangzhenggang2023/old-cloud (github.com)
shaohef/Edge-Service-Kit: Lite-Tiber (github.com)
KubeVirt
Virtual hardware - KubeVirt user guide
Configuring PCI passthrough - Virtual machines | Virtualization | OpenShift Container Platform 4.10
GPU Operator with KubeVirt — NVIDIA GPU Operator 24.6.1 documentation
Host Devices Assignment - KubeVirt user guide
Install tools
install kubevirt: https://kubebyexample.com/learning-paths/kubevirt-fundamentals/guided-exercise-installing-kubevirt (Tiber install, no need import)
install krew ref https://krew.sigs.k8s.io/docs/user-guide/setup/install/ (manually installation)
Install virtctl: https://kubevirt.io/user-guide/user_workloads/virtctl_client_tool/ (manually installation)
kubectl api-resources | grep kubevirt |
Install krew
( set -x; cd "$(mktemp -d)" && OS="$(uname | tr '[:upper:]' '[:lower:]')" && ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" && KREW="krew-${OS}_${ARCH}" && curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" && tar zxvf "${KREW}.tar.gz" && ./"${KREW}" install krew )
set PATH
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
create a VM
Kubevirt Hello World VM: https://docs.starlingx.io/kube-virt/hello-world-kubevirt-vm-05503659173c.html
https://medium.com/@tejasmane485/how-to-get-started-with-kubevirt-easy-explained-e916ca1b621
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=
Helm chart vm example
charts/single-vm/templates/vm.yaml at master · pkliczewski/charts (github.com)
kubevirt-manager/kubevirt-manager: Kubevirt Web UI / Web Interface Manager (github.com)
Platform9-Community/kubevirt-vm-helm (github.com)
https://www.baeldung.com/ops/kubevirt-kubernetes-addon-guide
https://www.wwt.com/blog/a-working-kubevirt-tutorial
https://kubevirt.io/user-guide/user_workloads/accessing_virtual_machines/
Guided Exercise: Create and access a virtual machine in KubeVirt
https://kubevirt.io/user-guide/user_workloads/creating_vms/
USB
Discovering and Using USB Cameras - Akri