FastifyがDocker / Kubernetesで機能しない

イリヤ:

「Hello World」という文字列を返す非常にシンプルなアプリがありますが、ローカルで正常に動作します。以下のアプリコードからわかるように、ポートで実行されます4000Dockerイメージを作成してコンテナーを実行するとlocalhost:4000、マシンからはアクセスできませんが、Dockerがnode index.js正しくコマンドを実行し、アプリがエラーなしで実行されていることがわかります。

また、取得したロードバランサーIPにアクセスすると、それをKubernetesクラスターにデプロイしようとしましたERR_EMPTY_RESPONSEを介してこのアプリを検査した後kubectl、すべてが正常に実行されていることがわかります。画像がダウンロードされ、ポッドが実行されています。

私が見逃したことと、それがローカルでしか機能しない理由を理解するのに苦労しています。

NodeJSアプリ

import fastify from 'fastify';

const server = fastify();

server.get('/', (_request, reply) => {
   reply.status(200).send("Hello World");
});

server.listen(4000, error => {
  if (error) {
    process.exit(1);
  }
});

Dockerfile

FROM node:14.2-alpine

WORKDIR /app

COPY package.json yarn.lock /app/

RUN yarn

COPY . .

EXPOSE 4000

CMD ["node", "index.js"]

Kubernetesマニフェスト

---
# Load balancer
apiVersion: v1
kind: Service
metadata:
  name: development-actions-lb
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-name: "development-actions-lb"
    service.beta.kubernetes.io/do-loadbalancer-algorithm: "round_robin"
spec:
  type: LoadBalancer
  selector:
    app: development-actions
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 4000
---
# Actions deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: development-actions
spec:
  replicas: 1
  selector:
    matchLabels:
      app: development-actions
  template:
    metadata:
      labels:
        app: development-actions
    spec:
      containers:
        - image: registry.digitalocean.com/myapp/my-image:latest
          name: development-actions
          ports:
            - containerPort: 4000
              protocol: TCP
      imagePullSecrets:
        - name: registry-myapp
irvifa:

最初にコードを試してみたところ、ローカルDockerを使用して試してみましたが、動作はまったく同じなのでfastify、デフォルトではのみをリッスンするという事実が原因であると考えられますlocalhost

docker build -t development-actions:latest .
docker run -it -p 4000:4000 development-actions:latest

Dockerの内部では、'0.0.0.0'デフォルトfastifyでインターフェースのみを対象としているため、明示的に言及する必要がありlocalhost 127.0.0.1ます。使用可能なすべてのIPv4インターフェースをリッスンするには、例を0.0.0.0次のようにリッスンするように変更する必要があります。

const server = require('fastify')({ logger: true })

server.get('/', (_request, reply) => {
   reply.status(200).send("Hello World");
});

server.listen(4000, '0.0.0.0', error => {
  if (error) {
    process.exit(1);
  }
});

残りは同じでなければなりません。ローカルで試すには、次のコマンドを使用します。

参照:

  1. https://www.fastify.io/docs/latest/Getting-Started/#your-first-server

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してくださいdebugcn@gmail.com

編集
0

コメントを追加

0

関連記事

分類Dev

calco を使用した Kubernetes でルートが機能しない

分類Dev

Kubernetes PetSetDNSが機能しない

分類Dev

Kubernetes nginxIngress構成がGrafanaで機能しない

分類Dev

秘密のlivenessProbeがkubernetesで機能しない

分類Dev

kubernetesでのPrismarabitmqのデプロイが機能しない

分類Dev

docker execがcronで機能しない

分類Dev

docker execがcronで機能しない

分類Dev

docker execがcronで機能しない

分類Dev

GLXGearsがDocker内で機能しない

分類Dev

DllImportがDockerで機能しない-DllNotFoundException

分類Dev

Publishhtmlがkubernetes内のjenkinsエージェントで機能しない

分類Dev

f-stringがJupyterで機能しない機能しない

分類Dev

Kubernetesノードポートが機能しない

分類Dev

Nginx.ingress.kubernetes.io/proxy-body-sizeが機能しない

分類Dev

kubernetes nginx ingress //ヘルスチェックが機能しない

分類Dev

externalNameタイプのサービス構成がKubernetesで機能しないのはなぜですか?

分類Dev

KubernetesクラスターオートスケーラーがGKEで機能していないようです。

分類Dev

Docker for Windowsが機能しない

分類Dev

Docker forWindowsが機能しない

分類Dev

Docker execrmが機能しない

分類Dev

DataStax接続が機能しないDocker

分類Dev

Docker Compose:公開が機能しない

分類Dev

Docker-compose envvarが機能しない

分類Dev

Docker GitLabCIが機能しない

分類Dev

Traefik:Dockerが機能しない構成

分類Dev

Docker構成Apacheが機能しない

分類Dev

Docker runhello-worldが機能しない

分類Dev

Kubernetes:kubeconfigの「insecure-skip-tls-verify」が機能しないのはなぜですか?

分類Dev

docker-compose統合がpycharmで機能しない

Related 関連記事

  1. 1

    calco を使用した Kubernetes でルートが機能しない

  2. 2

    Kubernetes PetSetDNSが機能しない

  3. 3

    Kubernetes nginxIngress構成がGrafanaで機能しない

  4. 4

    秘密のlivenessProbeがkubernetesで機能しない

  5. 5

    kubernetesでのPrismarabitmqのデプロイが機能しない

  6. 6

    docker execがcronで機能しない

  7. 7

    docker execがcronで機能しない

  8. 8

    docker execがcronで機能しない

  9. 9

    GLXGearsがDocker内で機能しない

  10. 10

    DllImportがDockerで機能しない-DllNotFoundException

  11. 11

    Publishhtmlがkubernetes内のjenkinsエージェントで機能しない

  12. 12

    f-stringがJupyterで機能しない機能しない

  13. 13

    Kubernetesノードポートが機能しない

  14. 14

    Nginx.ingress.kubernetes.io/proxy-body-sizeが機能しない

  15. 15

    kubernetes nginx ingress //ヘルスチェックが機能しない

  16. 16

    externalNameタイプのサービス構成がKubernetesで機能しないのはなぜですか?

  17. 17

    KubernetesクラスターオートスケーラーがGKEで機能していないようです。

  18. 18

    Docker for Windowsが機能しない

  19. 19

    Docker forWindowsが機能しない

  20. 20

    Docker execrmが機能しない

  21. 21

    DataStax接続が機能しないDocker

  22. 22

    Docker Compose:公開が機能しない

  23. 23

    Docker-compose envvarが機能しない

  24. 24

    Docker GitLabCIが機能しない

  25. 25

    Traefik:Dockerが機能しない構成

  26. 26

    Docker構成Apacheが機能しない

  27. 27

    Docker runhello-worldが機能しない

  28. 28

    Kubernetes:kubeconfigの「insecure-skip-tls-verify」が機能しないのはなぜですか?

  29. 29

    docker-compose統合がpycharmで機能しない

ホットタグ

アーカイブ