【发布时间】:2022-01-13 19:01:07
【问题描述】:
我使用 terraform-aws-modules/eks/aws 作为模块,通过 Terraform 在 AWS 中创建了一个 EKS 集群。该集群有一个使用 nodeport 作为服务和入口的 pod(golang 应用程序)。我遇到的问题是,当我到达端点时,我得到了 502 bad gateway。
我的配置:
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: golang-deployment
labels:
app: golang-app
spec:
replicas: 1
selector:
matchLabels:
name: golang-app
template:
metadata:
labels:
name: golang-app
spec:
containers:
- name: golang-app
image: 019496914213.dkr.ecr.eu-north-1.amazonaws.com/goland:1.0
ports:
- containerPort: 9000
服务:
kind: Service
apiVersion: v1
metadata:
name: golang-service
spec:
type: NodePort
selector:
app: golang-app
ports:
- protocol: TCP
port: 9000
targetPort: 9000
入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
kubernetes.io/ingress.class: alb
labels:
app: app
spec:
rules:
- http:
paths:
- path: /api/v2
pathType: ImplementationSpecific
backend:
service:
name: golang-service
port:
number: 9000
kubectl get service
golang-service NodePort 172.20.44.34 <none> 9000:32184/TCP 106m
集群和节点的安全组由 terraform-aws-modules/eks/aws 模块创建。
我检查了几件事情:
kubectl port-forward golang-deployment-5894d8d6fc-ktmmb 9000:9000
工作!我可以在我的计算机中使用 localhost:9000 看到 golang 应用程序
kubectl exec curl -i --tty nslookup golang-app
Server: 172.20.0.10
Address 1: 172.20.0.10 kube-dns.kube-system.svc.cluster.local
Name: golang-app
Address 1: 172.20.130.130 golang-app.default.svc.cluster.local
工作!
kubectl exec curl -i --tty curl golang-app:9000
curl: (7) Failed to connect to golang-app port 9000: Connection refused
不工作
有什么想法吗?
【问题讨论】:
标签: kubernetes amazon-eks