在使用 Kubernetes 部署的浏览器上看不到我的应用



祝大家一切顺利!

我需要在浏览器上查看我的应用程序,但我相信我错过了一些东西,希望你能帮助我。

[root@kubernetes Docker]# kubectl get all
NAME                           READY   STATUS    RESTARTS   AGE
pod/my-app2-56d5c786dd-n7mqq   1/1     Running   0          19m
pod/nginx-86c57db685-bxkpl     1/1     Running   0          13h
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        31h
service/my-app2      ClusterIP   10.101.108.199   <none>        8085/TCP       12m
service/nginx        NodePort    10.106.14.144    <none>        80:30525/TCP   13h
NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/my-app2   1/1     1            1           19m
deployment.apps/nginx     1/1     1            1           13h
NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/my-app2-56d5c786dd   1         1         1       19m
replicaset.apps/nginx-86c57db685     1         1         1       13h

总的来说,你可以看到一切都很好,对我来说是一样的。

为了在浏览器上打开它,我使用了分配容器的Slave节点的IP地址。在我的应用程序上,我像这样映射Hello@RequestMapping("/Hello"(在我的dockerfile上,为了构建我的图像,我使用了这个:

[root@kubernetes project]# cat Dockerfile
FROM openjdk:8
COPY microservico-0.0.1-SNAPSHOT.jar microservico-0.0.1-SNAPSHOT.jar
#WORKDIR /usr/src/microservico-0.0.1-SNAPSHOT.jar
EXPOSE 8085
ENTRYPOINT ["java", "-jar", "microservico-0.0.1-SNAPSHOT.jar"]

所以最后,我想我需要用这种方式调用我的应用程序。

--->ip:8085/你好

[root@kubernetes project]# telnet kubeslave 8085
Trying 192.168.***.***...
telnet: connect to address 192.168.***.***: Connection refused

但我还是什么都没看到。。。

这是我的部署和服务:

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app2
labels:
app: app
spec:
selector:
matchLabels:
app: app
role: master
tier: backend
replicas: 1
template:
metadata:
labels:
app: app
role: master
tier: backend
spec:
containers:
- name: appcontainer
image: *****this is ok*****:my-java-app
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 8085

apiVersion: v1
kind: Service
metadata:
name: my-app2
labels:
app: app
role: master
tier: backend
spec:
ports:
- port: 8085
targetPort: 8085
selector:
app: app
role: master
tier: backend

您已经创建了一个类型为ClusterIP(默认(的服务。这种类型的服务仅用于从kubernetes集群内部进行访问。要从浏览器访问它,您需要通过LoadBalancer或Nodeport服务公开pod。LoadBalancer仅在您是受支持的公共云之一时工作,否则需要使用Nodeport。

https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/

https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/

除了使用服务,您还可以使用kubectl代理来访问它。

如果你在Minikube上,请遵循此

https://kubernetes.io/docs/tutorials/hello-minikube/

最新更新