无法从 EKS 中创建的负载均衡器访问部署
Unable to reach the deployment from the load balancer created in EKS
我是 EKS 的新手(但熟悉 k8s),我正在尝试 运行 我在 EKS 上的项目。
我运行我的项目部署和数据库部署,都是运行ning:
kubectl get deploy -owide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
my-app 1/1 1 1 98m my-app me/my-app:latest app=my-app
db 1/1 1 1 16h db mariadb:10.4.12 app=db
我创建了负载均衡器来访问我的应用程序 pods:
get svc -owide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
my-app LoadBalancer 10.102.XXX.XXX XXX-XXX.us-east-1.elb.amazonaws.com 8000:31722/TCP 114m app=my-app
kubernetes ClusterIP 10.102.0.1 <none> 443/TCP 39h <none>
我尝试通过负载均衡器 (XXX-XXX.us-east-1.elb.amazonaws.com) 创建的外部 ip 访问该网站,并使用端口(我尝试了 80、8000 和 31722) ,然后我收到“无法访问该站点”。
我错过了什么吗?
这是我的应用程序服务:
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
type: LoadBalancer
ports:
- name: "8000"
port: 8000
targetPort: 8000
selector:
app: my-app
这是我的应用程序 yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
labels:
app: my-app
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- env:
- name: REVERSE_PROXY
value: "true"
- name: UPLOAD_FOLDER
value: /var/uploads
- name: WORKERS
value: "1"
image: me/my-app:latest
imagePullPolicy: ""
name: my-app
ports:
- containerPort: 8000
resources: {}
restartPolicy: Always
serviceAccountName: ""
我建议按照以下步骤查找根本原因;
检查是否可以从您尝试访问的 host/machine 访问 laod balancer 的 XXX-XXX.us-east-1.elb.amazonaws.com 域。您可以使用 ping 命令从 host/machine/laptop/desktop 检查网络可达性。
如果第 1 步成功执行,请检查负载均衡器的默认 cloudwatch 指标。请参阅 this 有关通过 AWS Web 控制台查看 cloudwatch 指标的文档。您可以在此指标中检查任何不可用的错误计数。
如果您在Step2中没有找到任何有用的信息,并且您启用了VPC流日志,那么您可以跟踪vpc流日志来检查,进出网络流量有什么问题AWS 负载均衡器。有关 VPC 流日志信息,请参阅来自 AWS 的 this 文档。
我是 EKS 的新手(但熟悉 k8s),我正在尝试 运行 我在 EKS 上的项目。
我运行我的项目部署和数据库部署,都是运行ning:
kubectl get deploy -owide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
my-app 1/1 1 1 98m my-app me/my-app:latest app=my-app
db 1/1 1 1 16h db mariadb:10.4.12 app=db
我创建了负载均衡器来访问我的应用程序 pods:
get svc -owide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
my-app LoadBalancer 10.102.XXX.XXX XXX-XXX.us-east-1.elb.amazonaws.com 8000:31722/TCP 114m app=my-app
kubernetes ClusterIP 10.102.0.1 <none> 443/TCP 39h <none>
我尝试通过负载均衡器 (XXX-XXX.us-east-1.elb.amazonaws.com) 创建的外部 ip 访问该网站,并使用端口(我尝试了 80、8000 和 31722) ,然后我收到“无法访问该站点”。
我错过了什么吗?
这是我的应用程序服务:
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
type: LoadBalancer
ports:
- name: "8000"
port: 8000
targetPort: 8000
selector:
app: my-app
这是我的应用程序 yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
labels:
app: my-app
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- env:
- name: REVERSE_PROXY
value: "true"
- name: UPLOAD_FOLDER
value: /var/uploads
- name: WORKERS
value: "1"
image: me/my-app:latest
imagePullPolicy: ""
name: my-app
ports:
- containerPort: 8000
resources: {}
restartPolicy: Always
serviceAccountName: ""
我建议按照以下步骤查找根本原因;
检查是否可以从您尝试访问的 host/machine 访问 laod balancer 的 XXX-XXX.us-east-1.elb.amazonaws.com 域。您可以使用 ping 命令从 host/machine/laptop/desktop 检查网络可达性。
如果第 1 步成功执行,请检查负载均衡器的默认 cloudwatch 指标。请参阅 this 有关通过 AWS Web 控制台查看 cloudwatch 指标的文档。您可以在此指标中检查任何不可用的错误计数。
如果您在Step2中没有找到任何有用的信息,并且您启用了VPC流日志,那么您可以跟踪vpc流日志来检查,进出网络流量有什么问题AWS 负载均衡器。有关 VPC 流日志信息,请参阅来自 AWS 的 this 文档。