我试图找出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中运行命令?端口配置是否正确?谢谢您的帮助。
///////编辑/////来自pod日志的消息:The selected container has not logged any messages yet.
你在这里瞄准错误的端口。从我看到这个应用程序在端口80上启动nginx,但您的服务定义针对端点pod上的端口8080。由于没有流量到达nginx,stdout访问日志中不会记录任何内容。将您的服务定义更改为在正确的端口(80)上引导流量,这应该可以解决问题。
旁注:如果容器不能过早启动/终止,您可能会在pod上看到崩溃状态。