Docker镜像不能在kubernetes中启动

我想弄清楚如何docker命令docker run -p 8080:80 webapp kubernetes yaml。 我有一个nginx dockerized和图像工作正常,当我用上面提到的命令启动它。 当我把它推到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中运行命令吗? 端口configuration是否正确? 谢谢您的帮助。

///////编辑/////来自pod日志的消息: The selected container has not logged any messages yet.

你在这里的目标是错误的。 从我所看到的这个应用程序启动端口80上的nginx,但是您的服务定义的目标是端点pod上的端口8080。 由于没有到达nginx的stream量,因此没有任何东西会logging在stdout访问日志中。 改变你的服务定义,以在正确的端口(80)上引导stream量,这应该是诀窍。

旁注:如果容器不能过早地启动/终止,你可能会在你的容器中看到crashloop状态。