请帮助我通过AWS中的traefik处理我的k8s简单应用程序的可访问性。
我试图在安全组中公开主节点上的端口30000-32767,并且应用程序可以从世界访问,但不想只使用80的traefik端口!当我尝试在主机的安全组中公开80端口时,得到拒绝连接,当尝试在浏览器中访问我的应用程序时,当我删除公开的端口时出现错误 CONNECTION TIMEOUT 在浏览器中..是什么问题??? k8的所有服务均已启动,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:
当我键入myapp.com时,想要在80端口上获得echoserver应用程序的输出。
答案 0 :(得分:1)
天哪,问题出在下一个..我的域名非法,所以我尝试在freenom.com上注册一个新的免费合法域名。在域设置中设置Amazon的NS记录,在R53中创建新域的托管区域,并使用别名A记录作为loadbalancer的域名,它可以正常工作!在traefik的服务配置中也将类型:NodePort更改为类型:LoadBalancer。
答案 1 :(得分:0)
您已经使用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为例。