Cloud/OCI(Oracle Cloud Infrastructure)
[OCI] OKE Cluster 구축(5) - Sample 파드, 서비스 배포
학슈퍼맨
2025. 4. 12. 19:57
1. manifest 환경 구성
1.1. 디렉터리 생성
[k8s-admin@oke-bastion ~]$ mkdir manifest
1.2. Sample Pods - nginx
1.2.1. yaml 파일
[k8s-admin@oke-bastion manifest]$ vi nginx-deploy-sample.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy-sample
labels:
app: nginx-sample
spec:
replicas: 2
selector:
matchLabels:
app: nginx-sample
template:
metadata:
labels:
app: nginx-sample
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
1.3. Sample Service - LB
1.3.1. Reserved IP 할당
1. 내비게이션 메뉴 → [Networking → IP management → Reserved public IPs] 선택
2. Reserve public IP address 선택
3. Reserved public IP address name : <적절한 이름 입력>
4. IP address source in <Compartment> : Oracle 선택
1.3.2. yaml 파일
[k8s-admin@oke-bastion manifest ~]$ vi nginx-lb-sample.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-lb-sample
labels:
app: nginx
annotations:
oci.oraclecloud.com/load-balancer-type: "lb"
service.beta.kubernetes.io/oci-load-balancer-shape: "flexible"
service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "100"
service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "1000"
service.beta.kubernetes.io/oci-load-balancer-backend-protocol: "HTTP"
service.beta.kubernetes.io/oci-load-balancer-subnet1: "<LB Subnet OCID>" # LB가 생성될 서브넷
spec:
type: LoadBalancer
loadBalancerIP: <위에서 할당받은 Reserved IP> # LB Public IP (지정하지 않으면 랜덤한 값으로 생성)
ports:
- port: 80
selector:
app: nginx-sample

2. Sample 파드, 서비스 배포
2.1. 배포
## yaml 파일 확인
[k8s-admin@oke-bastion manifest]$ ls -l
## 현재 디렉터리의 존재하는 yaml 파일 배포
[k8s-admin@oke-bastion manifest]$ kubectl apply -f .
2.2. 배포 확인
[k8s-admin@oke-bastion manifest]$ kubectl get pods,svc
2.3. 서비스 확인
별도 Pods 서브넷을 통해 생성되는 Pods의 IP 제어 가능
- Cluster 생성 시, VCN-Native Pods Networking CNI 선택하는 경우 아래와 같은 Pod communication 항목 설정 필요(Flennel 선택 시 아래 항목 표시되지 않음)
- 해당 Pods Subnet 대역 내 랜덤한 IP 부여