ノート:

Ciliumを使用したOracle Cloud Infrastructure Container Engine for Kubernetesでのネットワーキング・サービスの提供

イントロダクション

Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)を使用して新しいKubernetesクラスタをデプロイする場合、インストールされるデフォルトのコンテナ・ネットワーク・インタフェース(CNI)プラグインはOCI VCNネイティブCNIプラグインです。クラウド・ネイティブ・コンピューティングでは、別のCNIプラグインを選択するだけで、コンテナ・プラットフォームにネットワーク(セキュリティ)サービスを提供する方法を選択できます。このチュートリアルでは、Flannel CNIプラグインでOKEを使用して新しいKubernetesクラスタをデプロイし、これをCilium CNIプラグインに変更します。Ciliumは、OCI VCNネイティブCNIプラグインおよびFlannelと比較して、他のネットワーク(セキュリティ)機能を提供します。

イメージ

イメージ

目的

タスク1: OKEを使用したKubernetesクラスタのデプロイ

様々なOKEデプロイメント・モデルの詳細は、ネットワーク・リソース構成の例を参照してください。

OKEデプロイメント・モデルの例は、次のとおりです。

このチュートリアルでは、例1デプロイメント・モデルを選択します。例3のデプロイ方法は、新規Kubernetesクラスタの作成およびコンポーネントの検証ですでに説明されています。

タスク2: デプロイされたOKE KubernetesクラスタへのCNIプラグインとしてのCiliumのインストール

タスク3: サンプルWebアプリケーションおよびサービスのデプロイ

タスク4: NetworkPolicyタイプのKubernetesサービスの構成

Cilium CNIプラグインが提供するネットワーク・セキュリティ・サービスの1つは、NetworkPolicyタイプのサービスです。これは、2つのポッド間の接続を拒否することで、ポッド間の接続を制御する方法です。

タスク5: サンプルWebアプリケーションとサービスの削除

タスク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. デプロイされたWebアプリケーションを削除するには、次のコマンドを実行します。

    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を参照してください。