0

请帮助我通过 AWS 中的 traefik 处理我简单的 k8s 应用程序的可访问性。

我试图在主节点上公开端口 30000-32767,在安全组中,应用程序可以从世界访问,不想只使用 traefik 的 80 端口!当我尝试在 master 的安全组中公开 80 端口时,我得到了CONNECTION REFUSED,当我尝试在浏览器中访问我的应用程序时,当我删除暴露的端口时,在浏览器中出现错误CONNECTION TIMEOUT .. 有什么问题???k8s的所有服务都up了,traefik没有错误。

KOPS:

kops create cluster \
--node-count = 2 \
--networking calico \
--node-size = t2.micro \
--master-size = t2.micro \
--master-count = 1 \
--zones = us-east-1a \
--name = ${KOPS_CLUSTER_NAME}

K8S app.yml 和 traefik.yml:

  1. 应用程序

https://pastebin.com/WtEe633x

  1. 交易

https://pastebin.com/pnPJVPBP

当我输入 myapp.com 时,想要在 80 端口上获得 echoserver app 的输出。

4

2 回答 2

1

您已经使用 NodePort 服务进行了设置:

kind: Service
apiVersion: v1
metadata:
  name: traefik-ingress-service
#  namespace: kube-system
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
    - protocol: TCP
      port: 80
      name: web
    - protocol: TCP
      port: 8080
      name: admin
  type: NodePort

这并不意味着服务代理会监听来自外界 PoV 的 80 端口。默认情况下,NodePort 服务会自动随机分配它们的端口。您可能想要做的是改用 LoadBalancer 服务。以https://github.com/Ridecell/kubernetes/blob/9e034f4d0fb38e49f808ae0852af74366f630d48/manifests/traefik.yml#L152-L171为例。

于 2018-12-24T08:40:48.633 回答
1

天哪,问题是下一个.. 我有非法域名,所以我尝试在 freenom.com 上注册一个新的免费合法域名。在域设置中设置亚马逊的NS记录,在R53中创建新域的托管区域,别名A记录为负载均衡器的域名,它可以工作!还将类型:NodePort 更改为类型:在 traefik 的服务配置中的 LoadBalancer。

于 2018-12-24T10:23:46.413 回答