kubernetes - 无法让 kubernetes 上的 traefik 在家庭实验室中使用外部 IP
问题描述
我有一个在家里运行的 3 节点 Kubernetes 集群。我用 helm 部署了 traefik,但是,它从来没有获得外部 IP。由于这是在私有 IP 地址空间中,我不应该期望外部 IP 位于同一地址空间中吗?我在这里遗漏了一些关键的东西吗?
$ kubectl describe svc traefik --namespace kube-system
Name: traefik
Namespace: kube-system
Labels: app=traefik
chart=traefik-1.64.0
heritage=Tiller
release=traefik
Annotations: <none>
Selector: app=traefik,release=traefik
Type: NodePort
IP: 10.233.62.160
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 31111/TCP
Endpoints: 10.233.86.47:80
Port: https 443/TCP
TargetPort: httpn/TCP
NodePort: https 30690/TCP
Endpoints: 10.233.86.47:8880
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
$ kubectl get svc traefik --namespace kube-system -w
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik NodePort 10.233.62.160 <none> 80:31111/TCP,443:30690/TCP 133m
解决方案
使用 MetalLB,获取 LB IP。更多在他们的网站上。
推荐阅读
- ffmpeg - FFMPEG NVENC HEVC 转 H264
- gcc - 更改 gcc/g++ abi 中的调用约定
- sql - 参数。添加忽略参数在字符串中的位置
- javascript - 调用 sequelize findAll 方法后 setDataValue 不是函数
- xaml - AbsoluteLayout 中的按钮与 Android 上的其他对象重叠
- sql - SQL:检查多个表中是否存在多条记录
- css - 自定义 CSS 编辑
- java - Java:在运行时获取引用类型
- r - 将分号分隔的向量拆分为相应的列
- sqlplus - 使用 SQLPlus 运行 sql 脚本时按名称(而不是按位置)引用变量