Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在kubernetes上部署必须使用yaml链接在一起的2个docker容器?_Kubernetes - Fatal编程技术网

如何在kubernetes上部署必须使用yaml链接在一起的2个docker容器?

如何在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

我有两个容器(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 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文档中提供了您可能需要的内容。