我设法在kubernetes集群上部署了一个python应用程序。 python应用程序映像已部署在AWS ECR(弹性容器注册表)上。
我的部署是:
( NAME )租赁服务器服务器
(就绪)1/1
(最新日期)1
(可用)1
( AGE )33m
(容器)图表-其余服务器
(图像)*****。dkr.ecr.eu-west-2.amazonaws.com/charting-rest-server:latest
( SELECTOR )app = charting-rest-server
我的服务是:
( NAME )租赁服务器服务
( TYPE )LoadBalancer
( CLUSTER-IP )10.100.4.207
( EXTERNAL-IP )*******。eu-west-2.elb.amazonaws.com
(端口))8765:32735 / TCP
( AGE )124m
( SELECTOR )app = charting-rest-server
根据此AWS guide,当我执行curl *****.us-west-2.elb.amazonaws.com:80
时,我应该可以从外部访问Load Balancer,该负载均衡器会将我路由到吊舱的ip。
但是我得到的只是
(6)无法解析主机:*******。eu-west-2.elb.amazonaws.com
如果我想访问我的pod并发送一些请求,请考虑一下,我应该有一个外部IP,例如111.111.111.111
(例如)。
编辑
部署的Yaml为:
apiVersion: apps/v1
kind: Deployment
metadata:
name: charting-rest-server
spec:
selector:
matchLabels:
app: charting-rest-server
replicas: 1
template:
metadata:
labels:
app: charting-rest-server
spec:
containers:
- name: charting-rest-server
image: *****.eu-west-2.amazonaws.com/charting-rest-server:latest
ports:
- containerPort: 5000
服务的Yaml:
apiVersion: v1
kind: Service
metadata:
name: charting-rest-server-service
spec:
type: LoadBalancer
selector:
app: charting-rest-server
ports:
- protocol: TCP
port: 80
targetPort: 5000
我已经使用入口实例尝试了注释中的建议,但最终我只花了很多时间试图理解它们的工作原理,“我做错了吗?” / etc。
我将把我使用的yaml文件放在这里,但是由于我的ADDRESS字段为空-没有IP可使用,因此它没有变化。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: charting-rest-server-ingress
spec:
rules:
- host: charting-rest-server-service
http:
paths:
- path:/
backend:
serviceName: charting-rest-server-service
servicePort: 80
我在这个问题上停留了很长时间,所以我希望获得一些帮助。