簡體   English   中英

用於 Google 容器引擎部署的 Docker 和 Kubernetes 上的對稱

[英]symmetricds on Docker and Kubernetes for Google Container Engine Deployment

我正在google container engine上部署symmetricds ,所以我已經構建了symmetricds war文件並創建了如下所示的docker tomcat圖像:-

FROM tomcat
ENV JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1109 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
ENV CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=1109 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

ADD ./symmetric-ds.war /usr/local/tomcat/webapps/
ADD ./mysql-connector-java-5.1.30.jar /usr/local/tomcat/lib/
COPY ./context.xml /usr/local/tomcat/conf/context.xml
COPY ./server.xml /usr/local/tomcat/conf/server.xml
COPY ./tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml

RUN sh -c 'touch /usr/local/tomcat/webapps/symmetric-ds.war'
VOLUME /usr/local/tomcat/webapps/
EXPOSE 8080 1109

之后我將它推送到存儲庫,我正在使用 kubernetes 來部署它。 我的kubernetes yml文件如下:-

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: symserver
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: symserver
    spec:
      containers:
      - name: symserver
        image: symserver:v1
        ports:
        - containerPort: 8080
        - containerPort: 1109
---
apiVersion: v1
kind: Service
metadata:
  name: symserver
spec:
  selector:
    app: symserver
  type: LoadBalancer
  ports:
  - port: 8080
  - port: 1109

我有兩個問題正在尋找解決方案:-

  1. 作為docker圖像只讀任何屬性i的定義symmetricds.properties (這將是戰爭文件和戰爭文件的一部分是內部tomcat和我命名tomcat圖像作為symserverdocker )文件是固定的,只讀的。 喜歡

    sync.url=http://$(hostName):8080/symmtric-ds/sync/$(engineName)

當我將它部署到谷歌雲時,我為 pod 和服務外部鏈接獲得了不同的 IP。 那么如何解決這個問題呢? 因為我必須在 symmetricds.properties 文件中設置這個 ip,以便我的其他存儲節點可以連接到它。 當我重新啟動服務器時,它會再次從文件中獲取新的 ip 或相同的 ip。

  1. 如何在kuberneteskubernetes情況下使用JMX ,我在構建文件中添加了JMX選項,但不知何故我無法使用jconsole連接它。 我使用端口轉發命令將端口 1109 暴露給本地機器。

symmetricds.properties文件要么被打包在 war 文件之外,然后在啟動服務器之前進行操作,以便可以用具體值替換占位符或使用符號${env.variable.value}並嘗試查看 Spring 是否將它們替換為環境變量

要將文件symmetricds.properties外部化,請將此部分添加到文件WEB-INF\\web.xml

<context-param>
    <param-name>multiServerMode</param-name>
    <param-value>true</param-value>
</context-param>

將文件系統上的文件存儲在一個目錄中,假設/opt/symm/並將 java 系統屬性symmetric.engines.dir設置為目錄路徑的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM