演習 - ConfigMap を使用したアプリケーションの強化
アプリケーション バックエンドをデプロイしました。ここで、ConfigMap を使用してアプリケーション フロントエンドをデプロイする必要があります。
開始前の準備
注意
この演習は省略してもかまいません。 この演習を実行する場合は、始める前に Azure サブスクリプションを作成する必要があります。 Azure アカウントをお持ちでない場合、またはこの時点で作成しない場合は、提示されている情報を理解するため手順に目を通してください。
ConfigMap の作成
configmap.yaml
という名前の新しい YAML ファイルを作成し、次のコードを貼り付けて ConfigMap スペックを作成します。apiVersion: v1 kind: ConfigMap metadata: name: ship-manager-config namespace: default data: config.js: | const config = (() => { return { 'VUE_APP_BACKEND_BASE_URL': 'http://ship-manager-backend.{your-dns-zone}.aksapp.io', } })()
{your-dns-zone}
を、前に作成した ZONE_NAME 変数の値に置き換えます。ファイルを保存して閉じます。
kubectl apply
コマンドを使用して、クラスターに変更を適用します。kubectl apply -f configmap.yaml
kubectl get configmap
コマンドを使用して ConfigMap に対してクエリを実行し、結果を確認します。kubectl get configmap ship-manager-config
アプリケーションを作成する
frontend.yaml
という名前の新しい YAML ファイルを作成し、次のコードを貼り付けてデプロイ スペックを作成します。apiVersion: apps/v1 kind: Deployment metadata: name: contoso-ship-manager-frontend namespace: default spec: replicas: 1 selector: matchLabels: app: contoso-ship-manager-frontend template: metadata: labels: app: contoso-ship-manager-frontend spec: containers: - image: mcr.microsoft.com/mslearn/samples/contoso-ship-manager:frontend name: contoso-ship-manager-frontend ports: - containerPort: 80 name: http volumeMounts: - name: config mountPath: /usr/src/app/dist/config.js subPath: config.js volumes: - name: config configMap: name: ship-manager-config ---
ConfigMap がデプロイ オブジェクトにどのようにマウントされているかを確認してください。 キーを指定していません。つまり、
subPath
キーを指定する必要があります。subpath
はコンテナー内のファイル名です。3 つのダッシュの下に次のコードを貼り付けて、サービスとイングレス スペックを作成します。
apiVersion: v1 kind: Service metadata: name: contoso-ship-manager-frontend namespace: default spec: selector: app: contoso-ship-manager-frontend ports: - name: http port: 80 targetPort: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: contoso-ship-manager-frontend namespace: default annotations: spec.ingressClassName: webapprouting.kubernetes.azure.com spec: rules: - host: contoso-ship-manager.{your-dns-zone}.aksapp.io http: paths: - path: / pathType: Prefix backend: service: name: contoso-ship-manager-frontend port: name: http
イングレス内の
{your-dns-zone}
を、前に作成した ZONE_NAME 変数の値に置き換えます。ファイルを保存して閉じます。
kubectl apply
コマンドを使用して、アプリケーションをデプロイします。kubectl apply -f frontend.yaml
kubectl get deployment
コマンドを使用して Kubernetes API にクエリを実行し、結果を確認します。kubectl get deployment contoso-ship-manager-frontend
API が使用可能になると、次の例のような出力が表示されます。
NAME READY UP-TO-DATE AVAILABLE AGE contoso-ship-manager-frontend 1/1 1 1 18s