如何在kubernetes上部署必须使用yaml链接在一起的2个docker容器?
我有两个容器(tomcat server和mysql db)。这些容器必须使用kubectl-f apply命令通过kubernetes使用yaml文件进行链接和部署。问题是,当我必须链接这两个容器进行部署时,我不知道要部署的yaml文件应该是什么样子 我用来构建tomcat映像的dockerfile是如何在kubernetes上部署必须使用yaml链接在一起的2个docker容器?,kubernetes,Kubernetes,我有两个容器(tomcat server和mysql db)。这些容器必须使用kubectl-f apply命令通过kubernetes使用yaml文件进行链接和部署。问题是,当我必须链接这两个容器进行部署时,我不知道要部署的yaml文件应该是什么样子 我用来构建tomcat映像的dockerfile是 FROM tomcat COPY app.war /usr/local/tomcat/webapps/ 我尝试使用docker run命令的--link属性,但我想使用kubernetes
FROM tomcat
COPY app.war /usr/local/tomcat/webapps/
我尝试使用docker run命令的--link属性,但我想使用kubernetes ie使用yaml文件来实现这一点。因此,请告诉我必须对deployment.yaml和service.yaml文件进行哪些更改,以便链接容器(tomcat和mysql)并将它们部署到根节点主节点上
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-pod
spec:
selector:
matchLabels:
run: tomcat-pod
replicas: 1
template:
metadata:
labels:
run: tomcat-pod
spec:
containers:
- name: tomcat
image: tomcat:warfile
ports:
- containerPort: 8080
服务中心
apiVersion: v1
kind: Service
metadata:
name: tomcat-pod
labels:
run: tomcat-pod
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
selector:
run: tomcat-pod
包含war文件的tomcat容器应该能够与mysql容器进行交互,并从数据库中获取数据,这些数据必须在部署后显示,但目前我只能看到tomcat主页,而不能看到webapps文件夹中运行war文件presnt的输出。如果您想与两个应用程序进行通信链接您必须为这些应用程序创建Kubernetes服务对象 例如,我的群集中有simpleservice:
argela@etcd1:~$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5h23m
simpleservice ClusterIP 10.96.219.103 <none> 80/TCP 179m
argela@etcd1:~$kubectl获得svc
名称类型CLUSTER-IP外部IP端口年龄
kubernetes ClusterIP 10.96.0.1 443/TCP 5h23m
simpleservice ClusterIP 10.96.219.103 80/TCP 179m
要从pod访问该应用程序,我必须使用(假设它是http服务)
通过示例解释服务概念。Kubernetes文档中提供了您可能需要的内容。