Dockerコンテナで1つのSpringBootマイクロサービスを実行しています。以下はDockerfileです。
FROM java:8-jre
MAINTAINER <>
WORKDIR deploy/
#COPY config/* /deploy/config/
COPY ./ms.console.jar /deploy/
CMD chmod +R 777 ./ms.console.jar
CMD ["java","-jar","/deploy/ms.console.jar","console"]
EXPOSE 8384
ここで、私の構成は外部フォルダーに保存されます。つまり/config/console-server.yml
、アプリケーションを起動すると、内部で構成が読み込まれます(スプリングブート機能)。
ここで、configmapを使用してこの構成を分離したいと思います。そのため、1つのconfigmapを作成し、すべての構成の詳細を保存しました。
kubectl create configmap console-configmap --from-file = ./ config / console-server.yml
kubectl describe configmap console-configmap
以下は説明の詳細です。
Name: console-configmap
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
console-server.yml:
----
server:
http:
port: 8385
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain,text/css,application/javascript
min-response-size: 2048
---
spring:
thymeleaf:
prefix: classpath:/static
application:
name: console-service
profiles:
active: native
servlet:
multipart:
max-file-size: 30MB
max-request-size: 30MB
---
host:
gateway: http://apigateway:4000
webhook: http://localhost:9000
私のデプロイメントymlは次のとおりです。
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: consoleservice1
spec:
selector:
matchLabels:
app: consoleservice
replicas: 1 # tells deployment to run 3 pods matching the template
template: # create pods using pod definition in this template
metadata:
labels:
app: consoleservice
spec:
containers:
- name: consoleservice
image: ms-console
ports:
- containerPort: 8384
imagePullPolicy: Always
envFrom:
- configMapRef:
name: console-configmap
imagePullSecrets:
- name: regcresd
私の疑問は、Dockerfileのconfigフォルダーにコメントしたので、ポッドの実行中に、構成がないために例外がスローされます。このconsole-configmapをデプロイメントに挿入する方法、すでに共有しようとしたものですが、同じ問題が発生します。
まず、アプリケーションで.ymlファイルをどのように使用していますか?ymlファイルの内容を環境変数として使用する場合、構成は正常に機能するはずです。しかし、コンテナ内の設定ファイルの内容を利用したいと思います。その場合は、次のようにconfigmapからボリュームを作成する必要があります。
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: consoleservice1
spec:
selector:
matchLabels:
app: consoleservice
replicas: 1 # tells deployment to run 3 pods matching the template
template: # create pods using pod definition in this template
metadata:
labels:
app: consoleservice
spec:
containers:
- name: consoleservice
image: ms-console
ports:
- containerPort: 8384
imagePullPolicy: Always
volumeMounts:
- mountPath: /app/config
name: config
volumes:
- name: config
configMap:
name: console-configmap
imagePullSecrets:
- name: regcresd
ファイルはパスで利用可能になります/app/config/console-server.yml
。必要に応じて変更する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加