Kubernetes 配置示例 - 一個Pod 包含多個容器


一般都是一個 pod 里面包含一個容器,但是有些情況,多個容器之間有比較親密的關系,需要通過共享目錄或本地 localhost 請求互相通信的話,可以放到一個 pod 里。比如:一個tomcat 的 web 應用,可以把 tomcat 算作一個容器,我們自己的 war 包可以單獨做一個鏡像,然后通過共享目錄掛載到 tomcat 的容器里。這樣做的好處是當war包更新時,我們只需更新我們應用的鏡像。

apiVersion: v1
kind: Pod
metadata:
  name: javaweb-2
spec:
# initContainers 會比 spec.containers 里定義的容器先啟動
  initContainers:
  - image: xxx/sample-war:v1
    command: ["cp", "/sample.war", "/app"]
    volumeMounts:
    - mountPath: /app
      name: app-volume
  containers:
  - image: xxx/tomcat:9.0
    name: tomcat
    command: ["sh", "-c", "/root/apache-tomcat/bin/start.sh"]
    volumeMounts:
    - mountPath: /root/apache-tomcat/webapps
      name: app-volume
    ports:
    - containerPort: 8080
      hostPort: 8001
  volumes:
  - name: app-volume
    emptyDir: {}

注:這里的第一個 image 改成自己的包含 war 包的鏡像,第二個 image 改成實際的tomcat 的鏡像


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM