Kubernetes 如何将服务和traefik入口添加到EKS群集? 笔记
我正在尝试将演示服务(从“Kubernetes in Action”)的服务和入口部署到安装了Kubernetes 如何将服务和traefik入口添加到EKS群集? 笔记,kubernetes,traefik-ingress,amazon-eks,Kubernetes,Traefik Ingress,Amazon Eks,我正在尝试将演示服务(从“Kubernetes in Action”)的服务和入口部署到安装了traefikingress控制器的AWS EKS群集 在将traefik提供的AWS ELB的IP地址手动添加到本地/etc/hosts文件中的主机名后,我可以从traefik.example.com主机名访问traefik仪表板 如果我描述traefik仪表板的服务和入口: $ kubectl describe svc -n kube-system traefik-dashboard Name:
traefik
ingress控制器的AWS EKS群集
在将traefik
提供的AWS ELB的IP地址手动添加到本地/etc/hosts
文件中的主机名后,我可以从traefik.example.com
主机名访问traefik仪表板
如果我描述traefik仪表板的服务和入口
:
$ kubectl describe svc -n kube-system traefik-dashboard
Name: traefik-dashboard
Namespace: kube-system
Labels: app=traefik
chart=traefik-1.52.6
heritage=Tiller
release=traefik
Annotations: <none>
Selector: app=traefik,release=traefik
Type: ClusterIP
IP: 10.100.164.81
Port: <unset> 80/TCP
TargetPort: 8080/TCP
Endpoints: 172.31.27.70:8080
Session Affinity: None
Events: <none>
$ kubectl describe ing -n kube-system traefik-dashboard
Name: traefik-dashboard
Namespace: kube-system
Address:
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
traefik.example.com
traefik-dashboard:80 (172.31.27.70:8080)
Annotations:
Events: <none>
应用此选项后,在将traefik
提供的AWS ELB的IP地址手动添加到本地/etc/hosts
文件中的主机名后,我无法从kubia.int
主机名访问kubia
服务。相反,我在响应中得到一个服务不可用
。描述创建的资源会显示一些不同的信息
$ kubectl describe svc kubia
Name: kubia
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"kubia","namespace":"default"},"spec":{"ports":[{"name":"web","por...
Selector: app=traefik,release=traefik
Type: ClusterIP
IP: 10.100.142.243
Port: web 80/TCP
TargetPort: 8080/TCP
Endpoints: <none>
Session Affinity: None
Events: <none>
$ kubectl describe ing kubia
Name: kubia
Namespace: default
Address:
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
kubia.int
/ kubia:web (<none>)
Annotations:
kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{},"name":"kubia","namespace":"default"},"spec":{"rules":[{"host":"kubia.int","http":{"paths":[{"backend":{"serviceName":"kubia","servicePort":"web"},"path":"/"}]}}]}}
Events: <none>
$kubectl描述svc kubia
姓名:库比亚
名称空间:默认值
标签:
注释:kubectl.kubernetes.io/last-applicated-configuration:
{“apiVersion”:“v1”,“种类”:“服务”,“元数据”:{“注释”:{},“名称”:“kubia”,“命名空间”:“默认”},“规范”:{“端口”:[{“名称”:“web”,“端口…”。。。
选择器:app=traefik,release=traefik
类型:集群
IP:10.100.142.243
端口:web 80/TCP
目标端口:8080/TCP
端点:
会话关联:无
活动:
$kubectl-ing kubia
姓名:库比亚
名称空间:默认值
地址:
默认后端:默认http后端:80()
规则:
主机路径后端
---- ---- --------
库比亚国际酒店
/库比亚:网络()
注释:
kubectl.kubernetes.io/last-applicated-configuration:{“apiVersion”:“extensions/v1beta1”,“kind”:“ingres”,“metadata”:{“annotations”:{},“name”:“kubia”,“namespace”:“default”},“spec”:{“rules”:[{“host”:“kubia.int”,“http”:{“path”:[{“backend”:{“serviceName”:“serviceName”:“kubia”,“servicePort”:“web”},“path”:“/“}}}}}}
活动:
我还注意到demokubia
服务没有端点,相应的入口显示没有可用的后端
我注意到的另一件事是,demokubia
服务和入口位于default
命名空间中,而traefik仪表板
服务和入口位于kube系统
命名空间中
有没有人知道什么?对最好的诊断方法有什么建议吗
非常感谢!您似乎缺少告诉traefik ingress控制器为该入口定义服务的
kubernetes.io/ingres.class:traefik
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kubia
namespace: default
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: kubia.int
http:
paths:
- path: /
backend:
serviceName: kubia
servicePort: web
如果您查看中的示例,您可以看到唯一没有注释的入口是指向traefik web ui的
traefik web ui
。确实如此。谢谢!
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kubia
namespace: default
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: kubia.int
http:
paths:
- path: /
backend:
serviceName: kubia
servicePort: web