×

本教程展示了 OSToy 应用如何使用集群内网络通过微服务分离功能并可视化 Pod 的扩展。

OSToy Diagram

该图显示至少有两个单独的 Pod,每个 Pod 都有自己的服务。

一个 Pod 充当具有服务和公共访问路由的前端 Web 应用程序。另一个 Pod 充当具有服务对象的后台微服务,以便前端 Pod 可以与微服务通信。如果超过一个 Pod,则这种通信发生在 Pod 之间。由于这些通信限制,此微服务无法从集群外部或其他命名空间或项目(如果已配置)访问。此微服务的唯一目的是服务内部 Web 请求并返回包含当前主机名(即 Pod 名称)和随机生成的彩色字符串的 JSON 对象。此彩色字符串用于显示带有该颜色的框,该框显示在标题为“集群内通信”的图块中。

有关网络限制的更多信息,请参见 关于网络策略

集群内网络

您可以在 OSToy 应用程序中查看您的网络配置。

步骤
  1. 在 OSToy 应用程序中,单击左侧菜单中的**网络**。

  2. 查看网络配置。标题为“主机名查找”的右侧图块说明了如何使用为 Pod 创建的服务名称转换为内部 ClusterIP 地址。

    OSToy Networking page
  3. 在右侧图块(“主机名查找”)中输入在以下格式中创建的微服务名称:<service_name>.<namespace>.svc.cluster.local。您可以通过运行以下命令在ostoy-microservice.yaml的服务定义中找到此服务名称

    $ oc get service <name_of_service> -o yaml
    示例输出
    apiVersion: v1
    kind: Service
    metadata:
      name: ostoy-microservice-svc
      labels:
        app: ostoy-microservice
    spec:
      type: ClusterIP
      ports:
        - port: 8080
          targetPort: 8080
          protocol: TCP
      selector:
        app: ostoy-microservice

    在此示例中,完整主机名是ostoy-microservice-svc.ostoy.svc.cluster.local

  4. 您会看到返回的 IP 地址。在此示例中,它是172.30.165.246。这是集群内 IP 地址,只能从集群内访问。

    OSToy DNS