祝大家一切顺利!
我需要在浏览器上查看我的应用程序,但我相信我错过了一些东西,希望你能帮助我。
[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/