주:

Cilium을 사용하여 Oracle Cloud Infrastructure Container Engine for Kubernetes에서 네트워킹 서비스 제공

소개

OKE(Oracle Cloud Infrastructure Container Engine for Kubernetes)를 사용하여 새 Kubernetes 클러스터를 배포할 때 설치된 기본 CNI(컨테이너 네트워크 인터페이스) 플러그인은 OCI VCN-Native CNI 플러그인입니다. 클라우드 네이티브 컴퓨팅을 사용하면 다른 CNI 플러그인을 선택하여 컨테이너 플랫폼에 네트워크(보안) 서비스를 제공하는 방법을 유연하게 선택할 수 있습니다. 이 자습서에서는 Flannel CNI 플러그인과 함께 OKE를 사용하여 새 Kubernetes 클러스터를 배치하고 이를 Cilium CNI 플러그인으로 변경합니다. Cilium은 OCI VCN-Native CNI 플러그인 및 Flannel과 비교하여 다른 네트워크(보안) 기능을 제공합니다.

이미지

이미지

목표

작업 1: OKE를 사용하여 Kubernetes 클러스터 배치

여러 OKE 배치 모델에 대한 자세한 내용은 Example Network Resource Configurations을 참조하십시오.

OKE 배치 모델의 예는 다음과 같습니다.

이 자습서에서는 예 1 배포 모델을 선택합니다. 예제 3을 배포하는 방법은 이미 설명했습니다. 예: Create a New Kubernetes Cluster and Verify the Components

작업 2: 배치된 OKE Kubernetes 클러스터에 CNI 플러그인으로 Cilium 설치

작업 3: 샘플 웹 응용 프로그램 및 서비스 배치

작업 4: NetworkPolicy 유형의 Kubernetes 서비스 구성

Cilium CNI 플러그인이 제공하는 네트워크 보안 서비스 중 하나는 NetworkPolicy 유형의 서비스입니다. 이것은 두 포드 사이의 연결을 거부하여 포드 사이의 연결을 제어하는 방법입니다.

작업 5: 샘플 웹 응용 프로그램 및 서비스 제거

작업 6: 샘플 애플리케이션 배치 및 LoadBalancer 유형의 Kubernetes 서비스 구성

우리는 Cilium를 사용하여 NetworkPolicy 서비스를 시험했습니다, 우리는 또한 Cilium를 사용하여 LoadBalancer 서비스를 시험합니다.

작업 7: LoadBalancer 유형의 샘플 애플리케이션 및 Kubernetes 서비스 제거

  1. 다음 명령을 실행하여 배치된 포드를 가져옵니다.

    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ kubectl get pods
    NAME                                READY   STATUS    RESTARTS   AGE
    nginx-deployment-86dcfdf4c6-6ncvx   1/1     Running   0          2m54s
    nginx-deployment-86dcfdf4c6-qbhn2   1/1     Running   0          2m54s
    
  2. 배치된 포드를 검토합니다.

  3. 배치된 웹 응용 프로그램을 제거하려면 다음 명령을 실행합니다.

    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ kubectl delete deployment nginx-deployment --namespace default
    deployment.apps "nginx-deployment" deleted
    
  4. 응용 프로그램이 삭제되었는지 확인합니다.

  5. 다음 명령을 실행하여 배치된 포드를 가져옵니다.

    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ kubectl get pods
    No resources found in default namespace.
    
  6. 포드는 더 이상 배치되지 않고 성공적으로 삭제되었습니다.

  7. 다음 명령을 실행하여 배치된 서비스를 가져옵니다.

    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ kubectl get svc
    NAME         TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)             AGE
    kubernetes   ClusterIP      10.96.0.1     <none>          443/TCP,12250/TCP   46h
    my-service   LoadBalancer   10.96.56.91   XXX.XXX.XXX.88   80:32422/TCP        2m42s
    
  8. 배치된 서비스를 검토합니다.

  9. 배치된 LoadBalancer 서비스를 제거하려면 다음 명령을 실행합니다.

    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ kubectl delete service my-service -n default
    service "my-service" deleted
    
  10. 서비스가 삭제되었는지 확인합니다.

  11. 다음 명령을 실행하여 배치된 서비스를 가져옵니다.

    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ kubectl get svc
    NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)             AGE
    kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP,12250/TCP   46h
    iwan_hooge@cloudshell:~ (eu-amsterdam-1)$ 
    
  12. LoadBalancer 서비스가 더 이상 배치되지 않고 성공적으로 삭제되었음을 알 수 있습니다.

이미지

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.