2017-12-17 3 views
0

ドッカーのコマンドdocker run -p 8080:80 webappとkubernetes yamlのやりとりを理解しようとしています。私はnginxをdockerizedし、上記のコマンドを使用して起動すると画像が正常に動作します。私がkubernetesにプッシュすると、何も起こりません。ドッカーの画像がkubernetesで始まらない

Dockerfile:

FROM nginx:1.13.3-alpine 

COPY nginx/default.conf /etc/nginx/conf.d/ 

RUN rm -rf /usr/share/nginx/html/* 

COPY ./dist /usr/share/nginx/html 

CMD ["nginx", "-g", "daemon off;"] 

マイKubernetes展開

kind: Deployment 
apiVersion: extensions/v1beta1 
metadata: 
    name: webapp-production 
spec: 
    replicas: 1 
    template: 
    metadata: 
     name: webapp 
     labels: 
     app: webapp 
     role: frontend 
     env: production 
    spec: 
     containers: 
     - name: webapp 
     image: eu.gcr.io/projectxyz/webapp:1.0.0 
     env: 
     - name: NODE_NAME 
      valueFrom: 
      fieldRef: 
       fieldPath: spec.nodeName 
     - name: ENVIRONMENT 
      value: "production" 
     resources: 
      limits: 
      memory: "500Mi" 
      cpu: "100m" 
     imagePullPolicy: Always 
     ports: 
     - name: webapp 
      containerPort: 8080 

マイサービス

kind: Service 
apiVersion: v1 
metadata: 
    name: webapp 
spec: 
    selector: 
    app: webapp 
    role: frontend 
    type: NodePort 
    ports: 
    - name: http 
    port: 8080 
    - name: external 
    port: 80 
    targetPort: 8080 

私はkubernetesでコマンドを実行する必要がありますか?ポートは正しく設定されていますか?助けてくれてありがとう。ポッドログから

は///////編集///// メッセージ:The selected container has not logged any messages yet.

+0

ログには何が表示されますか? –

+0

@OliverCharlesworth "選択したコンテナはまだメッセージを記録していません。" – Tino

+0

多かれ少なかれそうです。 K8sはドッカーコンテナでコマンドを実行します。 –

答えて

0

あなたがここに間違ったポートをターゲットにしています。私はこのアプリがポート80でnginxを起動するのを見ますが、サービス定義はエンドポイントポッドでポート8080をターゲットにしています。 nginxに到達するトラフィックがないので、何もstdoutアクセスログに記録されません。正しいポート(80)にトラフィックを誘導するようにサービス定義を変更してください。

サイドノート:コンテナが早期に開始/終了しない場合、ポッドにクラッシュループ状態が発生する可能性があります。

+0

thx。それは「間違い」でした。魅力的な作品:-) – Tino

関連する問題