
grep -E "(vmx|svm)" /proc/cpuinfo로 하드웨어 가상화 지원 여부 확인 가능./etc/default/grub)을 편집하여 부트로더를 설정. (bootloader = '/usr/lib/xen-4.11/bin/pygrub')/etc/network/interfaces)에 브리지 설정 추가.etc/xen/{VM 이름}으로 VM 설정 파일을 보관. CPU, Memory, Disk, Network Interface를 수정함.pocj8ur4in.co.kr로 접근할 때 gateway VM으로 접근할 수 있도록 함.
/k8s에 매니페스트 파일을 위치시킴./git에는 clone한 레포지토리를 위치시켰으며, 이를 위해 필요한 서비스를 설치하여 관리할 예정.k8s 기술에 대한 설명은 해당 문서에 작성하였으므로, 여기선 설치 과정 및 구축한 네임스페이스 및 리소스만 다룸.
Physical Server
└── OS: Ubuntu 24.04.1 LTS
└── Xen Hypervisor
├── Domain-0: Dom0
└── Guest VM
├── gateway: DomU for gateway
├── nginx: DomU for nginx proxy manager
├── k8s-01: DomU for k8s master node
│ └── k8s Namespace
│ ├── kube-system: System Component
│ │ ├── k8s DaemonSet
│ │ │ ├── calico-node: Network Node
│ │ │ └── kube-proxy: Netwok Proxy
│ │ └── k8s Deployment
│ │ ├── calico-kube-controllers (1/1): Network Controller
│ │ ├── coredns (2/2): DNS server
│ │ ├── etcd (1/1): Cluster Data Storage
│ │ ├── kube-apiserver (1/1): API Server
│ │ ├── kube-controller-manager (1/1): Controller Manager
│ │ └── kube-scheduler (1/1): Scheduler
│ ├── metallb: Load Balancer
│ │ └── k8s DaemonSet
│ │ └── speaker: MetalLB Speaker
│ └── monitoring: Monitoring Component
│ └── k8s DaemonSet
│ └── node-exporter: Node Meteric Exporter
├── k8s-02: DomU for k8s worker node
│ ├── k8s StorageClass
│ │ └── k8s-02-storage
│ │ └── k8s PV
│ └── k8s Namespace
│ ├── kube-system: System Component
│ │ └── k8s DaemonSet
│ │ ├── calico-node: Network Node
│ │ └── kube-proxy: Netwok Proxy
│ ├── metallb: Load Balancer
│ │ ├── k8s DaemonSet
│ │ │ └── speaker: MetalLB Speaker
│ │ └── k8s Deployment
│ │ └── controller (1/1): MetalLB Controller
│ └── monitoring: Monitoring Component
│ └── k8s DaemonSet
│ └── node-exporter: Node Meteric Exporter
├── k8s-03: DomU for k8s worker node
│ ├── k8s StorageClass
│ │ └── k8s-03-storage
│ │ └── k8s PV
│ │ ├── postgresql-pv (30Gi)
│ │ │ └── k8s PVC
│ │ │ └── postgresql-pvc (30Gi)
│ │ ├── mongo-pv (10Gi)
│ │ │ └── k8s PVC
│ │ │ └── mongo-pv (10Gi)
│ │ ├── redis-pv (10Gi)
│ │ │ └── k8s PVC
│ │ │ └── redis-pv (10Gi)
│ │ ├── mysql-pv (3Gi)
│ │ │ └── k8s PVC
│ │ │ └── mysql-pvc (3Gi)
│ │ └── vscode-pv (10Gi)
│ │ └── k8s PVC
│ │ └── vscode-pvc (10Gi)
│ └── k8s Namespace
│ ├── kube-system: System Component
│ │ └── k8s DaemonSet
│ │ ├── calico-node: Network Node
│ │ └── kube-proxy: Netwok Proxy
│ ├── metallb: Load Balancer
│ │ └── k8s DaemonSet
│ │ └── speaker: MetalLB Speaker
│ ├── monitoring: Monitoring Component
│ │ └── k8s DaemonSet
│ │ └── node-exporter: Node Meteric Exporter
│ ├── postgresql: postgres/postgres
│ │ └── k8s Deployment
│ │ └── postgresql (1/1)
│ ├── mongo: mongodb/mongo
│ │ └── k8s Deployment
│ │ └── mongo (1/1)
│ ├── redis: redis/redis
│ │ └── k8s Deployment
│ │ └── redis (1/1)
│ ├── nginx: nginx/nginx
│ │ └── k8s Deployment
│ │ └── nginx (1/1)
│ ├── vscode: microsoft/vscode
│ │ └── k8s Deployment
│ │ └── vscode (1/1)
│ └── mysql: mysql/mysql-server
│ └── k8s Deployment
│ └── mysql (1/1)
└── k8s-04: DomU for k8s worker node
├── k8s StorageClass
│ └── k8s-04-storage
│ └── k8s PV
│ ├── grafana-pv (10Gi)
│ │ └── k8s PVC
│ │ └── grafana-pvc (10Gi)
│ ├── prometheus-pv (10Gi)
│ │ └── k8s PVC
│ │ └── prometheus-pv (10Gi)
│ └── wiki-js-pv (10Gi)
│ └── k8s PVC
│ └── wiki-js-pv (10Gi)
└── k8s Namespace
├── kube-system: System Component
│ └── k8s DaemonSet
│ ├── calico-node: Network Node
│ └── kube-proxy: Netwok Proxy
├── metallb: Load Balancer
│ └── k8s DaemonSet
│ └── speaker: MetalLB Speaker
├── monitoring: Monitoring Component
│ ├── k8s DaemonSet
│ │ └── node-exporter: Node Meteric Exporter
│ └── k8s Deployment
│ ├── grafana (1/1)
│ └── prometheus (2/2)
├── dashboard: kubernetes/dashboard
│ └── k8s Deployment
│ ├── dashboard (1/1)
│ └── dashboard-metrics-scraper (1/1)
├── wiki: requarks/wiki
│ └── k8s Deployment
│ └── wiki (1/1)
└── nginx: nginx/nginx
└── k8s Deployment
└── nginx (1/1)