我设法在 kubernetes 集群上部署了一个 python 应用程序。python 应用程序映像部署在 AWS ECR(弹性容器注册表)。
我的部署是:
( NAME )charting-rest-server
( READY )1/1
( UP-TO-DATE )1
( AVAILABLE )1
( AGE )33m
( CONTAINERS )charting-rest-server
(图像) *****.dkr.ecr .eu-west-2.amazonaws.com/charting-rest-server:latest
( SELECTOR )app=charting-rest-server
我的服务是:
( NAME )charting-rest-server-service
( TYPE )LoadBalancer
( CLUSTER-IP )10.100.4.207
( EXTERNAL-IP )*******.eu-west-2.elb.amazonaws.com
( PORT(s ) )8765:32735/TCP
(年龄)124m
(选择器)app=charting-rest-server
根据这个AWS 指南,当我这样做时,curl *****.us-west-2.elb.amazonaws.com:80
我应该能够从外部访问负载均衡器,它会将我路由到我的 pod 的 ip。
但我得到的只是
(6) 无法解析主机:*******.eu-west-2.elb.amazonaws.com
如果我想访问我的 pod 并发送一些请求,我应该考虑一下,我应该有一个类似的外部 ip 111.111.111.111
(obv 示例)。
编辑
部署的 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
我已经尝试了评论中的建议,使用了一个入口实例,但我最终只花费了大量时间试图了解它们是如何工作的,“我做错了什么吗?/等等。
我将把我使用的 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
我被困在这个问题上很长时间了,所以我会很感激一些帮助。