无法在minikube上访问我的应用程序

问题描述 投票:0回答:3

我是kubernetes的新手,我尝试使用kubernetes运行小型应用程序。我创建了docker映像并使用minikube来运行它。因此应用程序非常简单,它只显示hello-world。

@RestController
@RequestMapping(value = "helloworld")
public class MyController {

    @GetMapping
    public HelloWord helloWord(){

        return new HelloWord("Hello Word");
    }
}

我的dockerfile:

FROM adoptopenjdk/openjdk11-openj9:jdk-11.0.1.13-alpine-slim
VOLUME /tmp
ARG JAR_FILE=target/myapp-1.0.0.jar
COPY ${JAR_FILE} myapp-1.0.0.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-jar","/myapp-1.0.0.jar"]

deployment.yaml

apiVersion: v1
kind: Service
metadata:
  name: myhelloworldservice
spec:
  selector:
    app: my-hello-world-app
  ports:
    - protocol: "TCP"
      port: 8080
      targetPort: 80
      nodePort: 30003
  type: LoadBalancer


---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-hello-world
spec:
  selector:
    matchLabels:
      app: my-hello-world-app
  replicas: 5
  template:
    metadata:
      labels:
        app: my-hello-world-app
    spec:
      containers:
        - name: hello-world
          image: myname/myhelloimage
          ports:
            - containerPort: 80

我运行命令:

kubectl create -f deployment.yaml

输出为:

创建服务/ myhelloworldservice

创建的Deployment.apps / my-hello-world

我运行minikube ip命令获取ip,然后使用该ip地址通过端口30003访问我的应用程序,但无法访问我的应用程序。

我用过:

http://xxx.xx.xx.xxx:30003/helloworld

为什么无法访问我的应用程序,这是什么问题?我得到这个网站无法访问。拒绝连接错误。

kubernetes containers cloud minikube
3个回答
1
投票

您的服务属于LoadBalancer类型,特定于访问。使用Minikube,您可以使用以下方法访问它们:

minikube tunnel

有关更多信息,请参见https://minikube.sigs.k8s.io/docs/tasks/loadbalancer/


0
投票

看代码,它似乎是基于Spring的服务。服务不太可能在端口80上侦听-Spring的默认值为8080。因此,假设实际端口为8080,请更改:

  • targetPort: 80定义中的[targetPort: 8080Service
  • type: LoadBalancer定义中的type: NodePortService
  • containerPort: 80定义中的[containerPort: 8080Deployment

0
投票

您可以使用kubectl port-forward <<created_container_name>> 80从minikube转发到本地主机现在,您应该可以通过localhost:80/helloworld

通过浏览器访问您的应用了
© www.soinside.com 2019 - 2024. All rights reserved.