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 부여