gpt4 book ai didi

docker - 无法从群集外部访问LoadBalancer

转载 作者:行者123 更新时间:2023-12-02 21:09:13 25 4
gpt4 key购买 nike

为了进行测试,我使用Virtualbox在单个节点上创建了Kubernetes。
我创建了一个侦听端口4646的Pod,然后为该Pod创建了LoadBalancer。

Pod的Yaml文件:

apiVersion: v1
kind: Pod
metadata:
name: simple-app
labels:
app: simple-app
spec:
containers:
...
name: test-flask-app
ports:
- containerPort: 4646

LoadBalancer的Yaml文件:
apiVersion: v1
kind: Service
metadata:
name: simple-app-lb
spec:
type: LoadBalancer
ports:
- port: 88
protocol: TCP
targetPort: 4646
selector:
app: simple-app

命令 kubectl get nodes -o wide的输出:
NAME     STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
server Ready master 20h v1.14.1 10.0.2.8 <none> Ubuntu 18.04.2 LTS 4.15.0-48-generic docker://18.6.2

命令 kubectl get all的输出
NAME             READY   STATUS    RESTARTS   AGE
pod/simple-app 1/1 Running 5 20h

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 20h
service/simple-app-lb LoadBalancer 10.98.241.39 <pending> 88:32319/TCP 20h

在位于同一网络中的其他虚拟机上,我想通过具有Kubernetes的计算机的IP地址和端口88来访问LoadBalancer。如果我运行下一条命令,则会得到以下输出:
sergey@server2:~$ curl 10.0.2.8:88
curl: (7) Failed to connect to 10.0.2.8 port 88: connection refused

但是,如果我使用端口32319,则可以访问:
sergey@server2:~$ curl 10.0.2.8:32319
{"msg":"superuser, Hello from GeoServer"}

如果我在使用Kubernetes的机器上,也可以访问:
sergey@server:~$ curl 10.98.241.39:88
{"msg":"superuser, Hello from GeoServer"}

是什么原因导致我无法通过EXTERNAL-IP和PORT访问?

最佳答案

在负载均衡器服务的内部还有一个NodePort,这就是为什么您可以连接到NodeIP:32319的原因。您可以在此处阅读有关NodePort服务的更多信息:https://kubernetes.io/docs/concepts/services-networking/service/#nodeport

此外,您还应该看到LoadBalancer外部IP永远处于Pending状态,这意味着未创建真正的Load Balancer。因为您没有在云中运行,并且没有Load Balancer的提供程序。因此,在您的情况下,您只能通过Kube节点上的ClusterIP:88或Kubernetes集群外部的NodeIP:32319访问Load Balancer服务。

关于docker - 无法从群集外部访问LoadBalancer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55994187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com