das*_*non 7 kubernetes kubeadm bare-metal-server metallb
我无法访问 MetalLB 负载均衡器分配的公共 IP
我在 Contabo 中创建了一个 Kubernetes 集群。它的 1 个主人和 2 个工人。每个都有自己的公共IP。
我是用 kubeadm + flannel 做的。后来我确实安装了 MetalLB 来使用负载平衡。
我使用这个清单来安装 nginx:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1
ports:
- name: http
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
它有效,豆荚正在运行。我在以下之后看到外部 IP 地址:
kubectl get services
Run Code Online (Sandbox Code Playgroud)
从每个节点/主机,我可以 curl 到那个 ip 和端口,我可以获得 nginx 的:
<h1>Welcome to nginx!</h1>
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。但:
我仍然想念的是从我的计算机访问该服务 (nginx)。我可以尝试通过 IP:PORT 访问每个节点(主节点 + 2 个从节点),但没有任何反应。最终目标是拥有一个可以访问该服务的域,但我无法猜测我应该使用女巫 IP。
我缺少什么?
MetalLB 是否应该只公开我的 3 个可能的 IP?我应该在每台服务器上添加其他东西作为反向代理吗?
我在这里问这个是因为所有关于裸机/VPS(非 aws、GKE 等)的文章/教程都是在 localhost 上的 kube 上做的,而忽略了这个基本问题。
谢谢。
您缺少的是路由策略
您的外部 IP 地址必须与您的节点属于同一网络,或者您可以在默认网关级别添加到外部地址的路由,并为每个地址使用静态 NAT
归档时间: |
|
查看次数: |
4278 次 |
最近记录: |