【发布时间】:2019-05-06 15:08:16
【问题描述】:
我有 2 个码头集装箱。一个包含 tomcat 服务器,另一个包含 MySQL 数据库。我想在单个 pod 上运行这些容器,因为 tomcat 必须访问 MySQL 数据库。
我尝试过的:
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: tomcat-mysql-pod
labels:
app: tomcat-mysql-pod
spec:
containers:
- name: kubernetestomcatcontainer
image: suji165475/vignesh:tomcatserver
ports:
- containerPort: 8080
containers:
- name: kubernetesmysqlcontainer
image: suji165475/vignesh:latest
ports:
- containerPort: 3306
我使用
运行了这个 podkubectl apply -f pod.yaml
然后我暴露了 pod 使用
kubectl expose pod tomcat-mysql-pod --type=NodePort --port=8080
目前,我只能使用https://serveripaddress:nodeport访问tomcat主页,但不能使用https://serveripaddress:nodeport/data-core-0.0.1-SNAPSHOT访问我的spring boot应用???
注意:当使用 docker-compose.yaml 和 docker-compose up 命令运行容器时,该应用程序可以正常运行。但是当我在 kubernetes 上运行它时,在启动我的 war 文件时,我在 tomcat 的管理器应用程序中遇到了 Catalina 生命周期异常。
【问题讨论】:
-
您几乎总是分别运行这两个东西:Tomcat 的 Deployment,以及带有附加 PersistentVolumeClaim 的用于 MySQL 的 StatefulSet,以及每个前面的 Service。
-
你能给我举个例子吗?我的意思是如果我单独运行 yaml 文件应该是什么样子??
-
实际上我也尝试使用 kompose convert 将 docker-compose.yaml 转换为 kubeternete,但我的 war 文件仍然无法启动
标签: docker kubernetes docker-compose