【发布时间】:2019-06-30 08:30:11
【问题描述】:
我正在尝试配置一个在 kubernetes 的端口 5000 中运行的 python 烧瓶应用程序。我已经创建了部署、服务和入口。使用添加到主机文件的域名无法正常工作,但当我尝试通过端口转发时,python 应用程序正在工作。
我尝试了很多更改配置,但没有任何效果。
请告诉我你的建议。
kind: Deployment
metadata:
name: web-app
namespace: production
labels:
app: web-app
platform: python
spec:
replicas:
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: web-app
image: XXXXXX/XXXXXX:XXXXXX
imagePullPolicy: Always
ports:
- containerPort: 5000
apiVersion: v1
kind: Service
metadata:
name: web-app
namespace: production
spec:
selector:
app: web-app
ports:
- protocol: TCP
port: 5000
targetPort: 5000
selector:
run: web-app
kind: Ingress
metadata:
name: name-virtual-host-ingress
namespace: production
spec:
rules:
- host: first.bar.com
http:
paths:
- backend:
serviceName: web-app
servicePort: 5000
kubectl get all -n production
NAME READY STATUS RESTARTS AGE
pod/web-app-559df5fc4-67nbn 1/1 Running 0 24m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/web-app ClusterIP 10.100.122.15 <none> 5000/TCP 24m
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.apps/web-app 1 1 1 1 24m
NAME DESIRED CURRENT READY AGE
replicaset.apps/web-app-559df5fc4 1 1 1 24m
kubectl 获取 -n 生产
NAME HOSTS ADDRESS PORTS AGE
name-virtual-host-ingress first.bar.com 80 32s
kubectl 获取 ep web-app -n 生产
NAME ENDPOINTS AGE
web-app <none> 23m
【问题讨论】:
-
你设置了入口控制器吗?如果没有,
Ingress配置无效。如果你想在没有入口控制器的情况下访问应用程序,你可以将Service的类型更改为nodePort或LoadBalancer -
@rom 你问的是这个吗? kubectl get ing -n production NAME HOSTS ADDRESS PORTS AGE name-virtual-host-ingress first.bar.com,second.foo.com 80 32s
-
当
kubectl get ep(或kubectl describe service)显示<none>时,这表明服务上的selector:与pod上的labels:不匹配(不是部署,部署模板块内的 pod 规范)。 -
@DavidMaze kubectl get pod web-app-deployment-5bc447bfb-2f5v8 -n production -o yaml
apiVersion: v1 kind: Pod metadata: creationTimestamp: "2019-06-30T11:06:26Z" generateName: web-app-deployment-5bc447bfb- labels: app: web-app pod-template-hash: 5bc447bfb name: web-app-deployment-5bc447bfb-2f5v8 namespace: production它显示了相同的 web-app 标签.. -
您的服务有不匹配的
selector: {run: web-app}。
标签: kubernetes kubernetes-ingress kubernetes-pod amazon-eks