質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

受付中

dockerのimageについて不具合が発生しておりkubernetesのnodesが起動できず困っています。

pandama09396862
pandama09396862

総合スコア6

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0回答

0評価

1クリップ

1048閲覧

投稿2022/02/28 08:49

編集2022/02/28 08:50

【概要】
dockerのimageについて不具合が発生しておりkubernetesのnodesが起動できず困っています。

【目的】
現在Docker for Macのkubernetesにてローカル環境でハンズオン練習を行っています。
コンテナはGoサーバーが2台とDBサーバーが1台です。

Goのサーバー1

FROM golang:latest COPY . . WORKDIR /go/src/shopping/backend/server/shopping CMD ["go", "run", "main.go"] EXPOSE 8080

Goのサーバー2

FROM golang:latest COPY . . WORKDIR /go/src/shopping/backend/server/gateway CMD ["go", "run", "main.go"] EXPOSE 9999
version: '3' services: shop: build: context: ./backend/server/shopping dockerfile: Dockerfile stdin_open: true tty: true ports: - 8080:8080 depends_on: - shopdb volumes: - ./backend/server:/go/src/shopping/backend/server shopdb: build: context: ./backend/server/shopping/config/db dockerfile: Dockerfile restart: always container_name: shopdb environment: - POSTGRES_USER=%%%%%% - POSTGRES_PASSWORD=%%%%%% - POSTGRES_DB=%%%%%% ports: - 5432:5432 volumes: - data:/var/lib/postgresql/data - ./backend/server/shopping/config/db/init/:/docker-entrypoint-initdb.d gateway: build: context: ./backend/server/gateway dockerfile: ./Dockerfile container_name: gateway ports: - 9999:9999 volumes: - ./backend/server:/go/src/shopping/backend/server volumes: data: driver: local

docker-composeでは特にエラーなく起動できたため、buildしたimageをkubernetesでも同様に使おうとしたところ、Goサーバーの2台がCrashLoopBackOffエラーとなってしまいました。
エラー文は

stat main.go: no such file or directory

のみがでています。

% kubectl get pods NAME READY STATUS RESTARTS AGE gateway-74d8c5c497-ppvbq 0/1 CrashLoopBackOff 9 25m shop-79976f6cc-8cmxl 0/1 CrashLoopBackOff 9 25m shopdb-55f55c9788-rqnmb 1/1 Running 0 25m

Goのサーバー1(manifestfile)

apiVersion: apps/v1 kind: Deployment metadata: name: shop spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: shop template: metadata: labels: app: shop spec: containers: - name: shop image: shopping_shop imagePullPolicy: Never env: - name: DB_HOST value: shopdb.default.svc.cluster.local - name: DB_USER value: %%%%%% - name: DB_PASSWORD value: %%%%%% - name: DB_NAME value: %%%%%% - name: ENV value: local ports: - containerPort: 8080 resources: {} stdin: true tty: true volumeMounts: - mountPath: /go/src/shopping/backend/server name: shop-volume restartPolicy: Always volumes: - name: shop-volume persistentVolumeClaim: claimName: shop-volume
MacBook-Pro k8s % kubectl describe pod shop-79976f6cc-8cmxl Name: shop-79976f6cc-8cmxl Namespace: default Priority: 0 Node: docker-desktop/192.168.65.4 Start Time: Mon, 28 Feb 2022 17:18:06 +0900 Labels: app=shop pod-template-hash=79976f6cc Annotations: <none> Status: Running IP: 10.1.1.43 IPs: IP: 10.1.1.43 Controlled By: ReplicaSet/shop-79976f6cc Containers: shop: Container ID: docker://b45115663f35f07830300e6fc02b3a50b7006e17f12b26e1a676b9a70ac5b134 Image: shopping_shop Image ID: docker://sha256:04cb40368c0913295b75dafb729d472ee223745cdad6b2e5c5340721a3c908d8 Port: 8080/TCP Host Port: 0/TCP State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Error Exit Code: 1 Started: Mon, 28 Feb 2022 17:44:14 +0900 Finished: Mon, 28 Feb 2022 17:44:14 +0900 Ready: False Restart Count: 10 Environment: DB_HOST: shopdb.default.svc.cluster.local DB_USER: shimo0108 DB_PASSWORD: password DB_NAME: shopping_db ENV: local Mounts: /go/src/shopping/backend/server from shop-volume (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-bfj4z (ro) Conditions: Type Status Initialized True Ready False ContainersReady False PodScheduled True Volumes: shop-volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: shop-volume ReadOnly: false kube-api-access-bfj4z: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 29m default-scheduler Successfully assigned default/shop-79976f6cc-8cmxl to docker-desktop Normal Pulled 28m (x5 over 29m) kubelet Container image "shopping_shop" already present on machine Normal Created 28m (x5 over 29m) kubelet Created container shop Normal Started 28m (x5 over 29m) kubelet Started container shop Warning BackOff 4m20s (x116 over 29m) kubelet Back-off restarting failed container

Goのサーバー2(manifestfile)

apiVersion: apps/v1 kind: Deployment metadata: name: gateway spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: gateway template: metadata: labels: app: gateway spec: containers: - name: gateway image: shopping_gateway imagePullPolicy: Never ports: - containerPort: 9999 volumeMounts: - mountPath: /go/src/shopping/backend/server name: gateway-volume restartPolicy: Always volumes: - name: gateway-volume persistentVolumeClaim: claimName: gateway-volume
MacBook-Pro k8s % kubectl describe pod gateway-74d8c5c497-ppvbq Name: gateway-74d8c5c497-ppvbq Namespace: default Priority: 0 Node: docker-desktop/192.168.65.4 Start Time: Mon, 28 Feb 2022 17:18:08 +0900 Labels: app=gateway pod-template-hash=74d8c5c497 Annotations: <none> Status: Running IP: 10.1.1.45 IPs: IP: 10.1.1.45 Controlled By: ReplicaSet/gateway-74d8c5c497 Containers: gateway: Container ID: docker://a7dfb85fa5bb2c5a2d5ce145e94728da864d356c3371349d02b2b6cac7a60fdc Image: shopping_gateway Image ID: docker://sha256:8cfc32922e170a5764a3262ff4fafb1f59422ef8c8f3d014993958507c762bc9 Port: 9999/TCP Host Port: 0/TCP State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Error Exit Code: 1 Started: Mon, 28 Feb 2022 17:44:23 +0900 Finished: Mon, 28 Feb 2022 17:44:23 +0900 Ready: False Restart Count: 10 Environment: <none> Mounts: /go/src/shopping/backend/server from gateway-volume (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-dqfwg (ro) Conditions: Type Status Initialized True Ready False ContainersReady False PodScheduled True Volumes: gateway-volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: gateway-volume ReadOnly: false kube-api-access-dqfwg: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 27m default-scheduler 0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims. Normal Scheduled 27m default-scheduler Successfully assigned default/gateway-74d8c5c497-ppvbq to docker-desktop Normal Pulled 26m (x5 over 27m) kubelet Container image "shopping_gateway" already present on machine Normal Created 26m (x5 over 27m) kubelet Created container gateway Normal Started 26m (x5 over 27m) kubelet Started container gateway Warning BackOff 2m26s (x118 over 27m) kubelet Back-off restarting failed container

ちなみに同じ内容のimageをdocker-composeで起動したところ期待通りの挙動が確認できています。

その後調査を続け、kubernetes上でpodsを起動した時のみimageはPULLできているものの中身が空となっている事が発覚しました。(main.goファイルだけでなくすべてのファイルが存在していない)

kompose等を使用し自動生成しても同じ内容のエラーが発生、エラー解決を試みましたが2日ほどこの状態が続いておりトラブルシューティングの協力をお願いしたくこの度募集させていただきました。
どんな些細な事でも結構ですのでご教授いただけると幸いです。
よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです