首页 > 解决方案 > 使用 Docker Desktop 和 Helm 中启用的 Kubernetes 时在 Web 应用程序项目中使用 Web api

问题描述

我已经设法使用本教程将一个简单的 ASP.NET MVC 应用程序部署到 Kubernetes(在 Docker Desktop 中启用了 Kubernetes):https ://medium.com/@bterkaly/running-asp-net-applications-in-kubernetes-a-详细的一步一步的方法-96c98f273d1a。我的清单如下所示:

environment: development

apphost: k8s

label:
  name: aspnet3core

container:
  name: aspnet3
  pullPolicy: IfNotPresent
  image: aspnet3k8s
  tag: v1
  port: 80
replicas: 3

service:
  port: 8888
  type: ClusterIP

我还设法使用本教程将一个简单的 Web API 项目部署到 Kubernetes:https ://dev.to/wolnikmarcin/run-asp-net-core-3-on-kubernetes-with-helm-1o01 。我的清单如下所示:

//myDeploy.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: dotnetlinux
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: dotnetlinux
    spec:
      containers:
        - image: "brunoterkaly/dotnetlinux"
          imagePullPolicy: Always
          name: dotnetlinux
          ports:
            - containerPort: 80

//myService.yaml
apiVersion: v1
kind: Service
metadata:
  name: dotnetlinux
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: dotnetlinux

我现在正在尝试锻炼如何从 MVC 项目中调用 web api。我无法在网上找到如何做到这一点的解释。我希望在 GitHub 上有一个示例项目,但我找不到。

我正在使用启用了 Kubernetes 和 Visual Studio 2019 (Kubernetes/Helm) 的 Docker Desktop。

标签: visual-studiodockerkubernetes

解决方案


只是发布我的评论作为答案:

要访问您的 POD,您需要在端口:80 上调用您的服务“dotnetlinux”,例如dotnetlinux:80/yourAPI.

您还可以运行kubectl get services以获取服务的 IP,然后使用它。但这不是一个好方法,因为每次重新启动服务时服务的 IP 都会改变。

在此文档页面中,有很多关于服务的详细信息,并且会话动机和服务资源解释了为什么需要服务,以及它们如何在您的情况下为您提供帮助。


推荐阅读