注意:

使用 Cilium 在 Oracle Cloud Infrastructure Container Engine for Kubernetes 中提供网络服务

简介

使用 Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) 部署新的 Kubernetes 集群时,安装的默认容器网络接口 (CNI) 插件是 OCI VCN 本机 CNI 插件。借助云原生计算,您只需选择另一个 CNI 插件即可灵活选择向容器平台提供网络(安全)服务的方法。在本教程中,我们将使用 OKE 和 Flannel CNI 插件部署新的 Kubernetes 集群,并将其更改为 Cilium CNI 插件。与 OCI VCN 原生 CNI 插件和 Flannel 相比,Cilium 提供了其他网络(安全)功能。

图像

图像

目标

任务 1:使用 OKE 部署 Kubernetes 集群

有关不同 OKE 部署模型的更多信息,请参见 Example Network Resource Configurations

OKE 部署模型示例包括:

对于本教程,我们将选择示例 1 部署模型。我们已在此处解释了如何部署示例 3创建新 Kubernetes 集群并验证组件

任务 2:在 OKE 部署的 Kubernetes 集群上将 Cilium 作为 CNI 插件安装

任务 3:部署示例 Web 应用程序和服务

任务 4:配置 NetworkPolicy 类型的 Kubernetes 服务

Cilium CNI 插件提供的网络安全服务之一是 NetworkPolicy 类型的服务。这是通过拒绝两个 pod 之间的连接来控制 pod 之间的连接的一种方式。

任务 5:删除示例 Web 应用程序和服务

任务 6:部署示例应用程序并配置 LoadBalancer 类型的 Kubernetes 服务

我们已经使用 Cilium 测试了 NetworkPolicy 服务,让我们使用 Cilium 测试 LoadBalancer 服务。

任务 7:删除 LoadBalancer 类型的示例应用程序和 Kubernetes 服务

  1. 运行以下命令以获取已部署的 pod。

    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. 运行以下命令以获取已部署的 pod。

    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 帮助中心