こちらteratailでも質問している内容(マルチポスト)です。
https://teratail.com/questions/198296

前提・実現したいこと

自作railsアプリケーション(DBはMysql)をDocker環境で動くように開発し、GKE(google kubernetes engine)にデプロイしたい

こちらのサイトを参考にしています

前提
・アプリケーションはローカル(開発環境)だとdocker-compose upで正常に起動する状態
・localのワーキングディレクトリにはkey.jsonがある
・GCPのIAMと管理「サービス アカウントの詳細」にキーは設定されていてkey.jsonのものと同じ(メールアドレスも一致)
・cloudsql-db-credentialsとcloudsql-instance-credentialsはGCP側に設定されている

GKE構成
・nodeは2つ、それぞれに同じ2つpodを入れている
・マニュフェストファイルはひとつ(deployment.yml)

#key.json
{
  "type": "service_account",
  "project_id": "プロジェクト名",
  "private_key_id": "・・・8a8c5",
  "private_key": "-----BEGIN PRIVATE KEY-----\n・・・BfYN\nMkTAtnTgtiC77mllNDhONA==\n-----END PRIVATE KEY-----\n",
  "client_email": "test-user@プロジェクト名.iam.gserviceaccount.com",
  "client_id": "・・・06700",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-user%40プロジェクト名.iam.gserviceaccount.com"
}

発生している問題・エラーメッセージ

GKEにデプロイする際にエラー(podのstatusがCrashLoopBackOff)になってしまう。

textPayload:  "/usr/local/bundle/gems/railties-5.2.3/lib/rails/application.rb:585:in `validate_secret_key_base': Missing `secret_key_base` for 'production' environment, set this string with `rails credentials:edit` (ArgumentError)
textPayload:  "2019/07/02 14:18:29 invalid json file "./key.json": open ./key.json: no such file or directory
$ kubectl get pods
NAME                         READY   STATUS             RESTARTS   AGE
rails-api-798fd446db-c6jwc   1/2     CrashLoopBackOff   1          5s
rails-api-798fd446db-d8g8k   1/2     CrashLoopBackOff   1          5s

該当のソースコード

#deployment.yml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: rails-api
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: rails-api
    spec:
      containers:
        - image: gcr.io/プロジェクト名/rails_api
          name: web
          env:
            - name: DB_USER
              valueFrom:
                secretKeyRef:
                  name: cloudsql-db-credentials
                  key: username
            - name: DB_PASS
              valueFrom:
                secretKeyRef:
                  name: cloudsql-db-credentials
                  key: password
            - name: DB_NAME
              value: SQLのインスタンス
            - name: DB_HOST
              value: 127.0.0.1
            - name: RAILS_ENV
              value: production
            - name: RACK_ENV
              value: production
            - name: RAILS_SERVE_STATIC_FILES
              value: 'true'
          ports:
            - containerPort: 3000
              name: rails-api
          command: ["rm", "-f", "/rails_api/tmp/pids/server.pid"]
          command: ["bundle", "exec", "rails", "server", "-p", "3000", "-b", "0.0.0.0"]
        - image: b.gcr.io/cloudsql-docker/gce-proxy:1.11
          name: cloudsql-proxy
          command: ["/cloud_sql_proxy",
                    "-instances=プロジェクト名:asia-northeast1:SQLのインスタンス=tcp:3306",
                    "-credential_file=./key.json"]
          volumeMounts:
            - name: cloudsql-instance-credentials
              mountPath: /secrets/cloudsql
              readOnly: true
      volumes:
        - name: cloudsql-instance-credentials
          secret:
            secretName: cloudsql-instance-credentials
#Dockerfile
FROM ruby:2.6.2


# 必要なパッケージのインストール(基本的に必要になってくるものだと思うので削らないこと)
RUN apt-get update -qq && \
    apt-get install -y build-essential \
                       libpq-dev \
                       nodejs

# 作業ディレクトリの作成、設定
RUN mkdir /rails_api
##作業ディレクトリ名をAPP_ROOTに割り当てて、以下$APP_ROOTで参照
ENV APP_ROOT /rails_api
WORKDIR $APP_ROOT

# ホスト側(ローカル)のGemfileを追加する(ローカルのGemfileは【3】で作成)
ADD ./Gemfile $APP_ROOT/Gemfile
ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock

# Gemfileのbundle install
RUN bundle install
ADD . $APP_ROOT