2017-12-06 18 views
0

問題文を渡している、サービスに渡していません。Kubernetes PODの引数は、しかし、ドッカー引数が正しく

私はdocker.io/joethecoder2/spring-boot-webから成功しドッカーイメージを作成しました。コマンドライン引数でテストされており、これらはDockerでローカルで正しく動作します。

引数を渡すの目的は、PODは、どのようなIPアドレスとポートを知っているように単一の画像 docker.io/joethecoder2/spring-boot-web

で定義されて、私はKubernetes PODにドッカーに渡されるJavaの引数を渡すしようとしています

numberはデータベースサービスの番号です。

問題の定義:私はここにKubernetes PODを定義している

は、しかし、私はPODのサービスを実行しているときの引数はsinglePod.yamlから正しく渡されていないと信じています。

期待される結果:

私はKubernetes PODがドッカーイメージがhereを定義したと互換性があることを期待しています。

-p -it

ドッカラン8080:8080 joethecoder2 /春ブート・ウェブ -Dcassandra_ip = 127.0.0.1 -Dcassandra_port =

私はKubernetes PODがドッカーがhere場合と同じように、引数を受け入れることを期待します9042

curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/plain' 'http://localhost:8080/restaurant/arguments' 

正しい結果が>127.0.0.1:9042

returned-あります 間違った結果:

次のサービスを実行すると引数が返されないため、実際の引数がPODに渡されないことがわかります。

curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/plain' 'http://192.168.64.3:32308/restaurant/arguments' 

間違った結果がreturned->です:結果予想

- singlePod.yamlファイル

なぜ引数はPOD定義ファイルに引数ことを知っているにもかかわらず、不足している中で定義されている>127.0.0.1:9042、静的に定義されていますか?

+0

configMap.yamlを作成し、ポッドのYAMLファイルに関連付けることが良いだろう。これらの環境変数がコンテナで使用可能になることを確認します –

答えて

0

コンテナに環境変数を注入したい場合は、ConfigMapを使用する方が柔軟性が高く、懸念を取り除くことができます。

apiVersion: v1 
kind: Pod 
metadata: 
    name: spring-boot-web-demo 
    labels: 
    purpose: demonstrate-spring-boot-web 
spec: 
    containers: 
    - name: spring-boot-web 
    image: docker.io/joethecoder2/spring-boot-web 
    command: ["java","-jar", "spring-boot-web-0.0.1-SNAPSHOT.jar"] 
    env: 
    - name: DCASSANDRA_IP 
    valueFrom: 
     configMapKeyRef: 
      key: Dcassandra_ip 
      name: env-values 
    - name: DCASSANDRA_PORT 
    valueFrom: 
     configMapKeyRef: 
      key: Dcassandra_port 
      name: env-values 
    restartPolicy: OnFailure 

--- 
apiVersion: v1 
kind: ConfigMap 
metadata: 
    name: env-values 
data: 
    Dcassandra_port=9042 
    Dcassandra_ip=127.0.0.1 

これにアクセスするには、このコンテナを公開するためにサービスマニフェストファイルを作成する必要があります。 私はさらなる研究のためのリンクを添付しました。

ConfigMap

Service