我正在尝试配置一个在kubernetes中的端口5000中运行的python flask应用程序。我已经创建了部署,服务和入口。使用添加到主机文件中的域名无法正常工作,但是当我尝试从端口转发进行操作时,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获得全部-n产量
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
答案 0 :(得分:2)
您需要运行入口控制器。 https://kubernetes.io/docs/concepts/services-networking/ingress/#prerequisites的前提条件部分说:
您必须具有一个入口控制器才能满足入口。仅创建Ingress资源无效。
一个例子是https://kubernetes.github.io/ingress-nginx/deploy/。确保运行强制性命令以及与您的提供商有关的命令。然后,您可以获取该服务以查看分配的IP:
kubectl get -n ingress-nginx svc/ingress-nginx