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

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

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

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

Go

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

Docker

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

Q&A

0回答

1756閲覧

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

pandama09396862

総合スコア6

docker-compose

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

Go

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

Docker

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

0グッド

1クリップ

投稿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日ほどこの状態が続いておりトラブルシューティングの協力をお願いしたくこの度募集させていただきました。
どんな些細な事でも結構ですのでご教授いただけると幸いです。
よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問