我是库伯内特斯的新手。我试图在Kubernetes中部署一个基于微服务体系结构的springboot web应用程序。我在OpenStack上设置了Kubernetes。所有Kubernetes服务都运行良好。
若要将示例springboot应用程序部署到
https://www.mkyong.com/spring-boot/spring-boot-hello-world-example-jsp/
我可以在localhost:8080和<'node-ip'>:8080上看到这个网络应用程序。
但是我试图部署的应用程序需要MySQL和rabbitmq,所以我使用yaml文件(javaweb.yaml)创建了MySQL和rabbitmq服务:
javaweb.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
labels:
app: mysql
spec:
type: NodePort
ports:
- protocol: TCP
port: 3306
targetPort: 3306
selector:
app: mysql
---
apiVersion: v1
kind: Service
metadata:
# Expose the management HTTP port on each node
name: rabbitmq-management
labels:
app: rabbitmq
spec:
type: NodePort # Or LoadBalancer in production w/ proper security
ports:
- port: 15672
name: http
selector:
app: rabbitmq
---
apiVersion: v1
kind: Service
metadata:
# The required headless service for StatefulSets
name: rabbitmq
labels:
app: rabbitmq
spec:
ports:
- port: 5672
name: amqp
- port: 4369
name: epmd
- port: 25672
name: rabbitmq-dist
clusterIP: None
selector:
app: rabbitmq
---
apiVersion: v1
kind: Pod
metadata:
name: javaweb
spec:
containers:
- image: chakravarthych/sample:v1
name: war
volumeMounts:
- mountPath: /app
name: app-volume
- image: mysql:5.7
name: mysql
ports:
- protocol: TCP
containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: root123
command: ["sh","-c","service mysql start; tail -f /dev/null"]
- image: rabbitmq:3.7-management
name: rabbitmq
ports:
- name: http
protocol: TCP
containerPort: 15672
- name: amqp
protocol: TCP
containerPort: 5672
command: ["sh","-c","service rabbitmq-server start; tail -f /dev/null"]
- image: tomcat:8.5.33
name: tomcat
volumeMounts:
- mountPath: /usr/local/tomcat/webapps
name: app-volume
ports:
- containerPort: 8080
hostPort: 8080
command: ["sh","-c","/usr/local/tomcat/bin/startup.sh; tail -f /dev/null"]
volumes:
- name: app-volume
emptyDir: {}当我尝试在localhost:8080或<‘node’>:8080访问我的应用程序时,我会看到一个空白页.
命令kubectl get all -o wide给了我以下输出:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
pod/javaweb 4/4 Running 0 1h 192.168.9.123 kube-node1 <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d <none>
service/mysql NodePort 10.101.253.11 <none> 3306:30527/TCP 1h app=mysql
service/rabbitmq ClusterIP None <none> 5672/TCP,4369/TCP,25672/TCP 1h app=rabbitmq
service/rabbitmq-management NodePort 10.108.7.162 <none> 15672:30525/TCP 1h app=rabbitmq这表明MySQL和rabbitmq正在运行。
我的问题是如何检查我的应用程序是否能够访问运行在Kubernetes.中的MySQL和rabbitmq服务。
注意:
我只可以在192.168.9.123:15672进入狂犬病。
我还可以登录到Docker容器中的MySQL。
发布于 2018-08-28 20:50:57
你试过弹簧吊舱上的"kubectl原木“吗?你可能对出了什么问题有一些指示。
https://stackoverflow.com/questions/52063548
复制相似问题