我在AWS中通过Terraform创建了一个EKS集群,使用terraform-aws-模块/ek/aws作为模块。这个集群有一个pod (golang应用程序),使用nodeport作为服务和入口。我遇到的问题是,当我到达端点时,我会得到502个坏网关。
我的配置:
部署:
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/ek/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
不工作
有什么想法吗?
发布于 2022-01-13 11:01:07
您应该调用服务而不是部署。
golang-service是svc名称而不是部署名。
kubectl exec curl -i --tty curl golang-service:9000
https://stackoverflow.com/questions/70695291
复制相似问题